1
0
mirror of https://github.com/home-assistant/frontend.git synced 2026-07-02 20:15:40 +01:00
Files
frontend/test/common/string/is_timestamp.test.ts
2026-06-14 21:49:46 +02:00

38 lines
1.4 KiB
TypeScript

import { expect, test } from "vitest";
import { isTimestamp } from "../../../src/common/string/is_timestamp";
test("isTimestamp accepts valid timestamps", () => {
expect(isTimestamp("2021-06-15T08:30:00Z")).toBe(true);
expect(isTimestamp("2021-06-15 08:30:00")).toBe(true);
expect(isTimestamp("2021-06-15T08:30")).toBe(true);
expect(isTimestamp("2021-12-31T23:59:59")).toBe(true);
expect(isTimestamp("2021-06-15T08:30:00.123+02:00")).toBe(true);
expect(isTimestamp("2021-06-15T24:00")).toBe(true);
});
test("isTimestamp rejects non-timestamps", () => {
expect(isTimestamp("not a date")).toBe(false);
expect(isTimestamp("2021/06/15T08:30")).toBe(false);
expect(isTimestamp("2021-13-01T00:00")).toBe(false);
expect(isTimestamp("2021-00-01T00:00")).toBe(false);
expect(isTimestamp("2021-06-32T00:00")).toBe(false);
expect(isTimestamp("2021-06-15T25:00")).toBe(false);
});
test("isTimestamp does not allow a leading plus or minus", () => {
expect(isTimestamp("+2021-06-15T08:30")).toBe(false);
expect(isTimestamp("-2021-06-15T08:30")).toBe(false);
});
test("isTimestamp requires a time component after the date", () => {
expect(isTimestamp("2021-06-15")).toBe(false);
});
test("isTimestamp rejects week-number dates", () => {
expect(isTimestamp("2021-W24-2T08:30")).toBe(false);
});
test("isTimestamp rejects a year on its own", () => {
expect(isTimestamp("2021")).toBe(false);
});