Browse Source

more tests and demos for schedule

boyska 2 years ago
parent
commit
8cde139866
3 changed files with 30 additions and 21 deletions
  1. 3 1
      radiomanifest.js
  2. 26 19
      test/example-full-ondarossa.test.js
  3. 1 1
      ui.js

+ 3 - 1
radiomanifest.js

@@ -46,7 +46,9 @@ class Radio {
     return this.schedule
   }
 
-  getShowAtTime () {
+  getShowAtTime (now) {
+    if (this.schedule === undefined || this.schedule === null) return null
+    return this.getSchedule().getNowShow(now)
   }
 
   static fromDOM (xml) {

+ 26 - 19
test/example-full-ondarossa.test.js

@@ -9,6 +9,10 @@ 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 () => {
@@ -17,9 +21,9 @@ describe('examples/' + exampleName, () => {
     })
     it('one of which is called "Entropia Massima"', async () => {
       const rm = await radiomanifest.get(url)
-      const show = rm.getShowByName("Entropia Massima")
-      assert.equal(show.getName(), "Entropia Massima")
-      assert.equal(show.getWebsite(), "http://www.ondarossa.info/trx/entropia-massima")
+      const show = rm.getShowByName(testShowName)
+      assert.equal(show.getName(), testShowName)
+      assert.equal(show.getWebsite(), testWebsite)
       assert.equal(show.getSchedule(), null)
     })
   })
@@ -30,41 +34,44 @@ describe('examples/' + exampleName, () => {
       assert.isAbove(rm.getSchedule().getEvents().length, 1)
     })
 
-    it('monday at 8PM, "Entropia Massima" is going on', async () => {
+    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: 20,
-            minute: 10,
+            hour: 1,
+            minute: 0,
             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(), 'Entropia Massima')
+        });
+      const ev = rs.getNowEvent(now)
+      assert.equal(ev, null)
     })
 
-    it('At 1AM, nothing is going on', async () => {
+    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: 1,
-            minute: 0,
+            hour: 20,
+            minute: 10,
             second: 0,
             isDate: false
-        });
-      const ev = rs.getNowEvent(now)
-      assert.equal(ev, null)
+        },
+      );
+      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)
     })
+
   })
 
 })

+ 1 - 1
ui.js

@@ -4,7 +4,7 @@ function updateNow(radio) {
   var box = document.querySelector('#now-info')
   const show = radio.getSchedule().getNowShow()
   try {
-  var text = show.getName()
+  var text = show.getName() + '\nfeed: ' + show.getWebsite()
   } catch (e) {
     var text = String(show)
   }