36 lines
778 B
TypeScript
36 lines
778 B
TypeScript
|
import {describe, expect, test} from "vitest";
|
||
|
|
||
|
import {defineModel, newModel, s} from "../src/library";
|
||
|
|
||
|
class Testest {
|
||
|
foo: string;
|
||
|
bar: number;
|
||
|
baz: boolean;
|
||
|
}
|
||
|
|
||
|
describe("model builder", () => {
|
||
|
const modelBuilder = newModel(Testest)
|
||
|
.property("foo", s.property.string())
|
||
|
.property("bar", s.property.decimal())
|
||
|
.property("baz", s.property.boolean())
|
||
|
.identifier("foo");
|
||
|
|
||
|
test("build model definition", () => {
|
||
|
expect(modelBuilder.definition).toStrictEqual({
|
||
|
Class: Testest,
|
||
|
identifier: "foo",
|
||
|
properties: {
|
||
|
foo: s.property.string(),
|
||
|
bar: s.property.decimal(),
|
||
|
baz: s.property.boolean(),
|
||
|
},
|
||
|
});
|
||
|
});
|
||
|
|
||
|
test("build a model", () => {
|
||
|
expect(modelBuilder.define()).toStrictEqual(
|
||
|
defineModel(modelBuilder.definition),
|
||
|
);
|
||
|
});
|
||
|
});
|