UNPKG

@dasch-swiss/dsp-js

Version:

JavaScript library that handles API requests to Knora

430 lines 27.8 kB
import { MockAjaxCall } from "../../../../test/mockajaxcall"; import { KnoraApiConfig } from "../../../knora-api-config"; import { KnoraApiConnection } from "../../../knora-api-connection"; import { Project } from "../../../models/admin/project"; import { StringLiteral } from "../../../models/admin/string-literal"; import { UpdateProjectRequest } from "../../../models/admin/update-project-request"; describe("ProjectsEndpoint", 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 getProjects", function () { it("should return all projects", function (done) { knoraApiConnection.admin.projectsEndpoint.getProjects().subscribe(function (response) { expect(response.body.projects.length).toEqual(6); expect(response.body.projects[0].id).toEqual("http://rdfh.ch/projects/0803"); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var projects = require("../../../../test/data/api/admin/projects/get-projects-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(projects))); expect(request.url).toBe("http://localhost:3333/admin/projects"); expect(request.method).toEqual("GET"); }); }); describe("Method createProject", function () { it("should create a project", function (done) { var project = new Project(); project.shortname = "newproject"; project.shortcode = "1111"; project.longname = "project longname"; var description = new StringLiteral(); description.language = "en"; description.value = "project description"; project.description = [description]; project.keywords = ["keywords"]; project.logo = "/fu/bar/baz.jpg"; project.status = true; project.selfjoin = false; knoraApiConnection.admin.projectsEndpoint.createProject(project).subscribe(function (response) { expect(response.body.project.id).toEqual("http://rdfh.ch/projects/00FF"); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var user = require("../../../../test/data/api/admin/projects/get-project-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(user))); expect(request.url).toBe("http://localhost:3333/admin/projects"); expect(request.method).toEqual("POST"); expect(request.requestHeaders).toEqual({ "content-type": "application/json; charset=utf-8", "x-requested-with": "XMLHttpRequest" }); var payload = require("../../../../test/data/api/admin/projects/create-project-request.json"); expect(request.data()).toEqual(payload); }); }); describe("Method getKeywords", function () { it("should return the keywords", function (done) { knoraApiConnection.admin.projectsEndpoint.getKeywords().subscribe(function (response) { expect(response.body.keywords.length).toEqual(21); expect(response.body.keywords[0]).toEqual("Basel"); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var projects = require("../../../../test/data/api/admin/projects/get-keywords-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(projects))); expect(request.url).toBe("http://localhost:3333/admin/projects/Keywords"); expect(request.method).toEqual("GET"); }); }); describe("Method getProjectKeywords", function () { it("should return a project's keywords", function (done) { knoraApiConnection.admin.projectsEndpoint.getProjectKeywords("http://rdfh.ch/projects/00FF").subscribe(function (response) { expect(response.body.keywords.length).toEqual(14); expect(response.body.keywords[0]).toEqual("Basel"); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var projects = require("../../../../test/data/api/admin/projects/get-project-keywords-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(projects))); expect(request.url).toBe("http://localhost:3333/admin/projects/iri/http%3A%2F%2Frdfh.ch%2Fprojects%2F00FF/Keywords"); expect(request.method).toEqual("GET"); }); }); describe("Method updateProject", function () { it("should update a project", function (done) { var projectIri = "http://rdfh.ch/projects/00FF"; var projectInfo = new UpdateProjectRequest(); projectInfo.shortname = "updatedproject"; projectInfo.longname = "updated project longname"; var description = new StringLiteral(); description.language = "en"; description.value = "updated project description"; projectInfo.description = [description]; projectInfo.keywords = ["updated", "keywords"]; projectInfo.logo = "/fu/bar/baz-updated.jpg"; projectInfo.status = true; projectInfo.selfjoin = true; knoraApiConnection.admin.projectsEndpoint.updateProject(projectIri, projectInfo).subscribe(function (response) { expect(response.body.project.id).toEqual("http://rdfh.ch/projects/00FF"); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var user = require("../../../../test/data/api/admin/projects/get-project-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(user))); expect(request.url).toBe("http://localhost:3333/admin/projects/iri/http%3A%2F%2Frdfh.ch%2Fprojects%2F00FF"); expect(request.method).toEqual("PUT"); expect(request.requestHeaders).toEqual({ "content-type": "application/json; charset=utf-8", "x-requested-with": "XMLHttpRequest" }); var payload = require("../../../../test/data/api/admin/projects/update-project-request.json"); expect(request.data()).toEqual(payload); }); }); describe("Method deleteProject", function () { it("should delete a project", function (done) { knoraApiConnection.admin.projectsEndpoint.deleteProject("http://rdfh.ch/projects/00FF").subscribe(function (response) { expect(response.body.project.id).toEqual("http://rdfh.ch/projects/00FF"); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var project = require("../../../../test/data/api/admin/projects/get-project-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(project))); expect(request.url).toBe("http://localhost:3333/admin/projects/iri/http%3A%2F%2Frdfh.ch%2Fprojects%2F00FF"); expect(request.method).toEqual("DELETE"); }); }); describe("Method getProject", function () { it("should return a project by its IRI", function (done) { knoraApiConnection.admin.projectsEndpoint.getProject("iri", "http://rdfh.ch/projects/00FF").subscribe(function (response) { expect(response.body.project.id).toEqual("http://rdfh.ch/projects/00FF"); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var projects = require("../../../../test/data/api/admin/projects/get-project-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(projects))); expect(request.url).toBe("http://localhost:3333/admin/projects/iri/http%3A%2F%2Frdfh.ch%2Fprojects%2F00FF"); expect(request.method).toEqual("GET"); }); it("should return a project by its shortname", function (done) { knoraApiConnection.admin.projectsEndpoint.getProject("shortname", "images").subscribe(function (response) { expect(response.body.project.id).toEqual("http://rdfh.ch/projects/00FF"); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var projects = require("../../../../test/data/api/admin/projects/get-project-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(projects))); expect(request.url).toBe("http://localhost:3333/admin/projects/shortname/images"); expect(request.method).toEqual("GET"); }); it("should return a project by its shortcode", function (done) { knoraApiConnection.admin.projectsEndpoint.getProject("shortcode", "00FF").subscribe(function (response) { expect(response.body.project.id).toEqual("http://rdfh.ch/projects/00FF"); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var projects = require("../../../../test/data/api/admin/projects/get-project-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(projects))); expect(request.url).toBe("http://localhost:3333/admin/projects/shortcode/00FF"); expect(request.method).toEqual("GET"); }); }); describe("Method getProjectByIri", function () { it("should return a project by its IRI", function (done) { knoraApiConnection.admin.projectsEndpoint.getProjectByIri("http://rdfh.ch/projects/00FF").subscribe(function (response) { expect(response.body.project.id).toEqual("http://rdfh.ch/projects/00FF"); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var projects = require("../../../../test/data/api/admin/projects/get-project-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(projects))); expect(request.url).toBe("http://localhost:3333/admin/projects/iri/http%3A%2F%2Frdfh.ch%2Fprojects%2F00FF"); expect(request.method).toEqual("GET"); }); }); describe("Method getProjectByShortname", function () { it("should return a project by its shortname", function (done) { knoraApiConnection.admin.projectsEndpoint.getProjectByShortname("images").subscribe(function (response) { expect(response.body.project.id).toEqual("http://rdfh.ch/projects/00FF"); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var projects = require("../../../../test/data/api/admin/projects/get-project-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(projects))); expect(request.url).toBe("http://localhost:3333/admin/projects/shortname/images"); expect(request.method).toEqual("GET"); }); }); describe("Method getProjectByShortcode", function () { it("should return a project by its shortcode", function (done) { knoraApiConnection.admin.projectsEndpoint.getProjectByShortcode("00FF").subscribe(function (response) { expect(response.body.project.id).toEqual("http://rdfh.ch/projects/00FF"); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var projects = require("../../../../test/data/api/admin/projects/get-project-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(projects))); expect(request.url).toBe("http://localhost:3333/admin/projects/shortcode/00FF"); expect(request.method).toEqual("GET"); }); }); describe("Method getProjectMembers", function () { it("should return members of a project identified by its iri", function (done) { knoraApiConnection.admin.projectsEndpoint.getProjectMembers("iri", "http://rdfh.ch/projects/00FF").subscribe(function (response) { expect(response.body.members.length).toEqual(4); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var projects = require("../../../../test/data/api/admin/projects/get-project-members-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(projects))); expect(request.url).toBe("http://localhost:3333/admin/projects/iri/http%3A%2F%2Frdfh.ch%2Fprojects%2F00FF/members"); expect(request.method).toEqual("GET"); }); it("should return members of a project identified by its shortname", function (done) { knoraApiConnection.admin.projectsEndpoint.getProjectMembers("shortname", "images").subscribe(function (response) { expect(response.body.members.length).toEqual(4); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var projects = require("../../../../test/data/api/admin/projects/get-project-members-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(projects))); expect(request.url).toBe("http://localhost:3333/admin/projects/shortname/images/members"); expect(request.method).toEqual("GET"); }); it("should return members of a project identified by its shortcode", function (done) { knoraApiConnection.admin.projectsEndpoint.getProjectMembers("shortcode", "00FF").subscribe(function (response) { expect(response.body.members.length).toEqual(4); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var projects = require("../../../../test/data/api/admin/projects/get-project-members-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(projects))); expect(request.url).toBe("http://localhost:3333/admin/projects/shortcode/00FF/members"); expect(request.method).toEqual("GET"); }); }); describe("Method getProjectMembersByIri", function () { it("should return members of a project identified by its iri", function (done) { knoraApiConnection.admin.projectsEndpoint.getProjectMembersByIri("http://rdfh.ch/projects/00FF").subscribe(function (response) { expect(response.body.members.length).toEqual(4); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var projects = require("../../../../test/data/api/admin/projects/get-project-members-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(projects))); expect(request.url).toBe("http://localhost:3333/admin/projects/iri/http%3A%2F%2Frdfh.ch%2Fprojects%2F00FF/members"); expect(request.method).toEqual("GET"); }); }); describe("Method getProjectMembersByShortname", function () { it("should return members of a project identified by its iri", function (done) { knoraApiConnection.admin.projectsEndpoint.getProjectMembersByShortname("images").subscribe(function (response) { expect(response.body.members.length).toEqual(4); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var projects = require("../../../../test/data/api/admin/projects/get-project-members-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(projects))); expect(request.url).toBe("http://localhost:3333/admin/projects/shortname/images/members"); expect(request.method).toEqual("GET"); }); }); describe("Method getProjectMembersByShortcode", function () { it("should return members of a project identified by its iri", function (done) { knoraApiConnection.admin.projectsEndpoint.getProjectMembersByShortcode("00FF").subscribe(function (response) { expect(response.body.members.length).toEqual(4); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var projects = require("../../../../test/data/api/admin/projects/get-project-members-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(projects))); expect(request.url).toBe("http://localhost:3333/admin/projects/shortcode/00FF/members"); expect(request.method).toEqual("GET"); }); }); describe("Method getProjectAdminMembers", function () { it("should return admin members of a project identified by its iri", function (done) { knoraApiConnection.admin.projectsEndpoint.getProjectAdminMembers("iri", "http://rdfh.ch/projects/00FF").subscribe(function (response) { expect(response.body.members.length).toEqual(2); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var projects = require("../../../../test/data/api/admin/projects/get-project-admin-members-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(projects))); expect(request.url).toBe("http://localhost:3333/admin/projects/iri/http%3A%2F%2Frdfh.ch%2Fprojects%2F00FF/admin-members"); expect(request.method).toEqual("GET"); }); it("should return admin members of a project identified by its shortname", function (done) { knoraApiConnection.admin.projectsEndpoint.getProjectAdminMembers("shortname", "images").subscribe(function (response) { expect(response.body.members.length).toEqual(2); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var projects = require("../../../../test/data/api/admin/projects/get-project-admin-members-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(projects))); expect(request.url).toBe("http://localhost:3333/admin/projects/shortname/images/admin-members"); expect(request.method).toEqual("GET"); }); it("should return admin members of a project identified by its shortcode", function (done) { knoraApiConnection.admin.projectsEndpoint.getProjectAdminMembers("shortcode", "00FF").subscribe(function (response) { expect(response.body.members.length).toEqual(2); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var projects = require("../../../../test/data/api/admin/projects/get-project-admin-members-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(projects))); expect(request.url).toBe("http://localhost:3333/admin/projects/shortcode/00FF/admin-members"); expect(request.method).toEqual("GET"); }); }); describe("Method getProjectMembersByIri", function () { it("should return members of a project identified by its iri", function (done) { knoraApiConnection.admin.projectsEndpoint.getProjectAdminMembersByIri("http://rdfh.ch/projects/00FF").subscribe(function (response) { expect(response.body.members.length).toEqual(2); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var projects = require("../../../../test/data/api/admin/projects/get-project-admin-members-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(projects))); expect(request.url).toBe("http://localhost:3333/admin/projects/iri/http%3A%2F%2Frdfh.ch%2Fprojects%2F00FF/admin-members"); expect(request.method).toEqual("GET"); }); }); describe("Method getProjectAdminMembersByShortname", function () { it("should return members of a project identified by its iri", function (done) { knoraApiConnection.admin.projectsEndpoint.getProjectAdminMembersByShortname("images").subscribe(function (response) { expect(response.body.members.length).toEqual(2); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var projects = require("../../../../test/data/api/admin/projects/get-project-admin-members-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(projects))); expect(request.url).toBe("http://localhost:3333/admin/projects/shortname/images/admin-members"); expect(request.method).toEqual("GET"); }); }); describe("Method getProjectAdminMembersByShortcode", function () { it("should return members of a project identified by its iri", function (done) { knoraApiConnection.admin.projectsEndpoint.getProjectAdminMembersByShortcode("00FF").subscribe(function (response) { expect(response.body.members.length).toEqual(2); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var projects = require("../../../../test/data/api/admin/projects/get-project-admin-members-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(projects))); expect(request.url).toBe("http://localhost:3333/admin/projects/shortcode/00FF/admin-members"); expect(request.method).toEqual("GET"); }); }); describe("Method getProjectRestrictedViewSettings", function () { it("should return restricted view settings of a project identified by its iri", function (done) { knoraApiConnection.admin.projectsEndpoint.getProjectRestrictedViewSettings("iri", "http://rdfh.ch/projects/00FF").subscribe(function (response) { expect(response.body.settings.size).toEqual("!512,512"); expect(response.body.settings.watermark).toEqual(false); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var projects = require("../../../../test/data/api/admin/projects/get-project-restricted-view-settings-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(projects))); expect(request.url).toBe("http://localhost:3333/admin/projects/iri/http%3A%2F%2Frdfh.ch%2Fprojects%2F00FF/RestrictedViewSettings"); expect(request.method).toEqual("GET"); }); it("should return restricted view settings of a project identified by its shortname", function (done) { knoraApiConnection.admin.projectsEndpoint.getProjectRestrictedViewSettings("shortname", "images").subscribe(function (response) { expect(response.body.settings.size).toEqual("!512,512"); expect(response.body.settings.watermark).toEqual(false); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var projects = require("../../../../test/data/api/admin/projects/get-project-restricted-view-settings-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(projects))); expect(request.url).toBe("http://localhost:3333/admin/projects/shortname/images/RestrictedViewSettings"); expect(request.method).toEqual("GET"); }); it("should return restricted view settings of a project identified by its shortcode", function (done) { knoraApiConnection.admin.projectsEndpoint.getProjectRestrictedViewSettings("shortcode", "00FF").subscribe(function (response) { expect(response.body.settings.size).toEqual("!512,512"); expect(response.body.settings.watermark).toEqual(false); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var projects = require("../../../../test/data/api/admin/projects/get-project-restricted-view-settings-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(projects))); expect(request.url).toBe("http://localhost:3333/admin/projects/shortcode/00FF/RestrictedViewSettings"); expect(request.method).toEqual("GET"); }); }); describe("Method getProjectRestrictedViewSettingByIri", function () { it("should return restricted view settings of a project identified by its iri", function (done) { knoraApiConnection.admin.projectsEndpoint.getProjectRestrictedViewSettingByIri("http://rdfh.ch/projects/00FF").subscribe(function (response) { expect(response.body.settings.size).toEqual("!512,512"); expect(response.body.settings.watermark).toEqual(false); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var projects = require("../../../../test/data/api/admin/projects/get-project-restricted-view-settings-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(projects))); expect(request.url).toBe("http://localhost:3333/admin/projects/iri/http%3A%2F%2Frdfh.ch%2Fprojects%2F00FF/RestrictedViewSettings"); expect(request.method).toEqual("GET"); }); }); describe("Method getProjectRestrictedViewSettingByShortname", function () { it("should return restricted view settings of a project identified by its shortname", function (done) { knoraApiConnection.admin.projectsEndpoint.getProjectRestrictedViewSettingByShortname("images").subscribe(function (response) { expect(response.body.settings.size).toEqual("!512,512"); expect(response.body.settings.watermark).toEqual(false); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var projects = require("../../../../test/data/api/admin/projects/get-project-restricted-view-settings-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(projects))); expect(request.url).toBe("http://localhost:3333/admin/projects/shortname/images/RestrictedViewSettings"); expect(request.method).toEqual("GET"); }); }); describe("Method getProjectRestrictedViewSettingByShortcode", function () { it("should return restricted view settings of a project identified by its shortcode", function (done) { knoraApiConnection.admin.projectsEndpoint.getProjectRestrictedViewSettingByShortcode("00FF").subscribe(function (response) { expect(response.body.settings.size).toEqual("!512,512"); expect(response.body.settings.watermark).toEqual(false); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var projects = require("../../../../test/data/api/admin/projects/get-project-restricted-view-settings-response.json"); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(projects))); expect(request.url).toBe("http://localhost:3333/admin/projects/shortcode/00FF/RestrictedViewSettings"); expect(request.method).toEqual("GET"); }); }); }); //# sourceMappingURL=projects-endpoint.spec.js.map