Skip to content

Commit 1696b15

Browse files
committed
fix: headendId when OTA, add tests
1 parent ad7aa8e commit 1696b15

File tree

2 files changed

+46
-2
lines changed

2 files changed

+46
-2
lines changed

src/config.test.ts

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import { describe, it, expect } from "vitest";
2+
import { processLineupId, getHeadendId } from "./config.js";
3+
4+
describe("processLineupId", () => {
5+
it("returns env LINEUP_ID if set", () => {
6+
process.env.LINEUP_ID = "USA-12345";
7+
expect(processLineupId()).toBe("USA-12345");
8+
delete process.env.LINEUP_ID;
9+
});
10+
11+
it("returns argv --lineupId if set", () => {
12+
process.argv.push("--lineupId=USA-54321");
13+
expect(processLineupId()).toBe("USA-54321");
14+
process.argv = process.argv.filter((arg) => !arg.startsWith("--lineupId="));
15+
});
16+
17+
it("returns default if nothing set", () => {
18+
expect(processLineupId()).toBe("USA-lineupId-DEFAULT");
19+
});
20+
21+
it("returns default if lineupId contains OTA", () => {
22+
process.env.LINEUP_ID = "USA-OTA12345";
23+
expect(processLineupId()).toBe("USA-lineupId-DEFAULT");
24+
delete process.env.LINEUP_ID;
25+
});
26+
});
27+
28+
describe("getHeadendId", () => {
29+
it("extracts headend from valid lineupId", () => {
30+
expect(getHeadendId("USA-OTA12345")).toBe("lineupId");
31+
expect(getHeadendId("USA-NY31587-L")).toBe("NY31587");
32+
expect(getHeadendId("CAN-OTAT1L0A1")).toBe("lineupId");
33+
expect(getHeadendId("CAN-0008861-X")).toBe("0008861");
34+
});
35+
36+
it("returns 'lineup' if no match", () => {
37+
expect(getHeadendId("INVALID")).toBe("lineup");
38+
expect(getHeadendId("")).toBe("lineup");
39+
});
40+
});

src/config.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { UserAgent } from "./useragents.js";
22

3-
function processLineupId(): string {
3+
export function processLineupId(): string {
44
const lineupId =
55
process.env["LINEUP_ID"] ||
66
process.argv.find((arg) => arg.startsWith("--lineupId="))?.split("=")[1] ||
@@ -13,7 +13,11 @@ function processLineupId(): string {
1313
return lineupId;
1414
}
1515

16-
function getHeadendId(lineupId: string): string {
16+
export function getHeadendId(lineupId: string): string {
17+
if (lineupId.includes("OTA")) {
18+
return "lineupId";
19+
}
20+
1721
const match = lineupId.match(/^(USA|CAN)-(.*?)(?:-[A-Z]+)?$/);
1822

1923
return match?.[2] || "lineup";

0 commit comments

Comments
 (0)