Я хотел бы проверить, что эффект отправляет действие. Логично, что приведенный ниже тест выдает ошибку, сообщающую, что createActionSuccess не является шпионом. Проблема в том, что я не знаю, смогу ли я spyOn
createOperationSuccess.
describe('[OPERATION] Create Operation', () => {
it(' should trigger createoperation from operation service', (done) => {
actions$ = of({type: createOperation.type, operation: CreateOperationDTOMock});
spyOn(service, 'create').and.callThrough();
effects.createOperation$.subscribe(t => {
expect(service.create).toHaveBeenCalledWith(CreateOperationDTOMock);
expect(createOperationSuccess).toHaveBeenCalledWith({operation_id: OperationMock._id});
done();
});
});
});
Действие createOperationSuccess:
export const createOperationSuccess = createAction(
'[OPERATION] Create Operation Success',
props<{ operation_id: string }>()
);
Эффект createOperation:
createOperation$ = createEffect(() =>
this.actions$.pipe(
ofType(createOperation),
concatMap(payload => {
return this.operationService
.create(payload.operation)
// I want to test that line below saying that createOperationSuccess has been triggered.
.pipe(map(operation_id => createOperationSuccess({ operation_id })));
})
)
);
Заранее спасибо.