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

104 lines
3.1 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-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);
});
});
});