From 1f448ea194df3f84d813ba4ab6f052d25193e550 Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Thu, 10 Mar 2022 15:54:46 +0300 Subject: [PATCH] Create telecablesat.fr.test.js --- sites/telecablesat.fr/telecablesat.fr.test.js | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 sites/telecablesat.fr/telecablesat.fr.test.js diff --git a/sites/telecablesat.fr/telecablesat.fr.test.js b/sites/telecablesat.fr/telecablesat.fr.test.js new file mode 100644 index 00000000..b933005c --- /dev/null +++ b/sites/telecablesat.fr/telecablesat.fr.test.js @@ -0,0 +1,106 @@ +// npm run channels:parse -- --config=./sites/telecablesat.fr/telecablesat.fr.config.js --output=./sites/telecablesat.fr/telecablesat.fr_fr.channels.xml +// npx epg-grabber --config=sites/telecablesat.fr/telecablesat.fr.config.js --channels=sites/telecablesat.fr/telecablesat.fr_fr.channels.xml --output=guide.xml --days=2 + +const { parser, url } = require('./telecablesat.fr.config.js') +const axios = require('axios') +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('2022-03-11', 'YYYY-MM-DD').startOf('d') +const channel = { + site_id: '2', + xmltv_id: '13emeRue.us' +} + +jest.mock('axios') + +it('can generate valid url', () => { + expect(url({ channel, date })).toBe( + 'https://tv-programme.telecablesat.fr/chaine/2/index.html?date=2022-03-11' + ) +}) + +it('can parse response', done => { + const content = `
06:25

Des randonneurs font une macabre découverte en installant leur tente dans la nature : une jeune fille de Lusagne a en effet été sauvagement assassinée et son corps a été dissimulé sommairement dans les buissons. Rapidement, des lettres anonymes...

08:05

Alors que les fêtes de fin d'année battent leur plein, le commissaire Rousseau se voit confronté à une délicate affaire. En peu de temps, une troisième jeune fille vient d'être retrouvée assassinée. Le vieux limier ne croit pas à l'hypothèse...

` + + axios.get.mockImplementation(url => { + if ( + url === 'https://tv-programme.telecablesat.fr/chaine/2/index.html?date=2022-03-11&period=noon' + ) { + return Promise.resolve({ + data: '
12:35

Brett, Foster et Kidd font une virée dans l\'Indiana. Sur la route, ils sont les témoins d\'un accident. Un bus qui transporte une équipe de hockey percute une voiture en panne. Sans réseau téléphonique, ils ne peuvent prévenir leurs collègues. En...

' + }) + } else if ( + url === + 'https://tv-programme.telecablesat.fr/chaine/2/index.html?date=2022-03-11&period=afternoon' + ) { + return Promise.resolve({ + data: '
01:45

Lors d\'une urgence, la vie du lieutenant Casey est soudainement mise en danger : un homme le menace avec une arme. Grissom prévient la caserne qu\'ils devront se préparer à une évaluation de leur performance. Otis apprend qu\'il a remporté un prix...

' + }) + } else { + return Promise.resolve({ data: '' }) + } + }) + + parser({ content, date, channel }) + .then(result => { + result.map(p => { + p.start = p.start.toJSON() + p.stop = p.stop.toJSON() + return p + }) + + expect(result).toMatchObject([ + { + start: '2022-03-11T05:25:00.000Z', + stop: '2022-03-11T07:05:00.000Z', + title: 'Alex Hugo', + description: + 'Des randonneurs font une macabre découverte en installant leur tente dans la nature : une jeune fille de Lusagne a en effet été sauvagement assassinée et son corps a été dissimulé sommairement dans les buissons. Rapidement, des lettres anonymes...', + icon: 'https://tv.cdnartwhere.eu/cache/i2/Dc5BDsIgEADAv3C2pQvC0r6FCyxLq6aUFEyMxr_rvGA-IobGYhFb77UtXnq516FuRz_aQKmM4f08mdPKY-HuJR2lh1vh02RHABRSnukK0-wYMwBERBei1rOXUwBjOc2oCSgbIqUQ0KrILqNh5VwEl9iO97qKi9hDe_wf1uJLOyO-Pw.jpg' + }, + { + start: '2022-03-11T07:05:00.000Z', + stop: '2022-03-11T11:35:00.000Z', + title: 'Les saisons meurtrières : hiver rouge', + description: + "Alors que les fêtes de fin d'année battent leur plein, le commissaire Rousseau se voit confronté à une délicate affaire. En peu de temps, une troisième jeune fille vient d'être retrouvée assassinée. Le vieux limier ne croit pas à l'hypothèse...", + icon: 'https://tv.cdnartwhere.eu/cache/i2/Dc5BDoMgEEDRu7Cu4AgIeBY2DAzaNiIRmjRteve6_Mlb_C_D0IgtbOu9tsULL_Y61O3oRxtiKjx8XidRWokX6l7Eo_RwL3TqbCNADCm7qGB0lkwGADTGBpTSeXEBbeyk1EguAybptJbyapyQAmogG9VMwB91ZTe2h_a8PubZvKXV7PcH.jpg' + }, + { + start: '2022-03-11T11:35:00.000Z', + stop: '2022-03-12T00:45:00.000Z', + title: 'Chicago Fire', + description: + "Brett, Foster et Kidd font une virée dans l'Indiana. Sur la route, ils sont les témoins d'un accident. Un bus qui transporte une équipe de hockey percute une voiture en panne. Sans réseau téléphonique, ils ne peuvent prévenir leurs collègues. En...", + icon: 'https://tv.cdnartwhere.eu/cache/i2/Dc5BDsIgEADAv3DWwpayQN_CZaFLq6aUFEyMxr_rvGA-IlJjMYut99rmIIPc67VuRz_aNS1loPfzZF5WHgr3INNROt0Knya7BJBoyT5NoLxjmwEgWusoau2DtCqBc1OOiCZNI2vvVLSAigzl0WSvAVFHPdzrKi5ip_b4PxDtSzsjvj8.jpg' + }, + { + start: '2022-03-12T00:45:00.000Z', + stop: '2022-03-12T01:45:00.000Z', + title: 'Chicago Fire', + description: + "Lors d'une urgence, la vie du lieutenant Casey est soudainement mise en danger : un homme le menace avec une arme. Grissom prévient la caserne qu'ils devront se préparer à une évaluation de leur performance. Otis apprend qu'il a remporté un prix...", + icon: 'https://tv.cdnartwhere.eu/cache/i2/Dc5BDsIgEADAv3C2hZVSoG_hsixLq6aUFEyMxr_rvGA-ImJjsYit99qWIIPc61C3ox9toFRGfD9P5rTyWLgHSUfpeCt8muwIgDBlTxMo79hmAIjWOoxa-yCT9loxMqIBjhMb7eFqk8qTy6CJZ01GUTTjva7iInZsj_9jnu1LOyO-Pw.jpg' + } + ]) + done() + }) + .catch(done) +}) + +it('can handle empty guide', done => { + parser({ + content: ` `, + date, + channel + }) + .then(result => { + expect(result).toMatchObject([]) + done() + }) + .catch(done) +})