Сроки / обрамление проблема с жасминовым мрамором, используя горячий и холодный

У меня есть быстрое демо, которое люди могут скачать здесь: https://stackblitz.com/edit/angular-vczzqp Просто нажмите "Экспорт" в правом верхнем углу, в своем любимом терминале и запустите install а также ng test с вашим любимым браузером.

В принципе, мне кажется, что проблема заключается в том, что внутренние параметры Жасмин не совпадают с объектами.

Ниже тест и точная ошибка, которую я получаю. Смотрите пример в app/Test для полного класса теста

it('should return a GET_GENERIC_FAILED when the services throws', () => {
    const action = new genericActions.GetAllGenericAction();

    genericsService.getAllGenerics.and.returnValue(Observable.throw({}));

    actions$.stream = hot('a', { a: action });
    const expected = cold('b', { b: new genericActions.GetGenericFailedAction() });

    expect(effects.getAllGenerics).toBeObservable(expected);
});

И ошибка

Expected
    [Object({
        frame: 0,
        notification: Notification({
            kind: 'N',
            value: GetGenericFailedAction({
                type: '[GENERIC] Get Generic Failed'
            }),
            error: undefined,
            hasValue: true
        })
    }), Object({
        frame: 0,
        notification: Notification({
            kind: 'C',
            value: undefined,
            error: undefined,
            hasValue: false
        })
    })]
    to equal
    [Object({
        frame: 0,
        notification: Notification({
            kind: 'N',
            value: GetGenericFailedAction({
                type: '[GENERIC] Get Generic Failed'
            }),
            error: undefined,
            hasValue: true
        })
    })].

Любое руководство будет оценено.

1 ответ

Решение

Похоже, что это проблема того, как генерируются ошибки.

Исправление было добавить | чтобы отметить наблюдаемое как завершенное, а также обернуть ожидаемое наблюдаемое в () сгруппировать операцию вместе.

actions$.stream = hot('a|', { a|: action });
const expected = cold('(b|)', { b: new genericActions.GetGenericFailedAction() });

Документация по синтаксису находится здесь.

Другие вопросы по тегам