Сначала ---21
будет ждать три кадра, затем испустить '2'
, а затем испустить '1``. Fork join is not a
merge it will emit once, and it will emit
[1, 2] `.
Буквенно-цифровые шарики продвигаются на один кадр после того, как они излучают.Таким образом, и a
, и b
завершатся в кадре 4. Затем forkJoin разрешит emit.Затем forkJoin будет немедленно завершен (также в кадре 4).
Итак, ошибки, которые вы получаете:
Expected $[0].frame = 40 to equal 30.
Первый элемент, отправляемый из объединения вил, находится в момент времени 4 (потому чтоa и b завершены в момент времени 4) не в момент времени 3.
Expected $[0].notification.value = [ 1, 2 ] to equal '2'.
Излучаемое значение равно [1, 2]
, а не '2'
, как описано выше.
Expected $[1].frame = 40 to equal 50.
Expected $[1].notification.kind = 'C' to equal 'N'.
Expected $[1].notification.value = undefined to equal '1'.
Expected $[1].notification.hasValue = false to equal true.
Вы ожидаете'1'
во время 5. Он получает complete
во время 4.
Так что вы, вероятно, хотите ...
const expected = cold('----(a|)', { a: [1, 2] });
expect(observable).toBeObservable(expected);