При попытке проверить аргументы, переданные функции с помощью метода Jest .toHaveBeenCalledWith()
, тест завершился неудачно, если я обрабатываю неизменяемые структуры данных с использованием библиотеки ImmutableJS. Тест завершается с сообщением похожее на это:Аргументы аргумента функции jest не совпадают при использовании неизменяемых структур данных
Expected mock function to have been called with:
[{"foo": true, "bar": "baz"}]
But it was called with:
[{"foo": true, "bar": "baz"}]
тест выглядит примерно так:
const expectedArgs = Map({
foo: true,
bar: 'baz'
});
const foo = jest.fn();
bar();
expect(foo).toHaveBeenCalledWith(expectedArgs);
И функции, подобной этой:
const bar =() => {
const baz = Map({});
const bazModified = baz.set('foo', true).set('bar', 'baz');
foo(bazModified);
}
Я понял, что если я пропустите аргументы таким образом, все работает нормально:
const bar =() => {
const baz = Map({
foo: true,
bar: 'baz'
});
foo(baz);
}
Проблема в том, что это большое упрощение логики моей функции, и я должен использовать .set для построения объекта. У кого-нибудь есть идея, почему подход с .set не правильно оценивается?