Мы используем шутку для насмешек.У меня есть функция, которая будет приветствовать нас в зависимости от времени, когда файл выглядит следующим образом:
export default function getGreetingMessage() {
const today = new Date();
const curHr = today.getHours();
if (curHr < 12) {
return 'Good morning';
} else if (curHr < 18) {
return 'Good afternoon';
}
return 'Good evening';
}
И мой тестовый файл будет выглядеть ниже
import getGreetingMessage from '../messages';
describe('messages', () => {
function setup(date) {
const DATE_TO_USE = new Date(date);
global.Date = jest.fn(() => DATE_TO_USE);
}
it('should return good afternoon when time is greater than 12', () => {
setup('Tue Oct 16 2018 15:49:11');
expect(getGreetingMessage()).toEqual('Good afternoon');
});
it('should return good morning when time is less than 12', () => {
setup('Tue Oct 16 2018 10:49:11');
expect(getGreetingMessage()).toEqual('Good morning');
});
it('should return good evening when time is greater than than 19', () => {
setup('Tue Oct 16 2018 19:49:11');
expect(getGreetingMessage()).toEqual('Good evening');
});
});
Когда я запускаю каждый тест по отдельностиработает нормальноКогда я запускал все за раз, тогда тесты не проходили.
Я попытался сбросить шутку.Но не работает.
Есть ли другие способы попробовать?
Заранее спасибо :)