const config = require('./pluto.tv.config.js') const fs = require('fs') const path = require('path') const dayjs = require('dayjs') const utc = require('dayjs/plugin/utc') const customParseFormat = require('dayjs/plugin/customParseFormat') dayjs.extend(customParseFormat) dayjs.extend(utc) const date = dayjs.utc('2024-12-28', 'YYYY-MM-DD').startOf('d') const channel = { site_id: '5ee92e72fb286e0007285fec', xmltv_id: 'Naruto' } it('can generate valid url', () => { const url = config.url({ date, channel }) expect(url).toBe( 'https://api.pluto.tv/v2/channels/5ee92e72fb286e0007285fec?start=2024-12-27T12:00:00.000Z&stop=2024-12-31T11:59:59.999Z' ) }) it('can parse response', () => { const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.json'), 'utf8') const results = config.parser({ content }).map(p => { p.start = dayjs(p.start).toJSON() p.stop = dayjs(p.stop).toJSON() return p }) expect(results[0]).toMatchObject({ start: '2024-12-28T00:21:00.000Z', stop: '2024-12-28T00:48:00.000Z', title: 'Naruto: El Tercer Hokage, Eternamente', description: 'Gaara y Naruto continĂșan combatiendo con todas sus fuerzas. Decidido a proteger a Sakura, Naruto ataca a Gaara una y otra vez.', subTitle: 'El Tercer Hokage, Eternamente', episode: 80, season: 2, actors: [ 'Isabel Martion (Naruto Uzumaki)', 'Christine Byrd (Sakura Haruno)', 'Victor Ugarte (Sasuke Uchiha)', 'Alfonso Obreg (Kakashi Hatake)' ], categories: ['Anime', 'Anime Action & Adventure'], rating: 'TV-14', date: '2004-04-21T00:00:00.000Z', icon: 'https://images.pluto.tv/series/5e73b850e40c9f001a0a9fb4/tile.jpg?fill=blur&fit=fill&fm=jpg&h=660&q=75&w=660' }) }) it('can handle empty guide', () => { const results = config.parser({ content: '[]' }) expect(results).toMatchObject([]) })