Convert timeUtil to typescript

Signed-off-by: Oliver Sand <oliver.sand@sda-se.com>
This commit is contained in:
Oliver Sand
2021-10-11 10:21:02 +02:00
parent ef5bf4235a
commit e5d79ade95
2 changed files with 20 additions and 16 deletions
@@ -16,16 +16,20 @@
import { getTimeBasedGreeting } from './timeUtil';
it('has greeting and language', () => {
const greeting = getTimeBasedGreeting();
expect(greeting).toHaveProperty('greeting');
expect(greeting).toHaveProperty('language');
});
describe('getTimeBasedGreeting', () => {
afterEach(() => jest.resetAllMocks());
it('greets late at night', () => {
jest
.spyOn(global.Date, 'now')
.mockImplementationOnce(() => new Date('1970-01-01T23:00:00').valueOf());
const greeting = getTimeBasedGreeting();
expect(greeting.greeting).toBe('Get some rest');
it('has greeting and language', () => {
const greeting = getTimeBasedGreeting();
expect(greeting).toHaveProperty('greeting');
expect(greeting).toHaveProperty('language');
});
it('greets late at night', () => {
jest
.spyOn(global.Date, 'now')
.mockImplementationOnce(() => new Date('1970-01-01T23:00:00').valueOf());
const greeting = getTimeBasedGreeting();
expect(greeting.greeting).toBe('Get some rest');
});
});
@@ -18,12 +18,12 @@ import goodMorning from './locales/goodMorning.locales.json';
import goodAfternoon from './locales/goodAfternoon.locales.json';
import goodEvening from './locales/goodEvening.locales.json';
// Select a large random integer at startup, to prevent the greetings to change every time the user
// navigates.
// Select a large random integer at startup, to prevent the greetings to change
// every time the user navigates.
const greetingRandomSeed = Math.floor(Math.random() * 1000000);
export function getTimeBasedGreeting() {
const random = array => array[greetingRandomSeed % array.length];
export function getTimeBasedGreeting(): { language: string; greeting: string } {
const random = (array: string[]) => array[greetingRandomSeed % array.length];
const currentHour = new Date(Date.now()).getHours();
if (currentHour >= 23) {
@@ -32,7 +32,7 @@ export function getTimeBasedGreeting() {
greeting: 'Get some rest',
};
}
const timeOfDay = hour => {
const timeOfDay = (hour: number): { [language: string]: string } => {
if (hour < 12) return goodMorning;
if (hour < 17) return goodAfternoon;
return goodEvening;