UNPKG

@dasch-swiss/dsp-js

Version:

JavaScript library that handles API requests to Knora

114 lines 6.48 kB
import { MockAjaxCall } from "../../../../test/mockajaxcall"; import { KnoraApiConfig } from "../../../knora-api-config"; import { KnoraApiConnection } from "../../../knora-api-connection"; describe("Test class AuthenticationEndpoint", function () { beforeEach(function () { jasmine.Ajax.install(); }); afterEach(function () { jasmine.Ajax.uninstall(); }); it("should perform a login by username", function (done) { var config = new KnoraApiConfig("http", "localhost", 3333); var knoraApiConnection = new KnoraApiConnection(config); knoraApiConnection.v2.auth.login("username", "user", "test").subscribe(function (response) { expect(response.body.token).toEqual("testtoken"); expect(knoraApiConnection.v2.jsonWebToken).toEqual("testtoken"); done(); }); var request = jasmine.Ajax.requests.mostRecent(); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify({ token: "testtoken" }))); expect(request.url).toEqual("http://localhost:3333/v2/authentication"); expect(request.method).toEqual("POST"); expect(request.data()).toEqual({ username: "user", password: "test" }); }); it("should perform a login by email", function (done) { var config = new KnoraApiConfig("http", "localhost", 3333); var knoraApiConnection = new KnoraApiConnection(config); knoraApiConnection.v2.auth.login("email", "root@example.com", "test").subscribe(function (response) { expect(response.body.token).toEqual("testtoken"); expect(knoraApiConnection.v2.jsonWebToken).toEqual("testtoken"); done(); }); var request = jasmine.Ajax.requests.mostRecent(); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify({ token: "testtoken" }))); expect(request.url).toEqual("http://localhost:3333/v2/authentication"); expect(request.method).toEqual("POST"); expect(request.data()).toEqual({ email: "root@example.com", password: "test" }); }); it("should perform a login by iri", function (done) { var config = new KnoraApiConfig("http", "localhost", 3333); var knoraApiConnection = new KnoraApiConnection(config); knoraApiConnection.v2.auth.login("iri", "http://rdfh.ch/users/9XBCrDV3SRa7kS1WwynB4Q", "test").subscribe(function (response) { expect(response.body.token).toEqual("testtoken"); expect(knoraApiConnection.v2.jsonWebToken).toEqual("testtoken"); done(); }); var request = jasmine.Ajax.requests.mostRecent(); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify({ token: "testtoken" }))); expect(request.url).toEqual("http://localhost:3333/v2/authentication"); expect(request.method).toEqual("POST"); expect(request.data()).toEqual({ iri: "http://rdfh.ch/users/9XBCrDV3SRa7kS1WwynB4Q", password: "test" }); }); it("should attempt to perform a login with invalid credentials", function (done) { var config = new KnoraApiConfig("http", "localhost", 3333); var knoraApiConnection = new KnoraApiConnection(config); knoraApiConnection.v2.auth.login("username", "user", "wrongpassword").subscribe(function () { }, function (err) { expect(err.status).toEqual(401); expect(knoraApiConnection.v2.jsonWebToken).toEqual(""); done(); }); var request = jasmine.Ajax.requests.mostRecent(); request.respondWith(MockAjaxCall.mockNotAuthorizedResponse(JSON.stringify({ "knora-api:error": "org.knora.webapi.BadCredentialsException: bad credentials: not valid", "@context": { "knora-api": "http://api.knora.org/ontology/knora-api/v2#" } }))); expect(request.url).toEqual("http://localhost:3333/v2/authentication"); expect(request.method).toEqual("POST"); expect(request.data()).toEqual({ username: "user", password: "wrongpassword" }); }); it("should perform a logout", function (done) { var config = new KnoraApiConfig("http", "localhost", 3333); var knoraApiConnection = new KnoraApiConnection(config); knoraApiConnection.v2.auth.logout().subscribe(function (response) { expect(response.body.status).toEqual(0); expect(response.body.message).toEqual("Logout OK"); expect(knoraApiConnection.v2.jsonWebToken).toEqual(""); done(); }); var request = jasmine.Ajax.requests.mostRecent(); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify({ message: "Logout OK", status: 0 }))); expect(request.url).toEqual("http://localhost:3333/v2/authentication"); expect(request.method).toEqual("DELETE"); }); it("should check credentials for a user that is logged in", function (done) { var config = new KnoraApiConfig("http", "localhost", 3333); var knoraApiConnection = new KnoraApiConnection(config); knoraApiConnection.v2.auth.checkCredentials().subscribe(function (response) { expect(response.body.message).toEqual("credentials are OK"); done(); }); var request = jasmine.Ajax.requests.mostRecent(); request.respondWith(MockAjaxCall.mockResponse(JSON.stringify({ message: "credentials are OK" }))); expect(request.url).toEqual("http://localhost:3333/v2/authentication"); expect(request.method).toEqual("GET"); }); it("should check credentials for a user that is not logged in", function (done) { var config = new KnoraApiConfig("http", "localhost", 3333); var knoraApiConnection = new KnoraApiConnection(config); knoraApiConnection.v2.auth.checkCredentials().subscribe(function () { }, function (err) { expect(err.status).toEqual(401); done(); }); var request = jasmine.Ajax.requests.mostRecent(); request.respondWith(MockAjaxCall.mockNotAuthorizedResponse(JSON.stringify({ "knora-api:error": "org.knora.webapi.BadCredentialsException: bad credentials: none found", "@context": { "knora-api": "http://api.knora.org/ontology/knora-api/v2#" } }))); expect(request.url).toEqual("http://localhost:3333/v2/authentication"); expect(request.method).toEqual("GET"); }); }); //# sourceMappingURL=authentication-endpoint.spec.js.map