Мне нужно проверить функцию в моем TS-модуле.
module-to-test.ts
import { config } from './app-config';
export const isSomethingWhatINeedSelector = createSelector(
firstDependencySelector,
secondDependencySelector,
(first, second) => config.key && (first || !second)
);
Но я не хочу писать много тестов для этого случая, и я хочу попробовать использовать
describe.each([[],[],[]])
функциональность для уменьшения количества строк кода.
И мне нужно менять config.key на каждой итерации description.each.
Когда я делаю в начале тестового файла что-то вроде этого:
jest.mock('./app-config', () => ({
config: {
key : false,
},
}));
работает для всего файла и всех тестов. Я хочу сделать макет внутри функции "test / it" для динамического изменения значения ключа.
Теперь у меня есть этот код, который doesn't work
, как и ожидалось
describe.each([
[
'should be ....',
true, false
],
[
'should be ....',
false, true
],
/* and etc. ... [], [], [] ... only for questnion here is two params*/
])('Functionality of ...', (
testTitle = '',
mockStatusOfConfigKey,
expected,
) => {
const state = ... /* initial */
beforeEach(() => {
jest.resetModules();
/*....configuring the state*/
});
it(testTitle, () => {
jest.mock('./app-config', () => ({ /*...or doMock(), that don't works*/
config: {
key : mockStatusOfConfigKey,
},
}));
expect(isSomethingWhatINeedSelector(state)).toBe(expected);
});
});
Есть идеи, как сделать макеты динамически изменяемыми внутри тестовых функций?
config.key is just true/false