UNPKG

@dasch-swiss/dsp-js

Version:

JavaScript library that handles API requests to Knora

138 lines 8.05 kB
import { MockAjaxCall } from "../../../../test/mockajaxcall"; import { KnoraApiConfig } from "../../../knora-api-config"; import { KnoraApiConnection } from "../../../knora-api-connection"; import { CreateGroupRequest } from "../../../models/admin/create-group-request"; import { StringLiteral } from "../../../models/admin/string-literal"; import { UpdateGroupRequest } from "../../../models/admin/update-group-request"; describe("GroupsEndpoint", function () { var config = new KnoraApiConfig("http", "localhost", 3333, undefined, undefined, true); var knoraApiConnection = new KnoraApiConnection(config); beforeEach(function () { jasmine.Ajax.install(); }); afterEach(function () { jasmine.Ajax.uninstall(); }); describe("Method getGroups", function () { it("should return all groups", function (done) { knoraApiConnection.admin.groupsEndpoint.getGroups().subscribe(function (response) { expect(response.body.groups.length).toEqual(2); expect(response.body.groups[0].id).toEqual("http://rdfh.ch/groups/00FF/images-reviewer"); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var groups = require("../../../../test/data/api/admin/groups/get-groups-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(groups))); expect(request.url).toBe("http://localhost:3333/admin/groups"); expect(request.method).toEqual("GET"); }); }); describe("Method createGroup", function () { it("should create a group", function (done) { var group = new CreateGroupRequest(); group.name = "NewGroup"; group.project = "http://rdfh.ch/projects/00FF"; group.status = true; group.selfjoin = false; var descriptions = new StringLiteral(); descriptions.language = "en"; descriptions.value = "NewGroupDescription"; group.descriptions = [descriptions]; knoraApiConnection.admin.groupsEndpoint.createGroup(group).subscribe(function (response) { expect(response.body.group.name).toEqual("Image reviewer"); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var groups = require("../../../../test/data/api/admin/groups/get-group-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(groups))); expect(request.url).toBe("http://localhost:3333/admin/groups"); expect(request.method).toEqual("POST"); var payload = require("../../../../test/data/api/admin/groups/create-group-request.json"); expect(request.data()).toEqual(payload); }); }); describe("Method getGroupByIri", function () { it("should get a group by its IRI", function (done) { var groupIri = "http://rdfh.ch/groups/00FF/images-reviewer"; knoraApiConnection.admin.groupsEndpoint.getGroupByIri(groupIri).subscribe(function (response) { expect(response.body.group.id).toEqual("http://rdfh.ch/groups/00FF/images-reviewer"); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var group = require("../../../../test/data/api/admin/groups/get-group-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(group))); expect(request.url).toBe("http://localhost:3333/admin/groups/http%3A%2F%2Frdfh.ch%2Fgroups%2F00FF%2Fimages-reviewer"); expect(request.method).toEqual("GET"); }); }); describe("Method updateGroup", function () { it("should update a group", function (done) { var groupIri = "http://rdfh.ch/groups/00FF/images-reviewer"; var groupInfo = new UpdateGroupRequest(); groupInfo.name = "UpdatedGroupName"; var descriptions = new StringLiteral(); descriptions.language = "en"; descriptions.value = "UpdatedGroupDescription"; groupInfo.descriptions = [descriptions]; knoraApiConnection.admin.groupsEndpoint.updateGroup(groupIri, groupInfo).subscribe(function (response) { expect(response.body.group.name).toEqual("Image reviewer"); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var group = require("../../../../test/data/api/admin/groups/get-group-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(group))); expect(request.url).toBe("http://localhost:3333/admin/groups/http%3A%2F%2Frdfh.ch%2Fgroups%2F00FF%2Fimages-reviewer"); expect(request.method).toEqual("PUT"); var payload = require("../../../../test/data/api/admin/groups/update-group-request.json"); expect(request.data()).toEqual(payload); }); }); describe("Method updateGroupStatus", function () { it("should update a group's status", function (done) { var groupIri = "http://rdfh.ch/groups/00FF/images-reviewer"; var groupStatus = true; // TODO: fix in Knora: payload knoraApiConnection.admin.groupsEndpoint.updateGroupStatus(groupIri, groupStatus).subscribe(function (response) { expect(response.body.group.name).toEqual("Image reviewer"); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var group = require("../../../../test/data/api/admin/groups/get-group-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(group))); expect(request.url).toBe("http://localhost:3333/admin/groups/http%3A%2F%2Frdfh.ch%2Fgroups%2F00FF%2Fimages-reviewer/status"); expect(request.method).toEqual("PUT"); var payload = require("../../../../test/data/api/admin/groups/change-group-status-request.json"); expect(request.data()).toEqual(payload); }); }); describe("Method deleteGroup", function () { it("should delete a group", function (done) { var groupIri = "http://rdfh.ch/groups/00FF/images-reviewer"; knoraApiConnection.admin.groupsEndpoint.deleteGroup(groupIri).subscribe(function (response) { expect(response.body.group.name).toEqual("Image reviewer"); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var group = require("../../../../test/data/api/admin/groups/get-group-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(group))); expect(request.url).toBe("http://localhost:3333/admin/groups/http%3A%2F%2Frdfh.ch%2Fgroups%2F00FF%2Fimages-reviewer"); expect(request.method).toEqual("DELETE"); }); }); describe("Method getGroupMembers", function () { it("should get a group's members", function (done) { var groupIri = "http://rdfh.ch/groups/00FF/images-reviewer"; knoraApiConnection.admin.groupsEndpoint.getGroupMembers(groupIri).subscribe(function (response) { expect(response.body.members.length).toEqual(2); expect(response.body.members[0].id).toEqual("http://rdfh.ch/users/images-reviewer-user"); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var members = require("../../../../test/data/api/admin/groups/get-group-members-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(members))); expect(request.url).toBe("http://localhost:3333/admin/groups/http%3A%2F%2Frdfh.ch%2Fgroups%2F00FF%2Fimages-reviewer/members"); expect(request.method).toEqual("GET"); }); }); }); //# sourceMappingURL=groups-endpoint.spec.js.map