added more tests, updated json schema generation

This commit is contained in:
dswbx
2025-06-07 08:24:21 +02:00
parent 9a18e354cd
commit a0edcf483b
2 changed files with 28 additions and 0 deletions

View File

@@ -39,4 +39,28 @@ describe("[data] PrimaryField", async () => {
expect(field.transformPersist(1)).rejects.toThrow(); expect(field.transformPersist(1)).rejects.toThrow();
expect(field.transformRetrieve(1)).toBe(1); expect(field.transformRetrieve(1)).toBe(1);
}); });
test("format", () => {
const uuid = new PrimaryField("uuid", { format: "uuid" });
expect(uuid.format).toBe("uuid");
expect(uuid.fieldType).toBe("text");
expect(uuid.getNewValue()).toBeString();
expect(uuid.toType()).toEqual({
required: true,
comment: undefined,
type: "Generated<string>",
import: [{ package: "kysely", name: "Generated" }],
});
const integer = new PrimaryField("integer", { format: "integer" });
expect(integer.format).toBe("integer");
expect(integer.fieldType).toBe("integer");
expect(integer.getNewValue()).toBeUndefined();
expect(integer.toType()).toEqual({
required: true,
comment: undefined,
type: "Generated<number>",
import: [{ package: "kysely", name: "Generated" }],
});
});
}); });

View File

@@ -67,6 +67,10 @@ export class PrimaryField<Required extends true | false = false> extends Field<
} }
override toJsonSchema() { override toJsonSchema() {
if (this.format === "uuid") {
return this.toSchemaWrapIfRequired(Type.String({ writeOnly: undefined }));
}
return this.toSchemaWrapIfRequired(Type.Number({ writeOnly: undefined })); return this.toSchemaWrapIfRequired(Type.Number({ writeOnly: undefined }));
} }