Files
n8n_Demo/n8n-n8n-1.109.2/packages/frontend/@n8n/i18n/src/index.test.ts
2025-09-08 04:48:28 +08:00

36 lines
1.8 KiB
TypeScript
Executable File

import { I18nClass } from './index';
describe(I18nClass, () => {
describe('displayTimer', () => {
it('should format duration with hours, minutes and seconds', () => {
expect(new I18nClass().displayTimer(-1)).toBe('-1s');
expect(new I18nClass().displayTimer(0)).toBe('0s');
expect(new I18nClass().displayTimer(12)).toBe('0s');
expect(new I18nClass().displayTimer(123)).toBe('0s');
expect(new I18nClass().displayTimer(1234)).toBe('1s');
expect(new I18nClass().displayTimer(59000)).toBe('59s');
expect(new I18nClass().displayTimer(60000)).toBe('1m 0s');
expect(new I18nClass().displayTimer(600000)).toBe('10m 0s');
expect(new I18nClass().displayTimer(601234)).toBe('10m 1s');
expect(new I18nClass().displayTimer(3599999)).toBe('59m 59s');
expect(new I18nClass().displayTimer(3600000)).toBe('1h 0m 0s');
expect(new I18nClass().displayTimer(3601234)).toBe('1h 0m 1s');
expect(new I18nClass().displayTimer(6000000)).toBe('1h 40m 0s');
expect(new I18nClass().displayTimer(100000000)).toBe('27h 46m 40s');
});
it('should include milliseconds if showMs=true and the time includes sub-seconds', () => {
expect(new I18nClass().displayTimer(0, true)).toBe('0s');
expect(new I18nClass().displayTimer(12, true)).toBe('12ms');
expect(new I18nClass().displayTimer(123, true)).toBe('123ms');
expect(new I18nClass().displayTimer(1012, true)).toBe('1.012s');
expect(new I18nClass().displayTimer(1120, true)).toBe('1.12s');
expect(new I18nClass().displayTimer(1234, true)).toBe('1.234s');
expect(new I18nClass().displayTimer(600000, true)).toBe('10m 0s');
expect(new I18nClass().displayTimer(601234, true)).toBe('10m 1.234s');
expect(new I18nClass().displayTimer(3600000, true)).toBe('1h 0m 0s');
expect(new I18nClass().displayTimer(3601234, true)).toBe('1h 0m 1.234s');
});
});
});