Fix: defaulted timezone to GMT and added test

This commit is contained in:
Nigel Wright
2021-01-30 16:12:35 +13:00
parent 60ace10779
commit 4c98fbd8c1
2 changed files with 56 additions and 3 deletions
@@ -0,0 +1,53 @@
/*
* Copyright 2021 Spotify AB
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { renderWithEffects } from '@backstage/test-utils';
import { HomepageTimer } from './HomepageTimer';
import React from 'react';
import { lightTheme } from '@backstage/theme';
import { ThemeProvider } from '@material-ui/core';
import {
ApiProvider,
ApiRegistry,
ConfigReader,
ConfigApi,
configApiRef,
} from '@backstage/core-api';
it('changes default timezone to GMT', async () => {
const configApi: ConfigApi = new ConfigReader({
homepage: {
clocks: [
{
label: 'New York',
timezone: 'America/New_Pork',
},
],
},
context: 'test',
});
const rendered = await renderWithEffects(
<ThemeProvider theme={lightTheme}>
<ApiProvider apis={ApiRegistry.from([[configApiRef, configApi]])}>
<HomepageTimer />
</ApiProvider>
</ThemeProvider>,
);
expect(rendered.getByText('GMT')).toBeInTheDocument();
});
@@ -51,10 +51,10 @@ function getTimes(configApi: ConfigApi) {
} catch (e) {
// eslint-disable-next-line no-console
console.warn(
`The timezone ${options.timeZone} is invalid. Defaulting to America/Los Angeles`,
`The timezone ${options.timeZone} is invalid. Defaulting to GMT`,
);
options.timeZone = 'America/Los_Angeles';
label = 'Los Angeles';
options.timeZone = 'GMT';
label = 'GMT';
}
const time = d.toLocaleTimeString(lang, options);