radiomanifest.js/test/example-full-spore.test.js
2023-09-14 00:07:13 +01:00

75 lines
2.2 KiB
JavaScript

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);
});
});
});