Files
bknd/app/__test__/data/specs/fields/FieldIndex.spec.ts
2024-11-16 12:01:47 +01:00

39 lines
1.0 KiB
TypeScript

import { describe, expect, test } from "bun:test";
import { Type } from "../../../../src/core/utils";
import {
Entity,
EntityIndex,
type EntityManager,
Field,
type SchemaResponse
} from "../../../../src/data";
class TestField extends Field {
protected getSchema(): any {
return Type.Any();
}
schema(em: EntityManager<any>): SchemaResponse {
return undefined as any;
}
}
describe("FieldIndex", async () => {
const entity = new Entity("test", []);
test("it constructs", async () => {
const field = new TestField("name");
const index = new EntityIndex(entity, [field]);
expect(index.fields).toEqual([field]);
expect(index.name).toEqual("idx_test_name");
expect(index.unique).toEqual(false);
});
test("it fails on non-unique", async () => {
const field = new TestField("name", { required: false });
expect(() => new EntityIndex(entity, [field], true)).toThrowError();
expect(() => new EntityIndex(entity, [field])).toBeDefined();
});
});