fix(TimezoneSelector): Failing unit tests due to timezone change (#30828)

This commit is contained in:
Geido 2024-11-04 16:08:44 +02:00 committed by GitHub
parent 29e3f4bcc4
commit 5820d31b5c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 11 additions and 6 deletions

View File

@ -35,10 +35,13 @@ const loadComponent = (mockCurrentTime?: string) => {
return new Promise<FC<TimezoneSelectorProps>>(resolve => { return new Promise<FC<TimezoneSelectorProps>>(resolve => {
const { default: TimezoneSelector } = module.require('./index'); const { default: TimezoneSelector } = module.require('./index');
resolve(TimezoneSelector); resolve(TimezoneSelector);
jest.useRealTimers();
}); });
}; };
afterEach(() => {
jest.useRealTimers();
});
test('render timezones in correct order for daylight saving time', async () => { test('render timezones in correct order for daylight saving time', async () => {
const TimezoneSelector = await loadComponent('2022-07-01'); const TimezoneSelector = await loadComponent('2022-07-01');
const onTimezoneChange = jest.fn(); const onTimezoneChange = jest.fn();

View File

@ -35,7 +35,6 @@ const loadComponent = (mockCurrentTime?: string) => {
return new Promise<FC<TimezoneSelectorProps>>(resolve => { return new Promise<FC<TimezoneSelectorProps>>(resolve => {
const { default: TimezoneSelector } = module.require('./index'); const { default: TimezoneSelector } = module.require('./index');
resolve(TimezoneSelector); resolve(TimezoneSelector);
jest.useRealTimers();
}); });
}; };
@ -49,6 +48,10 @@ const openSelectMenu = () => {
jest.spyOn(moment.tz, 'guess').mockReturnValue('America/New_York'); jest.spyOn(moment.tz, 'guess').mockReturnValue('America/New_York');
afterEach(() => {
jest.useRealTimers();
});
test('use the timezone from `moment` if no timezone provided', async () => { test('use the timezone from `moment` if no timezone provided', async () => {
const TimezoneSelector = await loadComponent('2022-01-01'); const TimezoneSelector = await loadComponent('2022-01-01');
const onTimezoneChange = jest.fn(); const onTimezoneChange = jest.fn();
@ -96,10 +99,9 @@ test('render timezones in correct order for standard time', async () => {
await waitForElementToBeRemoved(() => screen.queryByLabelText('Loading')); await waitForElementToBeRemoved(() => screen.queryByLabelText('Loading'));
openSelectMenu(); openSelectMenu();
const options = await getSelectOptions(); const options = await getSelectOptions();
expect(options[0]).toHaveTextContent('GMT -04:00 (Eastern Daylight Time)'); expect(options[0]).toHaveTextContent('GMT -05:00 (Eastern Standard Time)');
expect(options[1]).toHaveTextContent('GMT -11:00 (Pacific/Pago_Pago)'); expect(options[1]).toHaveTextContent('GMT -11:00 (Pacific/Pago_Pago)');
expect(options[2]).toHaveTextContent('GMT -10:00 (Hawaii Standard Time)'); expect(options[2]).toHaveTextContent('GMT -10:00 (Hawaii Standard Time)');
expect(options[3]).toHaveTextContent('GMT -09:30 (Pacific/Marquesas)');
}); });
test('can select a timezone values and returns canonical timezone name', async () => { test('can select a timezone values and returns canonical timezone name', async () => {
@ -116,8 +118,8 @@ test('can select a timezone values and returns canonical timezone name', async (
const searchInput = screen.getByRole('combobox'); const searchInput = screen.getByRole('combobox');
// search for mountain time // search for mountain time
await userEvent.type(searchInput, 'mou', { delay: 10 }); await userEvent.type(searchInput, 'mou');
const findTitle = 'GMT -06:00 (Mountain Daylight Time)'; const findTitle = 'GMT -07:00 (Mountain Standard Time)';
const selectOption = await screen.findByTitle(findTitle); const selectOption = await screen.findByTitle(findTitle);
userEvent.click(selectOption); userEvent.click(selectOption);
expect(onTimezoneChange).toHaveBeenCalledTimes(1); expect(onTimezoneChange).toHaveBeenCalledTimes(1);