@dasch-swiss/dsp-js
Version:
JavaScript library that handles API requests to Knora
430 lines • 27.8 kB
JavaScript
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