7c9bf35b27
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
278 lines
9.7 KiB
JavaScript
278 lines
9.7 KiB
JavaScript
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";
|
|
|
|
let chai = require("chai/chai");
|
|
let assert = chai.assert;
|
|
|
|
describe("model/abstract", () => {
|
|
const mock = new MockAdapter(Api);
|
|
it("should set values", () => {
|
|
const values = {id: 5, Name: "Black Cat", Slug: "black-cat"};
|
|
const label = new Label(values);
|
|
assert.equal(label.Name, "Black Cat");
|
|
assert.equal(label.Slug, "black-cat");
|
|
label.setValues();
|
|
assert.equal(label.Name, "Black Cat");
|
|
assert.equal(label.Slug, "black-cat");
|
|
const values2 = {id: 6, Name: "White Cat", Slug: "white-cat"};
|
|
label.setValues(values2);
|
|
assert.equal(label.Name, "White Cat");
|
|
assert.equal(label.Slug, "white-cat");
|
|
});
|
|
|
|
it("should get values", () => {
|
|
const values = {id: 5, Name: "Christmas 2019", Slug: "christmas-2019", UID: 66};
|
|
const album = new Album(values);
|
|
const result = album.getValues();
|
|
assert.equal(result.Name, "Christmas 2019");
|
|
assert.equal(result.UID, 66);
|
|
});
|
|
|
|
it("should get id", () => {
|
|
const values = {id: 5, Name: "Christmas 2019", Slug: "christmas-2019", UID: 66};
|
|
const album = new Album(values);
|
|
const result = album.getId();
|
|
assert.equal(result, 66);
|
|
});
|
|
|
|
it("should test if id exists", () => {
|
|
const values = {id: 5, Name: "Christmas 2019", Slug: "christmas-2019", UID: 66};
|
|
const album = new Album(values);
|
|
const result = album.hasId();
|
|
assert.equal(result, true);
|
|
});
|
|
|
|
it("should get model name", () => {
|
|
const result = Rest.getModelName();
|
|
assert.equal(result, "Item");
|
|
});
|
|
|
|
it("should update album", async() => {
|
|
mock.onPut().reply(200, {Description: "Test description"});
|
|
const values = {id: 5, Name: "Christmas 2019", Slug: "christmas-2019", UID: 66};
|
|
const album = new Album(values);
|
|
assert.equal(album.Description, undefined);
|
|
await album.update();
|
|
assert.equal(album.Description, "Test description");
|
|
mock.reset();
|
|
});
|
|
|
|
it("should save album", async() => {
|
|
mock.onPut().reply(200, {Description: "Test description"});
|
|
const values = {id: 5, Name: "Christmas 2019", Slug: "christmas-2019", UID: 66};
|
|
const album = new Album(values);
|
|
assert.equal(album.Description, undefined);
|
|
await album.save();
|
|
assert.equal(album.Description, "Test description");
|
|
mock.reset();
|
|
});
|
|
|
|
it("should save album", async() => {
|
|
mock.onPost().reply(200, {Description: "Test description"});
|
|
const values = {id: 5, Name: "Christmas 2019", Slug: "christmas-2019"};
|
|
const album = new Album(values);
|
|
assert.equal(album.Description, undefined);
|
|
await album.save();
|
|
assert.equal(album.Description, "Test description");
|
|
mock.reset();
|
|
});
|
|
|
|
it("should remove album", async() => {
|
|
mock.onDelete().reply(200);
|
|
const values = {id: 5, Name: "Christmas 2019", Slug: "christmas-2019"};
|
|
const album = new Album(values);
|
|
assert.equal(album.Name, "Christmas 2019");
|
|
await album.remove();
|
|
mock.reset();
|
|
});
|
|
|
|
it("should get edit form", async() => {
|
|
mock.onAny().reply(200, "editForm");
|
|
const values = {id: 5, Name: "Christmas 2019", Slug: "christmas-2019"};
|
|
const album = new Album(values);
|
|
const result = await album.getEditForm();
|
|
assert.equal(result.definition, "editForm");
|
|
mock.reset();
|
|
});
|
|
|
|
it("should get create form", async() => {
|
|
mock.onAny().reply(200, "createForm");
|
|
const result = await Album.getCreateForm();
|
|
assert.equal(result.definition, "createForm");
|
|
mock.reset();
|
|
});
|
|
|
|
it("should get search form", async() => {
|
|
mock.onAny().reply(200, "searchForm");
|
|
const result = await Album.getSearchForm();
|
|
assert.equal(result.definition, "searchForm");
|
|
mock.reset();
|
|
});
|
|
|
|
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":""},
|
|
{"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");
|
|
mock.reset();
|
|
});
|
|
|
|
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, 3333);
|
|
assert.equal(album.constructor.limit(), 3333);
|
|
});
|
|
|
|
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();
|
|
});
|
|
});
|