REST Service for POPCORN - ILIAS
alex
6 hours ago 6138ffe99d016cc311f250bc1555b5403b8b1216
test/testAbmelden.js
@@ -1,46 +1,48 @@
const expect = require("chai").expect
const _ = require("lodash")
const settings = require("../settings")
const libIlias = require("../lib/libIlias")
const db = require("../lib/db")
const testData = require("./data")
/////////////////////////////////////////////////////////////////////////
describe.skip("the function anmelden", function () {
// Integration test against a real ILIAS instance.
// Creates a temporary user, enrolls it via libIlias.anmelden() into an
// existing course, verifies that libIlias.abmelden() removes the
// membership, then cleans up.
describe("the function abmelden", function () {
   const kurs = testData.kurs // TODO
   const user = testData.user
   let kursId = null
   const courseId = testData.anmelden.obj_id
   let user = null
   let userId = null
   beforeEach(async function () {
      // const {usr_id:userId} = await libIlias.importIliasUser(user)
      const userRes  = await libIlias.importIliasUser(user)
      // const kursRes  = await libIlias.
      console.log(data)
      user = _.cloneDeep(testData.user)
      const res = await libIlias.importIliasUser(user)
      userId = res.usr_id
      // precondition: the user must be enrolled
      await libIlias.anmelden(userId, courseId)
   })
   afterEach(async function () {
      await libIlias.deleteUser(userId)
      // TODO delete kurs
      if (!userId) return
      // best effort cleanup (abmelden is idempotent)
      await libIlias.abmelden(userId, courseId).catch(console.error)
      await libIlias.deleteUser(userId).catch(console.error)
      userId = null
   })
   it("should import a new user to ILIAS", async function () {
      console.log("!111")
      console.error("finish test")
      return
      console.log("++abmelden", userId, kursId)
      const res = await libIlias.abmelden(userId, kursId)
      console.dir(res, {depth: null})
   it("should remove the Teilnahme of a user", async function () {
      const res = await libIlias.abmelden(userId, courseId)
      expect(res).to.have.property("status").and.to.equal("ok")
      expect(res.command).to.equal("abmelden")
      expect(res.method).to.equal("DELETE")
      expect(res).to.have.property("command").and.to.equal("abmelden")
      expect(res).to.have.property("method").and.to.equal("DELETE")
      const members = await db.getKursTeilnehmerByRole(courseId)
      expect(members.map(m => m.usr_id)).to.not.include(userId)
   })
})
/////////////////////////////////////////////////////////////////////////