Создание временного ORM для результатов тестирования в TypeError: "Не удается переопределить свойство"
Для тестирования моделей (или, точнее, их редукторов) я создал функцию, которая создает хранилище Redux только с указанными в нем моделями ORM, чтобы запускать утверждения для него, чтобы гарантировать отправку правильных действий, а также создание и сохранение объектов в магазине. Это прекрасно работает для моделей без каких-либо отношений, однако, когда я пытаюсь протестировать любую модель, имеющую отношение к другой, я получаю "TypeError: Cannot redefine property X" - X является свойством модели, которая имеет отношение к другой модели. Похоже, что после тщательного изучения процесса это происходит в функции createStore.
import {ORM} from "redux-orm";
function prepareStore(Models) {
let testORM = new ORM();
let passMods = Object.values(Models);
testORM.register(...passMods);
let ormReducer = createReducer(testORM);
let reducers = combineReducers({
orm: ormReducer,
})
let fakeStore = createStore( // Error appears to occur here
reducers,
undefined,
undefined,
);
return fakeStore;
}
И пример теста, который завершается без ошибок, выглядит как
import * as Models from "models";
it ("Creates a Test Model", function() {
let fakeStore = prepareStore({Models.Test});
let testData = {
id: 0,
name: "TEST",
};
let testAction = {
type: Constants.CREATE_TEST,
payload: testData,
};
fakeStore.dispatch(testAction1);
let ormState = fakeStore.getState().orm;
expect(ormState.Test.itemsById["0"].id).to.equal(0);
expect(ormState.Test.itemsById["0"].name).to.deep.equal("TEST");
expect(ormState.Market.meta.maxId).to.equal(0);
});
Любопытный аспект связан с нашей производственной средой, все модели зарегистрированы одновременно, и нет никаких ошибок в переопределении свойств. Кто-нибудь еще сталкивался с этой проблемой и посоветует потенциальное решение?