mirror of
https://github.com/iptv-org/epg
synced 2025-12-16 02:16:40 -05:00
75 lines
2.2 KiB
JavaScript
75 lines
2.2 KiB
JavaScript
const { parser, url, request } = require('./sky.co.nz.config.js')
|
|
const fs = require('fs')
|
|
const path = require('path')
|
|
const dayjs = require('dayjs')
|
|
const utc = require('dayjs/plugin/utc')
|
|
const tz = require('dayjs/plugin/timezone')
|
|
dayjs.extend(utc)
|
|
dayjs.extend(tz)
|
|
|
|
const channel = {
|
|
site_id: '1',
|
|
xmltv_id: 'TVNZ 1'
|
|
}
|
|
it('can generate valid url', () => {
|
|
expect(url).toBe('https://api.skyone.co.nz/exp/graph')
|
|
})
|
|
|
|
it('can generate valid request method', () => {
|
|
expect(request.method).toBe('POST')
|
|
})
|
|
|
|
it('can parse response', () => {
|
|
const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.json'))
|
|
const result = parser({ content, channel }).map(p => {
|
|
p.start = p.start.toJSON()
|
|
p.stop = p.stop.toJSON()
|
|
return p
|
|
})
|
|
|
|
expect(result[0]).toMatchObject({
|
|
title: 'Hard Quiz',
|
|
description:
|
|
"What do King Henry VII, Shaquille O'Neal, dinosaurs and The Adventures of Priscilla, Queen of the Desert have in common? They're all expert topics on tonight's #HardQuiz!",
|
|
rating: { system: 'OFLC', value: 'PG' },
|
|
start: '2025-12-12T10:40:00.000Z',
|
|
stop: '2025-12-12T11:15:00.000Z'
|
|
})
|
|
|
|
expect(result[33]).toMatchObject({
|
|
title: 'Obituary',
|
|
description:
|
|
'Season Finale: When Ward reveals what really happened the night Maria Riedle was killed, Elvira sets about framing Hughie for the crime. S1 E6',
|
|
rating: { system: 'OFLC', value: '16' },
|
|
start: '2025-12-13T10:55:00.000Z',
|
|
stop: '2025-12-13T11:50:00.000Z'
|
|
})
|
|
})
|
|
|
|
// Not easy to mock this case, as it's the same repeated message (for all channels ?)
|
|
// with the time space in the message. Only what doesn't change is provided, but will still pass the test out.
|
|
it('can handle empty guide', () => {
|
|
const result = parser({
|
|
content: `{
|
|
"locations": [
|
|
{
|
|
"line": 14,
|
|
"column": 11
|
|
}
|
|
],
|
|
"path": [
|
|
"experience",
|
|
"channelGroup",
|
|
"channels",
|
|
0,
|
|
"slotsForDay"
|
|
],
|
|
"extensions": {
|
|
"classification": "DataFetchingException"
|
|
}
|
|
}`,
|
|
channel
|
|
})
|
|
expect(result).toMatchObject([])
|
|
})
|