diff --git a/src/xmltv.test.ts b/src/xmltv.test.ts index c324d9b..b9e8187 100644 --- a/src/xmltv.test.ts +++ b/src/xmltv.test.ts @@ -24,7 +24,7 @@ const mockData: GridApiResponse = { endTime: "2025-07-18T20:00:00Z", thumbnail: "p30687311_b_v13_aa", channelNo: "4.1", - filter: ["filter-news"], + filter: ["filter-news", "filter-sports"], seriesId: "SH05918266", rating: "TV-PG", flag: ["New"], @@ -85,6 +85,12 @@ describe("buildXmltv", () => { ); }); + it("should include category information", () => { + const result = buildXmltv(mockData); + expect(result).toContain('news'); + expect(result).toContain('sports'); + }); + it("should include rating information", () => { const result = buildXmltv(mockData); expect(result).toContain( @@ -173,7 +179,7 @@ describe("buildXmltv", () => { expect(result).not.toContain(""); expect(result).not.toContain(""); expect(result).not.toContain(""); - expect(result).not.toContain(""); + expect(result).not.toContain(''); expect(result).not.toContain(" { expect(result).toContain( "BIA performs; comic Zarna Garg; lifestyle contributor Lori Bergamotto; ABC News chief medical correspondent Dr. Tara Narula.", ); + expect(result).toContain('news'); + expect(result).toContain('sports'); expect(result).toContain( 'TV-PG', ); @@ -336,7 +344,7 @@ describe("buildProgramsXml", () => { expect(result).not.toContain(""); expect(result).not.toContain(""); expect(result).not.toContain(""); - expect(result).not.toContain(""); + expect(result).not.toContain(''); expect(result).not.toContain("${escapeXml(event.program.shortDesc)}\n`; } + const filters = event.filter?.filter(item => item); + if (filters?.length) { + for (const filter of filters) { + const category = filter.match(/^(filter)-(.*?)$/); + if (category) { + xml += ` ${category[2]}`; + } + } + } + if (event.rating) { xml += ` ${escapeXml( event.rating,