timezone.test.ts•1.24 kB
import { describe, test, expect } from 'vitest';
import { isValidTimezone } from './timezone.js';
describe('isValidTimezone', () => {
test('should return true for valid IANA timezone names', () => {
expect(isValidTimezone('UTC')).toBe(true);
expect(isValidTimezone('America/New_York')).toBe(true);
expect(isValidTimezone('Europe/London')).toBe(true);
expect(isValidTimezone('Asia/Tokyo')).toBe(true);
expect(isValidTimezone('Australia/Sydney')).toBe(true);
expect(isValidTimezone('America/Los_Angeles')).toBe(true);
});
test('should return false for invalid timezone names', () => {
expect(isValidTimezone('Invalid/Timezone')).toBe(false);
expect(isValidTimezone('Foo/Bar')).toBe(false);
expect(isValidTimezone('NotReal')).toBe(false);
expect(isValidTimezone('')).toBe(false);
expect(isValidTimezone('America/NonExistent')).toBe(false);
expect(isValidTimezone('Random String')).toBe(false);
});
test('should handle edge cases', () => {
expect(isValidTimezone('GMT')).toBe(true);
expect(isValidTimezone('Europe/Dublin')).toBe(true);
expect(isValidTimezone('Pacific/Honolulu')).toBe(true);
});
});