Юнит тест с жасмином с заметным - PullRequest
0 голосов
/ 26 ноября 2018

Я работаю над приложением Angular и занимаюсь модульным тестом в Angular с Жасмином.

У меня есть этот кусок кода:

 /** Gets the case by id */
    getCase(id: number, spinnerMessage?: string) {
        return this.http.get<CaseBaseModel>(`${this.api}/${id}`, spinnerMessage).pipe(map(c => new CaseBaseModel(c)));
    }

И у меня есть этот модульtest:

it('should get case by id', () => {
        const spy = spyOn(service, 'getCase').and.callThrough();

        // tslint:disable-next-line:no-commented-code
         const mockData = new CaseBaseModel({
            id: 100001075,
            dateSubmitted: '',
            owner: caseOwnerEnum.caseManager,
            reference: 'ksjhkjshdf',
            status: caseStatusEnum.submitted,
            type: caseTypeEnum.revisionRequest,

        });
        service.getCase(mockData.id, 'spinner').subscribe(r => expect(r).toEqual(100001075));
        expect(spy).toHaveBeenCalledWith(mockData.id, 'spinner');
        // tslint:disable-next-line:no-commented-code
        // expect(mockData.id).toEqual(100001075);

});

Но в этом фрагменте кода:

 /** Gets the case by id */
    getCase(id: number, spinnerMessage?: string) {
        return this.http.get<CaseBaseModel>(`${this.api}/${id}`, spinnerMessage).pipe(map(c => new CaseBaseModel(c)));
    }

этот фрагмент кода:

c => new CaseBaseModel(c)));

все еще красный.

Так как это решить?

Спасибо.

Это класс CodeBaseModel:

export class CaseBaseModel extends CaseReferenceModel {
    id?: number;
    status: caseStatusEnum;
    substatus?: number;
    verdict?: caseVerdictEnum;
    owner: caseOwnerEnum;
    dateSubmitted: string;
    dateSubmittedFormatted?: string;
    dateClosed?: string;
    dateClosedFormatted?: string;
    comment?: string;
    comments?: CaseCommentModel[];
    sample?: boolean;
    documentList?: DocumentListModel;

    constructor(model: CaseBaseModel) {
        super(model);
    }

    getResourceForStatus?(resources, listValues: ListValueModel[]) {
        let resource: string;
        if (this.status === caseStatusEnum.inProgress) {
            const filteredListValues = listValues.filter(lv => lv.id === this.substatus);
            resource = filteredListValues.length > 0 ? filteredListValues[0].value : resources.geenZaakStatus;
        } else {
            resource = resources[enumResourcesModel[this.status]];
        }

        return resource;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...