У меня есть действие, которое обрабатывает запрос к серверу.Хотя все нормально, когда приложение развернуто, оно перестает работать, если я запускаю модульные тесты.Через некоторое время я узнал, что на акцию не подписаны, что происходит нормально.Я использую TestBed of Angular.Действие CreateContact отправляется, и метод create службы возвращает наблюдаемую информацию, которая выдает значение.
Кто-нибудь из вас имеет представление, в чем может быть проблема?
Действие в вопросе
@Action(CreateContactPageActions.CreateContact)
public createContact(
ctx: StateContext<ContactStateModel>,
action: CreateContactPageActions.CreateContact
): Observable<Contact> {
ctx.patchState({
error: null
});
return this.contactService.create(action.payload)
.pipe(
tap(contact => {
ctx.dispatch(new ContactStateActions.CreateContactSuccess(contact));
}),
catchError(err => {
ctx.dispatch(new ContactStateActions.CreateContactFailed(err));
return EMPTY;
}),
);
}
Конфигурация TestBench
TestBed.configureTestingModule({
imports : [
TranslateModule,
FormsModule,
BrowserModule,
HttpClientTestingModule,
TranslateModule.forRoot({
loader: {
provide : TranslateLoader,
useClass: TranslateFakeLoader
}
}),
NgxsModule.forRoot([]),
NgxsModule.forFeature([ContactState]),
],
declarations: [
CreateContactPageComponent,
ContactFormComponent,
FormFieldErrorsComponent,
ToFieldValidationErrorMessagesPipe,
],
providers : [
{provide: Router, useValue: routerMock},
{provide: ContactService, useClass: ContactServiceMock},
Actions,
],
}).compileComponents();