- Introduced new functions `isInLocalTodayMatchWindow` and `isAfterLocalTodayMatchWindow` to enhance match time checks. - Replaced the deprecated `dayKeyInTimeZone` function with `isInLocalTodayMatchWindow` in the PlayerController. - Updated related tests and utility exports to reflect the new naming conventions. - Improved handling of local match windows in various components for better accuracy.
49 lines
1.6 KiB
TypeScript
49 lines
1.6 KiB
TypeScript
import {
|
|
formatLocalMatchDateTime,
|
|
isAfterLocalTodayMatchWindow,
|
|
isInLocalTodayMatchWindow,
|
|
isoToPlatformPickerDateTime,
|
|
platformPickerDateTimeToIso,
|
|
} from '@thebet365/shared';
|
|
|
|
describe('match time helpers', () => {
|
|
it('converts Malaysia picker time to UTC ISO and back', () => {
|
|
const iso = platformPickerDateTimeToIso('2026-06-11T19:00:00');
|
|
|
|
expect(iso).toBe('2026-06-11T11:00:00.000Z');
|
|
expect(isoToPlatformPickerDateTime(iso)).toBe('2026-06-11T19:00:00');
|
|
});
|
|
|
|
it('formats the same kickoff in different local time zones with GMT offsets', () => {
|
|
const malaysia = formatLocalMatchDateTime('2026-06-11T11:00:00.000Z', 'en-US', {
|
|
variant: 'full',
|
|
timeZone: 'Asia/Kuala_Lumpur',
|
|
});
|
|
|
|
const newYork = formatLocalMatchDateTime('2026-06-11T11:00:00.000Z', 'en-US', {
|
|
variant: 'full',
|
|
timeZone: 'America/New_York',
|
|
});
|
|
|
|
expect(malaysia).toContain('07:00');
|
|
expect(malaysia).toContain('GMT+8');
|
|
expect(newYork).toContain('07:00');
|
|
expect(newYork).toContain('GMT-4');
|
|
expect(malaysia).not.toBe(newYork);
|
|
});
|
|
|
|
it('keeps early next-day matches in the player today bucket until local noon', () => {
|
|
const now = new Date('2026-06-11T15:00:00-04:00');
|
|
|
|
expect(isInLocalTodayMatchWindow('2026-06-12T02:00:00.000Z', now, 'America/New_York')).toBe(
|
|
true,
|
|
);
|
|
expect(isInLocalTodayMatchWindow('2026-06-12T15:59:59.000Z', now, 'America/New_York')).toBe(
|
|
true,
|
|
);
|
|
expect(isAfterLocalTodayMatchWindow('2026-06-12T16:00:00.000Z', now, 'America/New_York')).toBe(
|
|
true,
|
|
);
|
|
});
|
|
});
|