diff --git a/packages/cli/test/ts-schema-gen.test.ts b/packages/cli/test/ts-schema-gen.test.ts index 18c1e7d9..d29a0c5c 100644 --- a/packages/cli/test/ts-schema-gen.test.ts +++ b/packages/cli/test/ts-schema-gen.test.ts @@ -360,4 +360,66 @@ model User extends Base { expect(schema.enums).toMatchObject({ Role: expect.any(Object) }); expect(schema.models).toMatchObject({ User: expect.any(Object) }); }); + + it('generates correct default literal function arguments', async () => { + const { schema } = await generateTsSchema(` +model User { + id String @id @default(uuid(7)) +} + `); + + expect(schema.models).toMatchObject({ + User: { + name: "User", + fields: { + id: { + name: "id", + type: "String", + id: true, + attributes: [ + { + name: "@id" + }, + { + name: "@default", + args: [ + { + name: "value", + value: { + kind: "call", + function: "uuid", + args: [ + { + kind: "literal", + value: 7 + } + ] + } + } + ] + } + ], + default: { + kind: "call", + function: "uuid", + args: [ + { + kind: "literal", + value: 7 + } + ] + } + } + }, + idFields: [ + "id" + ], + uniqueFields: { + id: { + type: "String" + } + } + } + }); + }); }); diff --git a/packages/sdk/src/ts-schema-generator.ts b/packages/sdk/src/ts-schema-generator.ts index 75c0f44a..78ba40e0 100644 --- a/packages/sdk/src/ts-schema-generator.ts +++ b/packages/sdk/src/ts-schema-generator.ts @@ -507,7 +507,9 @@ export class TsSchemaGenerator { ...(defaultValue.args.length > 0 ? [ ts.factory.createArrayLiteralExpression( - defaultValue.args.map((arg) => this.createLiteralNode(arg)), + defaultValue.args.map((arg) => this.createExpressionUtilsCall('literal', [ + this.createLiteralNode(arg) + ])), ), ] : []),