Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion packages/sdk/src/ts-schema-generator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1074,14 +1074,20 @@ export class TsSchemaGenerator {
: typeof arg === 'string'
? ts.factory.createStringLiteral(arg)
: typeof arg === 'number'
? ts.factory.createNumericLiteral(arg)
? this.createNumberLiteral(arg)
: arg === true
? ts.factory.createTrue()
: arg === false
? ts.factory.createFalse()
: undefined;
}

private createNumberLiteral(arg: number): any {
return arg < 0
? ts.factory.createPrefixUnaryExpression(ts.SyntaxKind.MinusToken, ts.factory.createNumericLiteral(-arg))
: ts.factory.createNumericLiteral(arg);
}

private createProceduresObject(procedures: Procedure[]) {
return ts.factory.createObjectLiteralExpression(
procedures.map((proc) => ts.factory.createPropertyAssignment(proc.name, this.createProcedureObject(proc))),
Expand Down
15 changes: 15 additions & 0 deletions tests/regression/test/issue-393.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { createTestClient } from '@zenstackhq/testtools';
import { describe, expect, it } from 'vitest';

describe('Regression for issue #393', () => {
it('verifies issue 393', async () => {
const db = await createTestClient(
`
model users {
id String @id() @default(cuid())
tz Int @default(-6) @db.SmallInt()
}`,
);
await expect(db.users.create({ data: {} })).resolves.toMatchObject({ tz: -6 });
});
});
Loading