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-spore"; const expect = chai.expect; const url = "https://radiomanifest.degenerazione.xyz/v0.2/examples/" + exampleName + "/"; const testShowName = "scaricomerci"; const testNextShowName = "nastrone notte"; describe("examples/" + exampleName, () => { describe("schedule.getNow", () => { it("observes priority correctly", async () => { // tuesday, half past midnight const rm = await radiomanifest.get(url); const rs = rm.getSchedule(); const now = new ICAL.Time( { year: 2022, month: 1, day: 30, hour: 2, minute: 20, second: 0, isDate: false, }, ICAL.Timezone.utcTimezone, ); const vevent = rs.getNowEvent(now); assert.notEqual(vevent, null); const show = rs.getNowShow(now); assert.notEqual(show, null); assert.equal(show.getName(), testShowName); }); }); describe("schedule.getNext", () => { it("getNext observes priority correctly", async () => { // tuesday, half past midnight const rm = await radiomanifest.get(url); const rs = rm.getSchedule(); const now = new ICAL.Time({ year: 2022, month: 2, day: 2, hour: 2, minute: 20, 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); const next_event = rs.getNextEvent(now); assert.notEqual(next_event, null); assert.isObject(next_event.event); assert.isObject(next_event.time); const next_show = rs.getNextShow(now); assert.isObject(next_show); assert.isObject(next_show.show); assert.equal(next_show.show.getName(), testNextShowName); const time = next_event.time.toJSDate(); assert.equal(time.getHours(), 2); assert.equal(time.getMinutes(), 58); }); }); });