/**
|
* Testing connection to all components
|
*/
|
|
const expect = require("chai").expect
|
const settings = require("../settings")
|
|
/////////////////////////////////////////////////////////////////////////
|
|
describe("connection test", function () {
|
|
const urlS = settings.ilias.url
|
const urlD = new URL(urlS)
|
const url = urlD.origin
|
|
describe("the ILIAS URL", function () {
|
it("should be accessible", async function () {
|
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 () {
|
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)
|
|
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()
|
|
expect(res).to.be.a("object")
|
expect(res.method).to.equal("GET")
|
expect(res.command).to.equal("ping")
|
expect(res.status).to.equal("ok")
|
})
|
})
|
|
describe("the rest service", function () {
|
it("should be accessible through GET /version", async function () {
|
const urlR = `${settings.restUrl}/api/version`
|
const res = await fetch(urlR)
|
|
const data = await res.json()
|
expect(data).to.be.a("object")
|
expect(data).to.have.property("version")
|
expect(data.version).to.be.a("string")
|
})
|
it("should not be accessible without a TOKEN", async function () {
|
const urlR = `${settings.restUrl}/api/user?offset=0&limit=1`
|
const res = await fetch(urlR)
|
expect(res.status).to.equal(403)
|
})
|
it("should be accessible with a TOKEN", async function () {
|
const urlR = `${settings.restUrl}/api/user?offset=0&limit=1&token=${settings.authtoken}`
|
const res = await fetch(urlR)
|
expect(res.status).to.equal(200)
|
|
const data = await res.json()
|
expect(data).to.be.a("object")
|
expect(data.total).to.be.a("number").above(0)
|
expect(data.offset).to.equal(0)
|
expect(data.limit).to.equal(1)
|
|
const data2 = data.data
|
expect(data2).to.be.a("array").and.to.be.lengthOf(1)
|
|
const user = data2[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")
|
})
|
})
|
|
})
|
|
/////////////////////////////////////////////////////////////////////////
|