forked from boyska/radiomanifest.js
107 lines
3.2 KiB
JavaScript
107 lines
3.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-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)
|
|
})
|
|
|
|
})
|
|
|
|
})
|
|
|