Files
bknd/app/__test__/data/specs/Entity.spec.ts
T
dswbx ca55503e66 refactor/imports (#217)
* refactored core and core/utils imports

* refactored core and core/utils imports

* refactored media imports

* refactored auth imports

* refactored data imports

* updated package json exports, fixed mm config

* fix tests
2025-07-22 20:17:11 +02:00

55 lines
1.6 KiB
TypeScript

import { describe, expect, test } from "bun:test";
import { Entity } from "data/entities";
import { NumberField, TextField } from "data/fields";
describe("[data] Entity", async () => {
const entity = new Entity("test", [
new TextField("name", { required: true }),
new TextField("description"),
new NumberField("age", { fillable: false, default_value: 18 }),
new TextField("hidden", { hidden: true, default_value: "secret" }),
]);
test("getSelect", async () => {
expect(entity.getSelect()).toEqual(["id", "name", "description", "age"]);
});
test("getFillableFields", async () => {
expect(entity.getFillableFields().map((f) => f.name)).toEqual([
"name",
"description",
"hidden",
]);
});
test("getRequiredFields", async () => {
expect(entity.getRequiredFields().map((f) => f.name)).toEqual(["name"]);
});
test("getDefaultObject", async () => {
expect(entity.getDefaultObject()).toEqual({
age: 18,
hidden: "secret",
});
});
test("getField", async () => {
expect(entity.getField("name")).toBeInstanceOf(TextField);
expect(entity.getField("age")).toBeInstanceOf(NumberField);
});
test("getPrimaryField", async () => {
expect(entity.getPrimaryField().name).toEqual("id");
});
test("addField", async () => {
const field = new TextField("new_field");
entity.addField(field);
expect(entity.getField("new_field")).toBe(field);
});
test.only("types", async () => {
console.log(entity.toTypes());
});
});