photoprism/frontend/tests/unit/model/link_test.js
2020-07-01 18:28:56 +02:00

121 lines
3.9 KiB
JavaScript

import Link from "model/link";
import Photo from "model/photo";
import MockAdapter from "axios-mock-adapter";
import Api from "common/api";
let chai = require('../../../node_modules/chai/chai');
let assert = chai.assert;
const mock = new MockAdapter(Api);
mock
.onGet("api/v1/link/5").reply(200, "get success")
.onPut("api/v1/link/5").reply(200, "put success")
.onDelete("api/v1/link/5").reply(200, "delete success");
describe("model/link", () => {
it("should get link defaults", () => {
const values = {UID: 5};
const link = new Link(values);
const result = link.getDefaults();
assert.equal(result.UID, 0);
assert.equal(result.CanEdit, false);
assert.equal(result.Share, "");
});
it("should get link url", () => {
const values = {UID: 5, Token: "1234hhtbbt", Slug: "friends", Share: "family"};
const link = new Link(values);
const result = link.url();
assert.equal(result, "http://localhost:9876/s/1234hhtbbt/friends");
const values2 = {UID: 5, Token: "", Share: "family"};
const link2 = new Link(values2);
const result2 = link2.url();
assert.equal(result2, "http://localhost:9876/s/.../family");
});
it("should get link caption", () => {
const values = {UID: 5, Token: "AcfgbTTh", Slug: "friends", Share: "family"};
const link = new Link(values);
const result = link.caption();
assert.equal(result, "/s/acfgbtth");
});
it("should get link id", () => {
const values = {UID: 5};
const link = new Link(values);
const result = link.getId();
assert.equal(result, 5);
});
it("should test has id", () => {
const values = {UID: 5};
const link = new Link(values);
const result = link.hasId();
assert.equal(result, true);
});
it("should get link slug", () => {
const values = {UID: 5, Token: "AcfgbTTh", Slug: "friends", Share: "family"};
const link = new Link(values);
const result = link.getSlug();
assert.equal(result, "friends");
});
it("should test has slug", () => {
const values = {UID: 5, Token: "AcfgbTTh", Slug: "friends", Share: "family"};
const link = new Link(values);
const result = link.hasSlug();
assert.equal(result, true);
const values2 = {UID: 5, Token: "AcfgbTTh", Share: "family"};
const link2 = new Link(values2);
const result2 = link2.hasSlug();
assert.equal(result2, false);
});
it("should clone link", () => {
const values = {UID: 5, Token: "AcfgbTTh", Slug: "friends", Share: "family"};
const link = new Link(values);
const result = link.clone();
assert.equal(result.Slug, "friends");
assert.equal(result.Token, "AcfgbTTh");
});
//TODO
/*it("should remove link", (done) => {
const values = {UID: 5, Token: "AcfgbTTh", Slug: "friends", Share: "family"};
const link = new Link(values);
link.remove().then(
(response) => {
console.log(response);
assert.equal(response, "share success");
done();
}
).catch(
(error) => {
done(error);
}
);
});*/
//TODO why is it invalid
it("should test expire", () => {
const values = {UID: 5, Token: "AcfgbTTh", Slug: "friends", Share: "family", Expires: 8000, UpdatedAt: new Date("2019-01-01")};
const link = new Link(values);
const result = link.expires();
console.log(result);
assert.equal(result, "Invalid DateTime");
});
it("should get collection resource", () => {
const result = Link.getCollectionResource();
assert.equal(result, "links");
});
it("should get model name", () => {
const result = Link.getModelName();
assert.equal(result, "Link");
});
});