У меня есть функция, которая выполняет некоторые операции в вызове "accept" службы подтверждения PrimeNg. Я попытался написать для него пример модульного теста:
fit('submit preview config', fakeAsync(() => {
addValues();
component.submitConfig();
component.submitPreviewForm();
fixture.detectChanges();
const confirmationService = TestBed.get(ConfirmationService);
tick(200);
spyOn<any>(confirmationService, 'confirm').and.callFake((params: any) => {
params.accept();
httpMock.expectOne(baseUrl + '/api/project/addOrUpdate').flush(mockSubmitResponse);
expect(component.successMsz).toBe(mockSubmitResponse.message);
});
flush();
}));
Проблема в том, что выполнение никогда не происходит внутри callFake. Тестовый пример пройден, но операция не выполняется. Любые идеи приветствуются.
Это функция, которую я хочу протестировать:
submitPreviewForm() {
const messageContent = `<strong>You have updated the following fields:</strong><br/>
<span class="subText" style="font-size: 12px; color: blue;">•${Array.from(this.updatedHighlightedFields).join('<br/> •')}</span>
<br/>
<strong>This will clear JIRA data from DB. Are you sure you want to proceed?</strong>`;
this.confirmationService.confirm({
message: messageContent,
accept: () => {
...
}
});
}
Я использую V6 PrimeNg. Я видел реализацию по этому вопросу о переполнении стека: Angular Модульный тест службы подтверждения PRIME ng