add #timeout, macro errors, refactor tests (#191)
This commit is contained in:
committed by
pullfrog[bot]
parent
f77fecc2a0
commit
943409c417
@@ -0,0 +1,47 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { isValidTimeString, parseTimeString } from "./time.ts";
|
||||
|
||||
describe("parseTimeString", () => {
|
||||
it.each([
|
||||
["10m", 600000], // 10 minutes
|
||||
["1h", 3600000], // 1 hour
|
||||
["30s", 30000], // 30 seconds
|
||||
["1h30m", 5400000], // 1 hour 30 minutes
|
||||
["10m12s", 612000], // 10 minutes 12 seconds
|
||||
["1h30m45s", 5445000], // 1 hour 30 minutes 45 seconds
|
||||
["2h", 7200000], // 2 hours
|
||||
["90m", 5400000], // 90 minutes
|
||||
["0m", 0], // 0 minutes (edge case)
|
||||
["0s", 0], // 0 seconds (edge case)
|
||||
])("parses '%s' to %d ms", (input, expected) => {
|
||||
expect(parseTimeString(input)).toBe(expected);
|
||||
});
|
||||
|
||||
it.each([
|
||||
[""], // empty string
|
||||
["abc"], // no numbers
|
||||
["10"], // no unit
|
||||
["10x"], // invalid unit
|
||||
["h10m"], // hours without number
|
||||
["m10"], // units before number
|
||||
["10 m"], // space between number and unit
|
||||
["-10m"], // negative number
|
||||
["10.5m"], // decimal
|
||||
["10m 30s"], // space between components
|
||||
])("returns null for invalid input '%s'", (input) => {
|
||||
expect(parseTimeString(input)).toBeNull();
|
||||
});
|
||||
});
|
||||
|
||||
describe("isValidTimeString", () => {
|
||||
it.each(["10m", "1h", "30s", "1h30m", "10m12s", "1h30m45s"])(
|
||||
"returns true for valid '%s'",
|
||||
(input) => {
|
||||
expect(isValidTimeString(input)).toBe(true);
|
||||
}
|
||||
);
|
||||
|
||||
it.each(["", "abc", "10", "10x", "-10m", "10.5m"])("returns false for invalid '%s'", (input) => {
|
||||
expect(isValidTimeString(input)).toBe(false);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user