@applicaster/zapp-react-native-ui-components
Version:
Applicaster Zapp React Native ui components for the Quick Brick App
110 lines (89 loc) • 2.66 kB
text/typescript
import { parseTime, getAutoplaySettings } from "../utils";
describe("parseTime", () => {
it("should return the parsed time in seconds", () => {
expect(parseTime("01:30")).toBe(90);
expect(parseTime("00:45")).toBe(45);
expect(parseTime("10:00")).toBe(600);
});
it("should throw error for invalid time formats", () => {
const error = "Invalid time format";
expect(() => parseTime("")).toThrow(error);
expect(() => parseTime("abc")).toThrow(error);
expect(() => parseTime("12")).toThrow(error);
expect(() => parseTime(":12")).toThrow(error);
expect(() => parseTime("00:60")).toThrow(error);
expect(() => parseTime("-10:00")).toThrow(error);
});
});
describe("getAutoplaySettings", () => {
it("should return the autoplay settings with parsed start and end times", () => {
const item = {
extensions: {
autoplay_settings: {
start_time: "01:30",
end_time: "02:00",
},
},
};
const { start, end } = getAutoplaySettings(item);
expect(start).toBe(90);
expect(end).toBe(120);
});
it("should return null for missing start or end times", () => {
const item = {
extensions: {
autoplay_settings: {
start_time: "01:30",
},
},
};
const { start, end } = getAutoplaySettings(item);
expect(start).toBe(90);
expect(end).toBeNull();
});
it("should return null for invalid start or end times", () => {
const item = {
extensions: {
autoplay_settings: {
start_time: "abc",
end_time: "def",
},
},
};
const { start, end } = getAutoplaySettings(item);
expect(start).toBeNull();
expect(end).toBeNull();
});
it("should return null end time if start time greater than end time", () => {
const item = {
extensions: {
autoplay_settings: {
start_time: "02:00",
end_time: "01:30",
},
},
};
const { start, end } = getAutoplaySettings(item);
expect(start).toBe(120);
expect(end).toBeNull();
});
it("should return null end time if start time equal to end time", () => {
const item = {
extensions: {
autoplay_settings: {
start_time: "00:30",
end_time: "00:30",
},
},
};
const { start, end } = getAutoplaySettings(item);
expect(start).toBe(30);
expect(end).toBeNull();
});
it("should return null for missing autoplay settings", () => {
const item = {};
const result = getAutoplaySettings(item);
expect(result.start).toBeNull();
expect(result.end).toBeNull();
});
});