diff --git a/sites/mncvision.id/mncvision.id.config.js b/sites/mncvision.id/mncvision.id.config.js index 5b5cd4ee..e0c1548c 100644 --- a/sites/mncvision.id/mncvision.id.config.js +++ b/sites/mncvision.id/mncvision.id.config.js @@ -43,7 +43,12 @@ module.exports = { const stop = start.add(duration, 'm') const description = await loadDescription(item) - programs.push({ title, description, start: start.toJSON(), stop: stop.toJSON() }) + programs.push({ + title, + description, + start: start.toJSON(), + stop: stop.toJSON() + }) } return programs @@ -80,8 +85,10 @@ async function loadDescription(item) { .catch(console.log) if (!data) return null const $page = cheerio.load(data) + const description = $page('.synopsis').text().trim() + if (description === '-') return null - return $page('.synopsis').text().trim() + return description } function parseDuration(item) { diff --git a/sites/mncvision.id/mncvision.id.test.js b/sites/mncvision.id/mncvision.id.test.js index c3478a8a..08218a4d 100644 --- a/sites/mncvision.id/mncvision.id.test.js +++ b/sites/mncvision.id/mncvision.id.test.js @@ -64,6 +64,30 @@ it('can parse response', done => { }) }) +it('can parse response with empty description', done => { + axios.get.mockImplementation(() => + Promise.resolve({ + data: `
-
` + }) + ) + + parser({ date, channel, content }) + .then(result => { + expect(result).toMatchObject([ + { + start: '2021-11-11T17:00:00.000Z', + stop: '2021-11-11T18:00:00.000Z', + title: 'African Wild S1: Seals', + description: null + } + ]) + done() + }) + .catch(error => { + done(error) + }) +}) + it('can handle empty guide', done => { parser({ date,