From 1da991cb79e1ca404fddc2934146f0e1b55b86dc Mon Sep 17 00:00:00 2001 From: fraudiay79 <60631277+fraudiay79@users.noreply.github.com> Date: Thu, 26 Dec 2024 15:42:12 -0500 Subject: [PATCH] Create chada.ma.test.js --- sites/chada.ma/chada.ma.test.js | 60 +++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 sites/chada.ma/chada.ma.test.js diff --git a/sites/chada.ma/chada.ma.test.js b/sites/chada.ma/chada.ma.test.js new file mode 100644 index 00000000..557da6ea --- /dev/null +++ b/sites/chada.ma/chada.ma.test.js @@ -0,0 +1,60 @@ +const { parser, url } = require('./chada.ma.config.js') +const axios = require('axios') +const dayjs = require('dayjs') +const cheerio = require('cheerio') +const utc = require('dayjs/plugin/utc') +const timezone = require('dayjs/plugin/timezone') +const customParseFormat = require('dayjs/plugin/customParseFormat') + +dayjs.extend(utc) +dayjs.extend(timezone) +dayjs.extend(customParseFormat) + +jest.mock('axios') + +const mockHtmlContent = ` +
+

Programmes d'Aujourd'hui

+
+

00:00 - 09:00

+
+ + + +
+

Bloc Prime + Clips

+
+
+
+
+`; + +it('can generate valid url', () => { + expect(url()).toBe('https://chada.ma/fr/chada-tv/grille-tv/') +}); + +it('can parse response', () => { + const content = mockHtmlContent + + const result = parser({ content }).map(p => { + p.start = dayjs(p.start).tz('Africa/Casablanca').format('YYYY-MM-DDTHH:mm:ssZ') + p.stop = dayjs(p.stop).tz('Africa/Casablanca').format('YYYY-MM-DDTHH:mm:ssZ') + return p + }) + + expect(result).toMatchObject([ + { + title: "Bloc Prime + Clips", + description: "No description available", + start: dayjs.tz('00:00', 'HH:mm', 'Africa/Casablanca').format('YYYY-MM-DDTHH:mm:ssZ'), + stop: dayjs.tz('09:00', 'HH:mm', 'Africa/Casablanca').format('YYYY-MM-DDTHH:mm:ssZ') + } + ]) +}) + +it('can handle empty guide', () => { + const result = parser({ + content: '
' + }) + expect(result).toMatchObject([]) +})