mirror of
https://github.com/shishantbiswas/bknd.git
synced 2026-03-15 20:17:22 +00:00
46 lines
1.7 KiB
TypeScript
46 lines
1.7 KiB
TypeScript
import { describe, expect, test } from "bun:test";
|
|
import { Default, parse, stripMark } from "../../../../src/core/utils";
|
|
import { Field, type SchemaResponse, TextField, baseFieldConfigSchema } from "../../../../src/data";
|
|
import { runBaseFieldTests, transformPersist } from "./inc";
|
|
|
|
describe("[data] Field", async () => {
|
|
class FieldSpec extends Field {
|
|
schema(): SchemaResponse {
|
|
return this.useSchemaHelper("text");
|
|
}
|
|
getSchema() {
|
|
return baseFieldConfigSchema;
|
|
}
|
|
}
|
|
|
|
runBaseFieldTests(FieldSpec, { defaultValue: "test", schemaType: "text" });
|
|
|
|
test.only("default config", async () => {
|
|
const field = new FieldSpec("test");
|
|
const config = Default(baseFieldConfigSchema, {});
|
|
expect(stripMark(new FieldSpec("test").config)).toEqual(config);
|
|
console.log("config", new TextField("test", { required: true }).toJSON());
|
|
});
|
|
|
|
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();
|
|
});
|
|
});
|