0

コントローラーのプライベート メソッドを呼び出している typescript コントローラーのパブリック メソッドをテストしていますが、カバレッジを確認すると、プライベート メソッドがカバーされていないことがわかりました。以下はサンプルコードです。内部でプライベート メソッド transformUserActivity を呼び出して応答データを変換するコントローラーの readActivity を呼び出しています。コード カバレッジを見ると、transformUserActivity がカバーされていないと表示されます。

テスト コード audtiController.test.ts

import { AuditController } from '../src/auditController'
import {  MxGroup } from "isdk"
let auditControllerInstance: AuditController

describe('Audit Test Suit', () => {

    test('Response Test', () => {
        mxGroup.readUserActivites = jest.fn(() => {
            return new Promise((resolve, reject) => {
                resolve(require('./__mockdata__/activityAuditData'))
            })
        })
        auditControllerInstance = AuditController.getInstance()
        let activityTypes = []
        let users = [{ "id": "dadfq1daff12" }]
        let fromTime = 1575138600000
        let toTime = 1576002599999
        auditControllerInstance.readActivity(users, fromTime, toTime, activityTypes).then(data => {
            expect(data).toMatchSnapshot()
        })
    })
})

コントローラー コード auditController.ts

@transformError()
    readActivity (users: UserIdentity[], fromTime: number, toTime: number, type?: string[]) {
        const request = this.mxGroup.readUserActivites(users, fromTime, toTime, type)
        this.currentRequest = request
        return new Promise((resolve, reject) => {
            request.then((activities: UserActivityLog[]) => {
                resolve(this.transformUserActivity(activities))
            }).catch(reject)
        })
    }


private transformUserActivity(activities: UserActivityLog[]) {]
        activities.forEach((activity: UserActivityLog) => {
            if (activity.activities) {
                activity.activities.forEach((act: CUserActivityLogEntry) => {
                    let activity_detail: object = null
                    try {
                        activity_detail = this.transformClientPostLogAction(act.detail)
                    } catch (e) {
                        console.log(e)
                    }
                    act.activity_detail = activity_detail
                    this.transformCommonInfo(act.detail, activity_detail)
                });

            }
        })
        return activities
    }
4

0 に答える 0