24 lines
664 B
TypeScript
24 lines
664 B
TypeScript
import { describe, it, expect } from 'vitest';
|
|
import { parseIso8601Duration } from '../../src/lib/server/parsers/iso8601-duration';
|
|
|
|
describe('parseIso8601Duration', () => {
|
|
it.each([
|
|
['PT30M', 30],
|
|
['PT1H', 60],
|
|
['PT1H30M', 90],
|
|
['PT2H15M', 135],
|
|
['PT0M', 0],
|
|
['P1DT2H', 26 * 60],
|
|
['PT90M', 90]
|
|
] as const)('parses %s to %i minutes', (input, expected) => {
|
|
expect(parseIso8601Duration(input)).toBe(expected);
|
|
});
|
|
|
|
it.each([[''], [null], [undefined], ['garbage'], ['30 min'], ['PT']])(
|
|
'returns null for invalid input %j',
|
|
(input) => {
|
|
expect(parseIso8601Duration(input as string)).toBeNull();
|
|
}
|
|
);
|
|
});
|