const ICAL = require("ical.js"); const radiomanifest = require("../radiomanifest.js"); const chai = require("chai"); chai.use(require("chai-as-promised")); const assert = chai.assert; const exampleName = "full-ondarossa"; const expect = chai.expect; const url = "https://radiomanifest.degenerazione.xyz/v0.2/examples/" + exampleName + "/"; const testShowName = "Entropia Massima"; const testWebsite = "http://www.ondarossa.info/trx/entropia-massima"; const testFeed = "http://www.ondarossa.info/podcast/by-trx-id/10497/podcast.xml"; describe("examples/" + exampleName, () => { describe("shows", () => { it("shoud find many shows", async () => { const rm = await radiomanifest.get(url); assert.isAbove(rm.getShows().length, 1); }); it('one of which is called "Entropia Massima"', async () => { const rm = await radiomanifest.get(url); const show = rm.getShowByName(testShowName); assert.equal(show.getName(), testShowName); assert.equal(show.getWebsite(), testWebsite); assert.equal(show.getSchedule(), null); }); }); describe("schedule", () => { it("should find many event", async () => { const rm = await radiomanifest.get(url); assert.isAbove(rm.getSchedule().getEvents().length, 1); }); it("At 1AM, nothing is going on", async () => { const rm = await radiomanifest.get(url); const rs = rm.getSchedule(); const now = new ICAL.Time({ year: 2022, month: 1, day: 31, hour: 1, minute: 0, second: 0, isDate: false, }); const ev = rs.getNowEvent(now); assert.equal(ev, null); }); it('monday at 8PM, "Entropia Massima" is going on', async () => { const rm = await radiomanifest.get(url); const rs = rm.getSchedule(); const now = new ICAL.Time({ year: 2022, month: 1, day: 31, hour: 20, minute: 10, second: 0, isDate: false, }); const vevent = rs.getNowEvent(now); assert.notEqual(vevent, null); const show = rs.getNowShow(now); assert.notEqual(show, null); assert.equal(show.getName(), testShowName); assert.equal(show.getFeed(), testFeed); }); it('monday at 7PM, "Entropia Massima" is next', async () => { const rm = await radiomanifest.get(url); const rs = rm.getSchedule(); const now = new ICAL.Time({ year: 2022, month: 1, day: 31, hour: 19, minute: 10, second: 0, isDate: false, }); const vevent = rs.getNowEvent(now); assert.notEqual(vevent, null); const show = rs.getNowShow(now); assert.notEqual(show, null); assert.equal(show.getName(), "Baraonda"); const next_event = rs.getNextEvent(now); assert.notEqual(next_event, null); assert.notEqual(next_event.event, null); const next_show = rs.getNextShow(now); assert.notEqual(next_show, null); assert.notEqual(next_show.show, null); assert.equal(next_show.show.getName(), testShowName); assert.equal(next_show.show.getFeed(), testFeed); }); }); });