У меня есть сага, использующая эффект take, чтобы получить действие по шаблону.Теперь я пытаюсь проверить это:
Сага:
export function* mySaga(spaceId) {
while (true) {
const action = yield take(
action =>
action.type === MEDIA_SESSION_RESPONSE &&
action.payload.data.category === ScreenShareData &&
action.payload.data.topicId === spaceId
);
const remoteScreenSessionId = action.payload.data.content.sessionId;
yield put(addRemoteScreenSessionId(remoteScreenSessionId));
}
}
Тест:
it('test', () => {
const gen = sagas.mySaga('space_1');
expect(gen.next().value).toEqual(
take(
action =>
action.type === MEDIA_SESSION_RESPONSE &&
action.payload.data.category === ScreenShareData &&
action.payload.data.topicId === spaceId
)
);
});
В шаблоне взятия у меня есть анонимная функция, так как яМожно ли проверить, что шаблон в дубле равен шаблону, который я предоставляю в тесте?
Результат теста сейчас:
Expected value to equal:
{"@@redux-saga/IO": true, "combinator": false, "payload": {"pattern": [Function anonymous]}, "type": "TAKE"}
Received:
{"@@redux-saga/IO": true, "combinator": false, "payload": {"pattern": [Function anonymous]}, "type": "TAKE"}
Если я буду использовать JSON.stringify, я не смогууверен, что шаблоны равны.