mirror of
https://github.com/bknd-io/bknd/
synced 2026-08-02 08:06:00 +00:00
ca55503e66
* 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
47 lines
1.4 KiB
TypeScript
47 lines
1.4 KiB
TypeScript
import { bunTestRunner } from "adapter/bun/test";
|
|
import { describe, expect, test } from "bun:test";
|
|
import { EnumField } from "data/fields";
|
|
import { fieldTestSuite, transformPersist } from "data/fields/field-test-suite";
|
|
|
|
function options(strings: string[]) {
|
|
return { type: "strings", values: strings };
|
|
}
|
|
|
|
describe("[data] EnumField", async () => {
|
|
fieldTestSuite(
|
|
bunTestRunner,
|
|
// @ts-ignore
|
|
EnumField,
|
|
{ defaultValue: "a", schemaType: "text" },
|
|
{ options: options(["a", "b", "c"]) },
|
|
);
|
|
|
|
test("yields if default value is not a valid option", async () => {
|
|
expect(
|
|
// @ts-ignore
|
|
() => new EnumField("test", { options: options(["a", "b"]), default_value: "c" }),
|
|
).toThrow();
|
|
});
|
|
|
|
test("transformPersist (config)", async () => {
|
|
// @ts-ignore
|
|
const field = new EnumField("test", { options: options(["a", "b", "c"]) });
|
|
|
|
expect(transformPersist(field, null)).resolves.toBeUndefined();
|
|
expect(transformPersist(field, "a")).resolves.toBe("a");
|
|
expect(transformPersist(field, "d")).rejects.toThrow();
|
|
});
|
|
|
|
test("transformRetrieve", async () => {
|
|
const field = new EnumField("test", {
|
|
// @ts-ignore
|
|
options: options(["a", "b", "c"]),
|
|
default_value: "a",
|
|
required: true,
|
|
});
|
|
|
|
expect(field.transformRetrieve(null)).toBe("a");
|
|
expect(field.transformRetrieve("d")).toBe("a");
|
|
});
|
|
});
|