75 lines
2.2 KiB
JavaScript
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);
|
|
});
|
|
});
|
|
});
|