46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
import { describe, it, expect } from "vitest";
|
|
import { createDurationData } from "../../../src/common/datetime/create_duration_data";
|
|
|
|
describe("createDurationData", () => {
|
|
it("should return undefined for undefined input", () => {
|
|
expect(createDurationData(undefined)).toBeUndefined();
|
|
});
|
|
|
|
it("should parse string duration correctly", () => {
|
|
expect(createDurationData("1:30:15.001")).toEqual({
|
|
hours: 1,
|
|
minutes: 30,
|
|
seconds: 15,
|
|
milliseconds: 1,
|
|
});
|
|
|
|
expect(createDurationData("20")).toEqual({
|
|
seconds: 20,
|
|
});
|
|
});
|
|
|
|
it("should return undefined for invalid string duration", () => {
|
|
expect(createDurationData("1:30:15:20")).toBeUndefined();
|
|
});
|
|
|
|
it("should parse number duration correctly", () => {
|
|
expect(createDurationData(3600)).toEqual({ seconds: 3600 });
|
|
});
|
|
|
|
it("should parse object duration without days correctly", () => {
|
|
expect(createDurationData({ hours: 1, minutes: 30 })).toEqual({
|
|
hours: 1,
|
|
minutes: 30,
|
|
});
|
|
});
|
|
|
|
it("should handle days in object duration correctly", () => {
|
|
expect(createDurationData({ days: 1, hours: 1 })).toEqual({
|
|
hours: 25,
|
|
minutes: undefined,
|
|
seconds: undefined,
|
|
milliseconds: undefined,
|
|
});
|
|
});
|
|
});
|