mirror of
https://github.com/shishantbiswas/bknd.git
synced 2026-03-16 04:27:21 +00:00
50 lines
1.6 KiB
TypeScript
50 lines
1.6 KiB
TypeScript
import { describe, expect, test } from "bun:test";
|
|
import { Default, stripMark } from "../../../../src/core/utils";
|
|
import { baseFieldConfigSchema, Field } from "../../../../src/data/fields/Field";
|
|
import { runBaseFieldTests } from "./inc";
|
|
|
|
describe("[data] Field", async () => {
|
|
class FieldSpec extends Field {
|
|
getSchema() {
|
|
return baseFieldConfigSchema;
|
|
}
|
|
}
|
|
|
|
test("fieldSpec", () => {
|
|
expect(new FieldSpec("test").schema()).toEqual({
|
|
name: "test",
|
|
type: "text",
|
|
nullable: true, // always true
|
|
dflt: undefined, // never using default value
|
|
});
|
|
});
|
|
|
|
runBaseFieldTests(FieldSpec, { defaultValue: "test", schemaType: "text" });
|
|
|
|
test("default config", async () => {
|
|
const config = Default(baseFieldConfigSchema, {});
|
|
expect(stripMark(new FieldSpec("test").config)).toEqual(config as any);
|
|
});
|
|
|
|
test("transformPersist (specific)", async () => {
|
|
const required = new FieldSpec("test", { required: true });
|
|
const requiredDefault = new FieldSpec("test", {
|
|
required: true,
|
|
default_value: "test",
|
|
});
|
|
|
|
expect(required.transformPersist(null, undefined as any, undefined as any)).rejects.toThrow();
|
|
expect(
|
|
required.transformPersist(undefined, undefined as any, undefined as any),
|
|
).rejects.toThrow();
|
|
|
|
// works because it has a default value
|
|
expect(
|
|
requiredDefault.transformPersist(null, undefined as any, undefined as any),
|
|
).resolves.toBeDefined();
|
|
expect(
|
|
requiredDefault.transformPersist(undefined, undefined as any, undefined as any),
|
|
).resolves.toBeDefined();
|
|
});
|
|
});
|