Вы в порядке, дополнительная работа не требуется.
Поскольку Team.query
является фиктивной функцией, она автоматически вернется к ранее имитированной реализации после одного вызова, когда она была переопределена с помощью mockImplementationOnce
:
const Team = { };
Team.query = jest.fn(() => ({
findOne: () => {
return {
is_disabled: false,
};
},
}));
test('Team.query', () => {
expect(Team.query().findOne().is_disabled).toBe(false); // Success!
Team.query.mockImplementationOnce(() => ({ findOne: () => ({ is_disabled: true }) }));
expect(Team.query().findOne().is_disabled).toBe(true); // Success!
expect(Team.query().findOne().is_disabled).toBe(false); // Success!
Team.query.mockImplementationOnce(() => ({ findOne: () => ({ is_disabled: 'some text' }) }));
expect(Team.query().findOne().is_disabled).toBe('some text'); // Success!
expect(Team.query().findOne().is_disabled).toBe(false); // Success!
});