Я пытаюсь смоделировать атрибут window.navigator.language
в браузере в моих модульных тестах jest, чтобы я мог проверить, что контент на моей странице использует правильный язык
Я нашел людей онлайн, использующих это:
Object.defineProperty(window.navigator, 'language', {value: 'es', configurable: true});
Я установил его прямо в верхней части моего файла теста, и он работает там
однако, когда я переопределяю в отдельном тесте (и людейчтобы убедиться, что для configurable задано значение true) оно не будет переопределять его и просто использует старое значение, кто-нибудь знает способ его определенного изменения?
beforeEach(() => {
jest.clearAllMocks()
Object.defineProperty(global.navigator, 'language', {value: 'es', configurable: true});
wrapper = shallow(<Component {...props} />)
})
it('should do thing 1', () => {
Object.defineProperty(window.navigator, 'language', {value: 'de', configurable: true});
expect(wrapper.state('currentLanguage')).toEqual('de')
})
it('should do thing 2', () => {
Object.defineProperty(window.navigator, 'language', {value: 'pt', configurable: true});
expect(wrapper.state('currentLanguage')).toEqual('pt')
})
для этих тестов это не меняет языкна новый язык, который я установил, всегда используя тот, что вверху