2024-12-02 15:41:50 +01:00
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 ` )
} )
2024-12-19 23:06:11 +01:00
it ( 'can parse response' , async ( ) => {
2024-12-02 15:41:50 +01:00
const content = fs . readFileSync ( path . resolve ( _ _dirname , '__data__/data.json' ) ) . toString ( )
2024-12-19 23:06:11 +01:00
let results = await parser ( { content , channel , date } )
results = results . map ( p => {
2024-12-02 15:41:50 +01:00
p . start = p . start . toJSON ( )
p . stop = p . stop . toJSON ( )
return p
} )
2024-12-19 23:06:11 +01:00
expect ( results . length ) . toBe ( 4 )
2024-12-02 15:41:50 +01:00
var sampleResult = results [ 0 ] ;
2024-12-19 23:06:11 +01:00
expect ( sampleResult ) . toMatchObject ( {
start : '2024-11-30T22:36:51.000Z' ,
stop : '2024-11-30T23:57:25.000Z' ,
category : [ 'Cine' , 'Romance' , 'Comedia' , 'Comedia Romántica' ] ,
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.' ,
title : 'Loco de amor'
} )
2024-12-02 15:41:50 +01:00
} )
it ( 'can handle empty guide' , ( ) => {
const result = parser ( {
date ,
channel ,
2024-12-19 23:06:11 +01:00
content : '{}'
2024-12-02 15:41:50 +01:00
} )
2024-12-19 23:06:11 +01:00
expect ( result ) . toMatchObject ( { } )
2024-12-02 15:41:50 +01:00
} )