photoprism/frontend/tests/unit/model/album_test.js
Michael Mayer 26560e8d71 Frontend: Upgrade Webpack from v4 to v5
Most frontend packages have been upgraded as part of this commit.
JS unit tests have been refactored alongside.
2021-07-12 19:25:37 +02:00

189 lines
5.3 KiB
JavaScript

import "../fixtures";
import Album from "model/album";
let chai = require("chai/chai");
let assert = chai.assert;
describe("model/album", () => {
it("should get route view", () => {
const values = { id: 5, Title: "Christmas 2019", Slug: "christmas-2019" };
const album = new Album(values);
const result = album.route("test");
assert.equal(result.name, "test");
assert.equal(result.params.slug, "christmas-2019");
});
it("should return classes", () => {
const values = {
UID: 5,
Title: "Christmas 2019",
Slug: "christmas-2019",
Type: "moment",
Favorite: true,
Private: true,
};
const album = new Album(values);
const result = album.classes(true);
assert.include(result, "is-album");
assert.include(result, "uid-5");
assert.include(result, "type-moment");
assert.include(result, "is-selected");
assert.include(result, "is-favorite");
assert.include(result, "is-private");
});
it("should get album entity name", () => {
const values = { id: 5, Title: "Christmas 2019", Slug: "christmas-2019" };
const album = new Album(values);
const result = album.getEntityName();
assert.equal(result, "christmas-2019");
});
it("should get album id", () => {
const values = { id: 5, Title: "Christmas 2019", Slug: "christmas-2019", UID: 66 };
const album = new Album(values);
const result = album.getId();
assert.equal(result, "66");
});
it("should get album title", () => {
const values = { id: 5, Title: "Christmas 2019", Slug: "christmas-2019" };
const album = new Album(values);
const result = album.getTitle();
assert.equal(result, "Christmas 2019");
});
it("should get thumbnail url", () => {
const values = { id: 5, Title: "Christmas 2019", Slug: "christmas-2019", UID: 66 };
const album = new Album(values);
const result = album.thumbnailUrl("xyz");
assert.equal(result, "/api/v1/albums/66/t/public/xyz");
});
it("should get created date string", () => {
const values = {
ID: 5,
Title: "Christmas 2019",
Slug: "christmas-2019",
CreatedAt: "2012-07-08T14:45:39Z",
};
const album = new Album(values);
const result = album.getCreatedString();
assert.equal(result, "Jul 8, 2012, 2:45 PM");
});
it("should get album date string with invalid day", () => {
const values = {
ID: 5,
Title: "Christmas 2019",
Slug: "christmas-2019",
CreatedAt: "2012-07-08T14:45:39Z",
Day: -1,
Month: 5,
Year: 2019,
};
const album = new Album(values);
const result = album.getDateString();
assert.equal(result, "May 2019");
});
it("should get album date string with invalid year", () => {
const values = {
ID: 5,
Title: "Christmas 2019",
Slug: "christmas-2019",
CreatedAt: "2012-07-08T14:45:39Z",
Day: 1,
Month: 5,
Year: 800,
};
const album = new Album(values);
const result = album.getDateString();
assert.equal(result, "Unknown");
});
it("should get day string", () => {
const values = {
ID: 5,
Title: "Christmas 2019",
Slug: "christmas-2019",
CreatedAt: "2012-07-08T14:45:39Z",
Day: 8,
Month: 5,
Year: 2019,
};
const album = new Album(values);
const result = album.dayString();
assert.equal(result, "08");
});
it("should get month string", () => {
const values = {
ID: 5,
Title: "Christmas 2019",
Slug: "christmas-2019",
CreatedAt: "2012-07-08T14:45:39Z",
Day: 8,
Month: -5,
Year: 2019,
};
const album = new Album(values);
const result = album.monthString();
assert.equal(result, "01");
});
it("should get year string", () => {
const values = {
ID: 5,
Title: "Christmas 2019",
Slug: "christmas-2019",
CreatedAt: "2012-07-08T14:45:39Z",
Day: 8,
Month: -5,
Year: 800,
};
const album = new Album(values);
const result = album.yearString();
assert.equal(result, new Date().getFullYear().toString().padStart(4, "0"));
});
it("should get model name", () => {
const result = Album.getModelName();
assert.equal(result, "Album");
});
it("should get collection resource", () => {
const result = Album.getCollectionResource();
assert.equal(result, "albums");
});
it("should return batch size", () => {
assert.equal(Album.batchSize(), 24);
});
it("should like album", () => {
const values = { id: 5, Title: "Christmas 2019", Slug: "christmas-2019", Favorite: false };
const album = new Album(values);
assert.equal(album.Favorite, false);
album.like();
assert.equal(album.Favorite, true);
});
it("should unlike album", () => {
const values = { id: 5, Title: "Christmas 2019", Slug: "christmas-2019", Favorite: true };
const album = new Album(values);
assert.equal(album.Favorite, true);
album.unlike();
assert.equal(album.Favorite, false);
});
it("should toggle like", () => {
const values = { id: 5, Title: "Christmas 2019", Slug: "christmas-2019", Favorite: true };
const album = new Album(values);
assert.equal(album.Favorite, true);
album.toggleLike();
assert.equal(album.Favorite, false);
album.toggleLike();
assert.equal(album.Favorite, true);
});
});