diff --git a/packages/api/cms-api/src/generator/generate-crud.spec.ts b/packages/api/cms-api/src/generator/generate-crud.spec.ts index c4ef287246..03317c1ba5 100644 --- a/packages/api/cms-api/src/generator/generate-crud.spec.ts +++ b/packages/api/cms-api/src/generator/generate-crud.spec.ts @@ -10,7 +10,7 @@ export class TestEntityWithString extends BaseEntity @PrimaryKey({ type: "uuid" }) id: string = uuid(); - @Property() + @Property({ columnType: "text" }) title: string; } @@ -55,6 +55,40 @@ describe("GenerateCrud", () => { }); }); + describe("string filter", () => { + it("should be a valid generated ts file", async () => { + LazyMetadataStorage.load(); + const orm = await MikroORM.init({ + type: "postgresql", + dbName: "test-db", + entities: [TestEntityWithString], + }); + + const out = await generateCrud({ targetDirectory: __dirname }, orm.em.getMetadata().get("TestEntityWithString")); + const lintedOut = await lintGeneratedFiles(out); + + const file = lintedOut.find((file) => file.name === "dto/test-entity-with-string.filter.ts"); + if (!file) throw new Error("File not found"); + + const source = parseSource(file.content); + + const classes = source.getClasses(); + expect(classes.length).toBe(1); + + const cls = classes[0]; + expect(cls.getName()).toBe("TestEntityWithStringFilter"); + const structure = cls.getStructure(); + + expect(structure.properties?.length).toBe(3); + if (!structure.properties || !structure.properties[0]) throw new Error("property not found"); + const filterProp = structure.properties[0]; + expect(filterProp.name).toBe("title"); + expect(filterProp.type).toBe("StringFilter"); + + orm.close(); + }); + }); + describe("number filter", () => { it("should be a valid generated ts file", async () => { LazyMetadataStorage.load();