From c8d0d9499017bbebef81227f38c207dc02a9671e Mon Sep 17 00:00:00 2001 From: Theresa Gresch Date: Fri, 3 Jul 2020 18:13:21 +0200 Subject: [PATCH] Frontend: Add tests for rest.js --- frontend/tests/unit/model/rest_test.js | 153 ++++++++++++++++++++++++- 1 file changed, 152 insertions(+), 1 deletion(-) diff --git a/frontend/tests/unit/model/rest_test.js b/frontend/tests/unit/model/rest_test.js index 690f5456b..0d934c363 100644 --- a/frontend/tests/unit/model/rest_test.js +++ b/frontend/tests/unit/model/rest_test.js @@ -1,6 +1,7 @@ import Rest from "model/rest"; import Album from "model/album"; import Label from "model/label"; +import Link from "model/link"; import MockAdapter from "axios-mock-adapter"; import Api from "common/api"; @@ -113,7 +114,19 @@ describe("model/abstract", () => { }); it("should search label", async() => { - mock.onAny().reply(200, {"ID":51,"CreatedAt":"2019-07-03T18:48:07Z","UpdatedAt":"2019-07-25T01:04:44Z","DeletedAt":"0001-01-01T00:00:00Z","Slug":"tabby-cat","Name":"tabby cat","Priority":5,"LabelCount":9,"Favorite":false,"Description":"","Notes":""}); + mock.onAny().reply(200, { + "ID":51, + "CreatedAt":"2019-07-03T18:48:07Z", + "UpdatedAt":"2019-07-25T01:04:44Z", + "DeletedAt":"0001-01-01T00:00:00Z", + "Slug":"tabby-cat", + "Name":"tabby cat", + "Priority":5, + "LabelCount":9, + "Favorite":false, + "Description":"", + "Notes":""}, + {"x-count": "3", "x-limit": "100", "x-offset": "0"}); const result = await Album.search(); assert.equal(result.data.ID, 51); assert.equal(result.data.Name, "tabby cat"); @@ -123,4 +136,142 @@ describe("model/abstract", () => { it("should get collection resource", () => { assert.equal(Rest.getCollectionResource(), ""); }); + + it("should get slug", () => { + const values = {id: 5, Name: "Christmas 2019", Slug: "christmas-2019", UID: 66}; + const album = new Album(values); + const result = album.getSlug(); + assert.equal(result, "christmas-2019"); + }); + + it("should get slug", () => { + const values = {id: 5, Name: "Christmas 2019", Slug: "christmas-2019", UID: 66}; + const album = new Album(values); + const result = album.clone(); + assert.equal(result.Slug, "christmas-2019"); + assert.equal(result.Name, "Christmas 2019"); + assert.equal(result.id, 5); + }); + + it("should find album", async() => { + mock.onGet("api/v1/albums/66", {params: {}}).reply(200, {Success: "ok"}); + const values = {id: 5, Name: "Christmas 2019", Slug: "christmas-2019", UID: 66}; + const album = new Album(values); + album.find(5).then( + (response) => { + assert.equal(response.Success, "ok"); + done(); + } + ).catch( + (error) => { + done(error); + } + ); + mock.reset(); + }); + + it("should get entity name", () => { + const values = {id: 5, Name: "Christmas 2019", Slug: "christmas-2019", UID: 66}; + const album = new Album(values); + const result = album.getEntityName(); + assert.equal(result, "christmas-2019"); + }); + + it("should return model name", () => { + const values = {id: 5, Name: "Christmas 2019", Slug: "christmas-2019", UID: 66}; + const album = new Album(values); + const result = album.modelName(); + assert.equal(result, "Album"); + }); + + it("should return limit", () => { + const values = {id: 5, Name: "Christmas 2019", Slug: "christmas-2019", UID: 66}; + const album = new Album(values); + const result = Rest.limit(); + assert.equal(result, "2222"); + }); + + it("should create link", async() => { + mock.onPost("api/v1/albums/66/links", { + "Password": "passwd", + "Expires": 8000, + "Slug": "christmas-2019", + "CanEdit": false, + "CanComment": false, + }).reply(200, {Success: "ok"}); + const values = {id: 5, Name: "Christmas 2019", Slug: "christmas-2019", UID: 66}; + const album = new Album(values); + album.createLink("passwd", 8000).then( + (response) => { + assert.equal(response.Success, "ok"); + done(); + } + ).catch( + (error) => { + done(error); + } + ); + mock.reset(); + }); + + it("should update link", async() => { + mock.onPut("api/v1/albums/66/links/5", { + "Password": "passwd123", + "Expires": 9000, + "Slug": "christmas-2018", + "CanEdit": false, + "CanComment": false, + }).reply(200, {Success: "ok"}); + const values = {UID: 5, Password: "passwd", Slug: "friends", Expires: 80000, UpdatedAt: "2012-07-08T14:45:39Z"}; + const link = new Link(values); + const values2 = {id: 5, Name: "Christmas 2019", Slug: "christmas-2019", UID: 66}; + const album = new Album(values2); + album.updateLink(link).then( + (response) => { + assert.equal(response.Success, "ok"); + done(); + } + ).catch( + (error) => { + done(error); + } + ); + mock.reset(); + }); + + it("should remove link", async() => { + mock.onDelete("api/v1/albums/66/links/5").reply(200, {Success: "ok"}); + const values = {UID: 5, Password: "passwd", Slug: "friends", Expires: 80000, UpdatedAt: "2012-07-08T14:45:39Z"}; + const link = new Link(values); + const values2 = {id: 5, Name: "Christmas 2019", Slug: "christmas-2019", UID: 66}; + const album = new Album(values2); + album.removeLink(link).then( + (response) => { + assert.equal(response.Success, "ok"); + done(); + } + ).catch( + (error) => { + done(error); + } + ); + mock.reset(); + }); + + it("should return links", async() => { + mock.onGet("api/v1/albums/66/links").reply(200, [{"UID":"sqcwh80ifesw74ht","Share":"aqcwh7weohhk49q2","Slug":"july-2020"},{"UID":"sqcwhxh1h58rf3c2","Share":"aqcwh7weohhk49q2"}]); + const values2 = {id: 5, Name: "Christmas 2019", Slug: "christmas-2019", UID: 66}; + const album = new Album(values2); + album.links().then( + (response) => { + assert.equal(response.length, 2); + done(); + } + ).catch( + (error) => { + done(error); + } + ); + mock.reset(); + }); });