Ver código fonte

schedule support is tested

boyska 2 anos atrás
pai
commit
c139b1faef
1 arquivos alterados com 60 adições e 0 exclusões
  1. 60 0
      test/example-onlyics.test.js

+ 60 - 0
test/example-onlyics.test.js

@@ -0,0 +1,60 @@
+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 = 'onlyics'
+const expect = chai.expect
+const url = 'https://radiomanifest.degenerazione.xyz/v0.2/examples/' + exampleName + '/'
+
+describe('examples/' + exampleName, () => {
+  describe('schedule', () => {
+    it('should find one event', async () => {
+      const rm = await radiomanifest.get(url)
+      assert.equal(rm.getSchedule().getEvents().length, 1)
+    })
+    it('with a specific name', async () => {
+      const rm = await radiomanifest.get(url)
+      const ev = rm.getSchedule().getEvents()[0]
+      const summary = ev.getFirstProperty('summary').getFirstValue()
+      assert.equal(summary, 'JavaScript show')
+    })
+
+    it('happens every monday at 6AM', async () => {
+      const rm = await radiomanifest.get(url)
+      const rs = rm.getSchedule()
+      const now = new ICAL.Time({
+            year: 2022,
+            month: 1,
+            day: 3,
+            hour: 6,
+            minute: 30,
+            second: 0,
+            isDate: false
+        });
+      const show = rs.getNowShow(now)
+      assert.notEqual(show, null)
+      assert.equal(show.getName(), 'JavaScript show')
+    })
+
+    it('doesnt happen at any other time than 6AM', async () => {
+      const rm = await radiomanifest.get(url)
+      const rs = rm.getSchedule()
+      const now = new ICAL.Time({
+            year: 2022,
+            month: 1,
+            day: 3,
+            hour: 9,
+            minute: 0,
+            second: 0,
+            isDate: false
+        });
+      const ev = rs.getNowEvent(now)
+      assert.equal(ev, null)
+    })
+  })
+})
+
+