| php/globus-ilias-rest/login.php | ●●●●● patch | view | raw | blame | history | |
| test/data.js | ●●●●● patch | view | raw | blame | history | |
| test/testAbmelden.js | ●●●●● patch | view | raw | blame | history | |
| test/testAnmelden.js | ●●●●● patch | view | raw | blame | history | |
| test/testCreateKurs.js | ●●●●● patch | view | raw | blame | history |
php/globus-ilias-rest/login.php
@@ -167,10 +167,11 @@ // ACHTUNG course_id muss obj_id sein! // die Rolle muss aus dem Kurs gelesen werden // ACHTUNG ilParticipants::readParticipants() ist protected (ILIAS 9) und wird // bereits im Konstruktor von getMembersObject() aufgerufen - nicht erneut aufrufen! function anmelden($usr_id, $course_id) { $course = ilObjectFactory::getInstanceByObjId($course_id); $membersObject = $course->getMembersObject(); $membersObject->readParticipants(); $role = $membersObject::IL_CRS_MEMBER; return $membersObject->add($usr_id, $role); } test/data.js
@@ -39,9 +39,16 @@ usr_id: 24038, } // real existing small course used by the anmelden/abmelden tests const anmelden = { ref_id: 595, obj_id: 36428, // anmelden()/abmelden() expect the course obj_id, not the ref_id } module.exports = { user, kurs, setStatus, anmelden, } 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) }) }) ///////////////////////////////////////////////////////////////////////// test/testAnmelden.js
@@ -1,41 +1,45 @@ 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 and verifies the membership, then cleans up. describe("the function anmelden", function () { const kurs = testData.kurs // TODO const user = testData.user let kursId = 31938 let userId = 31954 const courseId = testData.anmelden.obj_id let user = null let userId = null beforeEach(async function () { // TODO add kurs // const res = await libIlias.importIliasUser(user) // userId = res.usr_id user = _.cloneDeep(testData.user) const res = await libIlias.importIliasUser(user) userId = res.usr_id }) afterEach(async function () { // await libIlias.deleteUser(userId) // TODO delete kurs if (!userId) return // best effort cleanup 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("++anmelden", userId, kursId) const res = await libIlias.anmelden(userId, kursId) console.dir(res, {depth: null}) it("should enroll a user into a course", async function () { const res = await libIlias.anmelden(userId, courseId) expect(res).to.have.property("status").and.to.equal("ok") expect(res.command).to.equal("anmelden") expect(res.method).to.equal("POST") expect(res).to.have.property("command").and.to.equal("anmelden") expect(res).to.have.property("method").and.to.equal("POST") const members = await db.getKursTeilnehmerByRole(courseId) expect(members.map(m => m.usr_id)).to.include(userId) }) }) ///////////////////////////////////////////////////////////////////////// test/testCreateKurs.js
@@ -1,33 +1,25 @@ const expect = require("chai").expect const settings = require("../settings") const libIlias = require("../lib/libIlias") const db = require("../lib/db") const testData = require("./data") ///////////////////////////////////////////////////////////////////////// describe("the function anmelden", function () { // Skipped: the ILIAS PHP component does not implement course creation yet // (php/globus-ilias-rest/login.php -> createKurs() throws "not implemented"). // There is also no deleteKurs() for cleanup, so running this test would leave // a real course behind. Enable once both exist. describe("the function createKurs", function () { const kurs = testData.kurs // TODO let kursId = 31938 beforeEach(async function () { }) afterEach(async function () { }) const kurs = testData.kurs it.skip("should create a new Kurs in ILIAS", async function () { console.log("++createKurs", kurs) const res = await libIlias.createKurs(kurs) console.dir(res, {depth: null}) // expect(res).to.have.property("status").and.to.equal("ok") // expect(res.command).to.equal("anmelden") // expect(res.method).to.equal("POST") expect(res).to.have.property("status").and.to.equal("ok") expect(res.command).to.equal("createKurs") expect(res).to.have.property("ref_id").and.to.be.a("number").above(0) }) }) /////////////////////////////////////////////////////////////////////////