add provider tests
This commit is contained in:
1 parent
b275a318bd
commit
2bd9b22520
3 files changed
+63
-1
No files matched your search
@@ -0,0 +1 @@
|
||||
[{"responseElementType": "ProgramList", "channelExternalId": "1010", "programs": [{"startDate": 1733006211000, "endDate": 1733011045000, "attachments": [{"name": "COVER", "value": "/epg/COVER/COVER_3425215.jpg"}], "seriesSeason": "", "episodeId": "", "referenceProgramId": "780631624", "prLevel": 5, "id": 14994906154, "description": "Charlie trabaja como director en una escuela de primaria y goza de una placentera existencia junto a sus amigos. A pesar de ello, no es feliz porque cada vez que se enamora pierde la cordura.", "seriesName": "", "genres": [{"externalId": "Cine", "name": "Cine", "id": 128839623}, {"externalId": "Romance", "name": "Romance", "id": 862337287}, {"externalId": "Comedia", "name": "Comedia", "id": 862331198}, {"externalId": "Comedia Romántica", "name": "Comedia Romántica", "id": 1384659250}], "name": "Loco de amor", "flags": 14}, {"startDate": 1733011045000, "endDate": 1733016000000, "attachments": [{"name": "COVER", "value": "/epg/COVER/COVER_3104917.jpg"}], "seriesSeason": "", "episodeId": "", "referenceProgramId": "780624399", "prLevel": 1, "id": 14993172967, "description": "Cuando Roman Hilbert sube a bordo, inmediatamente nota el parecido entre la profesora de baile Jana Stern y su difunta esposa. Él la invita a venir a su hotel en Mauricio.", "seriesName": "", "genres": [{"externalId": "Cine", "name": "Cine", "id": 128839623}, {"externalId": "Drama", "name": "Drama", "id": 862336010}], "name": "El crucero de los sueños: Mauricio", "flags": 14}, {"startDate": 1733016000000, "endDate": 1733029200000, "attachments": [{"name": "COVER", "value": "/epg/COVER/COVER_3108557.jpg"}], "seriesSeason": "", "episodeId": "", "referenceProgramId": "780596261", "prLevel": 1, "id": 14986009612, "description": "Noticias de los servicios informativos del Canal 24 Horas. Producido por Televisión Española, este canal está dedicado íntegramente a ofrecer información de actualidad y es el más antiguo de los canales de este tipo en España.", "seriesName": "", "genres": [{"externalId": "Programa", "name": "Programa", "id": 9169074970}, {"externalId": "Informativo", "name": "Informativo", "id": 862353792}], "name": "Noticias 24H", "flags": 14}, {"startDate": 1733029200000, "endDate": 1733043600000, "attachments": [{"name": "COVER", "value": "/epg/COVER/COVER_3108557.jpg"}], "seriesSeason": "", "episodeId": "", "referenceProgramId": "780596259", "prLevel": 1, "id": 14986009972, "description": "Noticias de los servicios informativos del Canal 24 Horas. Producido por Televisión Española, este canal está dedicado íntegramente a ofrecer información de actualidad y es el más antiguo de los canales de este tipo en España.", "seriesName": "", "genres": [{"externalId": "Programa", "name": "Programa", "id": 9169074970}, {"externalId": "Informativo", "name": "Informativo", "id": 862353792}], "name": "Noticias 24H", "flags": 14}]}, {"responseElementType": "ProgramList", "channelExternalId": "1062", "programs": [{"startDate": 1733004195000, "endDate": 1733010789000, "attachments": [{"name": "COVER", "value": "/epg/COVER/COVER_3421718.jpg"}], "seriesSeason": "", "episodeId": "", "referenceProgramId": "780625167", "prLevel": 7, "id": 14993123812, "description": "Una periodista de Teherán se sumerge en los barrios con peor reputación de Mashhad para investigar unos feminicidios llevados a cabo por un hombre, quien asegura purificar la ciudad de sus pecados.", "seriesName": "", "genres": [{"externalId": "Cine", "name": "Cine", "id": 128839623}, {"externalId": "Suspense", "name": "Suspense", "id": 862337524}], "name": "Araña sagrada", "flags": 14}, {"startDate": 1733010789000, "endDate": 1733015580000, "attachments": [{"name": "COVER", "value": "/epg/COVER/COVER_3425285.jpg"}], "seriesSeason": "", "episodeId": "", "referenceProgramId": "780631844", "prLevel": 1, "id": 14994852532, "description": "TikTok es una plataforma cada vez más potente, acusada como otras redes sociales de recopilar nuestros datos personales. Con una diferencia: es sospechosa de transmitirlos al régimen chino e influir en la opinión pública de todo el mundo.", "seriesName": "", "genres": [{"externalId": "Documental", "name": "Documental", "id": 30089199}, {"externalId": "Científico", "name": "Científico", "id": 9199024681}], "name": "Tik Tok, la sombra china", "flags": 14}, {"startDate": 1733015580000, "endDate": 1733019000000, "attachments": [{"name": "COVER", "value": "/epg/COVER/COVER_3425292.jpg"}], "seriesSeason": "", "episodeId": "", "referenceProgramId": "780631845", "prLevel": 5, "id": 14994853036, "description": "La tecnología de vanguardia 'hackea' las emociones provocando, a medio plazo, un vacío existencial. Individuos y empresas se lucran secuestrando las emociones y sentimientos de los usuarios.", "seriesName": "", "genres": [{"externalId": "Documental", "name": "Documental", "id": 30089199}, {"externalId": "Científico", "name": "Científico", "id": 9199024681}], "name": "Ya no siento nada", "flags": 14}, {Line truncated
|
||||
@@ -0,0 +1,61 @@
|
||||
const { parser, url } = require('./orangetv.es.config.js')
|
||||
const dayjs = require('dayjs')
|
||||
const utc = require('dayjs/plugin/utc')
|
||||
const customParseFormat = require('dayjs/plugin/customParseFormat')
|
||||
dayjs.extend(customParseFormat)
|
||||
dayjs.extend(utc)
|
||||
const path = require('path')
|
||||
const fs = require('fs')
|
||||
|
||||
const date = dayjs.utc('2024-12-01', 'YYYY-MM-DD').startOf('d')
|
||||
const channel = {
|
||||
site_id: '1010',
|
||||
xmltv_id: 'La1.es'
|
||||
}
|
||||
|
||||
it('can generate valid url', () => {
|
||||
expect(url({ date })).toBe(`https://epg.orangetv.orange.es/epg/Smartphone_Android/1_PRO/${date.format('YYYYMMDD')}_8h_1.json`)
|
||||
})
|
||||
|
||||
it('can parse response', () => {
|
||||
const content = fs.readFileSync(path.resolve(__dirname, '__data__/data.json')).toString()
|
||||
const results = parser({ content, channel, date }).map(p => {
|
||||
p.start = p.start.toJSON()
|
||||
p.stop = p.stop.toJSON()
|
||||
return p
|
||||
})
|
||||
|
||||
expect(results.length).toBe(21)
|
||||
|
||||
var sampleResult = results[0];
|
||||
|
||||
expect(sampleResult).toMatchObject([
|
||||
{
|
||||
start: '2022-03-11T05:00:00.000Z',
|
||||
stop: '2022-03-11T07:30:00.000Z',
|
||||
category: 'Información',
|
||||
title: 'Telediario Matinal'
|
||||
},
|
||||
{
|
||||
start: '2022-03-11T21:15:00.000Z',
|
||||
stop: '2022-03-11T23:30:00.000Z',
|
||||
category: 'Información',
|
||||
title: 'Las Claves del Siglo XXI: Episodio 8'
|
||||
},
|
||||
{
|
||||
start: '2022-03-12T02:10:00.000Z',
|
||||
stop: '2022-03-12T05:00:00.000Z',
|
||||
category: 'Información',
|
||||
title: 'Noticias 24H'
|
||||
}
|
||||
])
|
||||
})
|
||||
|
||||
it('can handle empty guide', () => {
|
||||
const result = parser({
|
||||
date,
|
||||
channel,
|
||||
content: '[]'
|
||||
})
|
||||
expect(result).toMatchObject([])
|
||||
})
|
||||
@@ -16,7 +16,7 @@ npm run channels:parse -- --config=./sites/orangetv.es/orangetv.es.config.js --o
|
||||
|
||||
### Test
|
||||
|
||||
No tests available yet
|
||||
npm test -- orangetv.es
|
||||
|
||||
### Todo
|
||||
|
||||
|
||||
Reference in new issue
Block a user