REST Service for POPCORN - ILIAS
alex
2025-11-17 77047bab4318200380b4e33e83b259a78f8ff6a6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
/**
 * Testing connection to all components
 */
 
const expect = require("chai").expect
 
const settings = require("../settings")
const libIlias = require("../lib/libIlias")
const db = require("../lib/db");
 
/////////////////////////////////////////////////////////////////////////
 
describe("connection test", function () {
 
 
   beforeEach(async function () {
   })
 
   afterEach(async function () {
   })
 
   describe("the ILIAS URL", function () {
      it("should be accessible", async function () {
         const urlS = settings.ilias.url
         const urlD = new URL(urlS)
         const url = urlD.origin
 
         const res = await fetch(url)
         expect(res.status).to.equal(200)
         expect(res.statusText.toUpperCase()).to.equal("OK")
         const text = await res.text()
         expect(text).to.contain("html")
         expect(text).to.contain("ILIAS")
      })
      it("should use https", async function () {
         const urlS = settings.ilias.url
         const urlD = new URL(urlS)
         expect(urlD.protocol).to.equal("https:")
      })
   })
 
   describe("the Database", function () {
      it("should be accessible", async function () {
         const db = require("../lib/db")
         const res = await db.getUsers(0, 1)
         // console.log(res)
 
         expect(res).to.be.a("object")
         expect(res.total).to.be.a("number").above(0)
         expect(res.offset).to.equal(0)
         expect(res.limit).to.equal(1)
 
         const data = res.data
         expect(data).to.be.a("array").and.to.be.lengthOf(1)
 
         const user = data[0]
         expect(user.usr_id).to.be.a("number").above(0)
         expect(user).to.have.property("login")
         expect(user).to.have.property("firstname")
         expect(user).to.have.property("lastname")
      })
   })
 
   describe("the PHP component", function () {
      it("should respond to a ping request", async function () {
         const libIlias = require("../lib/libIlias")
         const res = await libIlias.ping()
         // console.log(res)
 
         expect(res).to.be.a("object")
         expect(res.method).to.equal("GET")
         expect(res.command).to.equal("ping")
         expect(res.status).to.equal("ok")
      })
   })
 
 
})
 
/////////////////////////////////////////////////////////////////////////