Files
photoprism/frontend/tests/vitest/model/rest.test.js
Ömer Duran a82d657b6b Frontend: Convert tests from mocha to vitest #5014
* Tests: convert all common tests from mocha to karma

* Tests: refactor Vuetify setup in tests

* Tests: update package-lock.json

* Tests: convert all model test to vitest 1/2

* Tests: convert all model test to vitest 2/2

* Tests: fix broken test

* Tests: time zone UTC

* Tests: Add playwright screenshots folder to gitignore

* Tests: Add timezone to vitest scripts

* Tests: Add Vitest scripts to Makefile

* Tests: delete unused timezone configs

* Tests: Update some tests

* Tests: Update vitest config

* Tests: Delete usesless try-catch
2025-06-20 16:28:26 +02:00

200 lines
7.2 KiB
JavaScript

import { describe, it, expect } from 'vitest';
import "../fixtures";
import Rest from "model/rest";
import Album from "model/album";
import Label from "model/label";
import Link from "model/link";
describe("model/abstract", () => {
it("should set values", () => {
const values = { ID: 5, Name: "Black Cat", Slug: "black-cat" };
const label = new Label(values);
expect(label.Name).toBe("Black Cat");
expect(label.Slug).toBe("black-cat");
label.setValues();
expect(label.Name).toBe("Black Cat");
expect(label.Slug).toBe("black-cat");
const values2 = { ID: 6, Name: "White Cat", Slug: "white-cat" };
label.setValues(values2);
expect(label.Name).toBe("White Cat");
expect(label.Slug).toBe("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();
expect(result.Name).toBe("Christmas 2019");
expect(result.UID).toBe(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();
expect(result).toBe(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();
expect(result).toBe(true);
});
it("should get model name", () => {
const result = Rest.getModelName();
expect(result).toBe("Item");
});
it("should update album", async () => {
const values = { ID: 5, Name: "Christmas 2019", Slug: "christmas-2019", UID: 66 };
const album = new Album(values);
expect(album.Description).toBeUndefined();
album.Name = "Christmas 2020";
await album.update();
expect(album.Description).toBe("Test description");
});
it("should save album", async () => {
const values = { UID: "abc", Name: "Christmas 2019", Slug: "christmas-2019" };
const album = new Album(values);
album.Name = "Christmas 2020";
expect(album.Description).toBeUndefined();
await album.save();
expect(album.Description).toBe("Test description");
const values2 = { Name: "Christmas 2019", Slug: "christmas-2019" };
const album2 = new Album(values2);
album2.Name = "Christmas 2020";
expect(album2.Description).toBeUndefined();
const response = await album2.save();
expect(response.success).toBe("ok");
expect(album2.Description).toBeUndefined();
});
it("should remove album", async () => {
const values = { UID: "abc", Name: "Christmas 2019", Slug: "christmas-2019" };
const album = new Album(values);
expect(album.Name).toBe("Christmas 2019");
await album.remove();
});
it("should get edit form", async () => {
const values = { UID: "abc", Name: "Christmas 2019", Slug: "christmas-2019" };
const album = new Album(values);
const result = await album.getEditForm();
expect(result.definition.foo).toBe("edit");
});
it("should get create form", async () => {
const result = await Album.getCreateForm();
expect(result.definition.foo).toBe("bar");
});
it("should get search form", async () => {
const result = await Album.getSearchForm();
expect(result.definition.foo).toBe("bar");
});
it("should search label", async () => {
const result = await Album.search();
expect(result.data.ID).toBe(51);
expect(result.data.Name).toBe("tabby cat");
});
it("should get collection resource", () => {
expect(Rest.getCollectionResource()).toBe("");
});
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();
expect(result).toBe("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();
expect(result.Slug).toBe("christmas-2019");
expect(result.Name).toBe("Christmas 2019");
expect(result.ID).toBe(5);
});
it("should find album", async () => {
const values = { Name: "Christmas 2019", Slug: "christmas-2019", UID: 66 };
const album = new Album(values);
const response = await album.find(5);
expect(response.UID).toBe("5");
});
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();
expect(result).toBe("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();
expect(result).toBe("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();
expect(result).toBe(100000);
expect(album.constructor.limit()).toBe(100000);
});
it("should create link", async () => {
const values = { ID: 5, Name: "Christmas 2019", Slug: "christmas-2019", UID: 66 };
const album = new Album(values);
const response = await album.createLink("passwd", 8000);
expect(response.Slug).toBe("christmas-2019");
});
it("should update link", async () => {
const values = {
UID: 5,
Password: "passwd",
Slug: "friends",
Expires: 80000,
UpdatedAt: "2012-07-08T14:45:39Z",
Token: "abchhgftryue2345",
};
const link = new Link(values);
const values2 = { ID: 5, Name: "Christmas 2019", Slug: "christmas-2019", UID: 66 };
const album = new Album(values2);
const response = await album.updateLink(link);
expect(response.Slug).toBe("friends");
});
it("should remove link", async () => {
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);
const response = await album.removeLink(link);
expect(response.Success).toBe("ok");
});
it("should return links", async () => {
const values2 = { ID: 5, Name: "Christmas 2019", Slug: "christmas-2019", UID: 66 };
const album = new Album(values2);
const response = await album.links();
expect(response.count).toBe(2);
expect(response.models.length).toBe(2);
});
});