fix: keep enum values in types generation

This commit is contained in:
Pedro Guzman
2025-06-13 12:23:56 +02:00
parent 3b1dc0ced0
commit 6f09ca0800
6 changed files with 128 additions and 9 deletions
@@ -13,6 +13,11 @@ describe("GraphQL builder", () => {
isVerified: model.boolean(),
})
enum DepartmentEnum {
FinanceDept = "finance",
MarketingDept = "marketing",
}
const user = model.define("user", {
id: model.id(),
username: model.text(),
@@ -21,8 +26,9 @@ describe("GraphQL builder", () => {
phones: model.array(),
group: model.belongsTo(() => group, { mappedBy: "users" }),
role: model
.enum(["moderator", "admin", "guest", "new_user"])
.enum(["moderator", "admin", "guest", "new-user"])
.default("guest"),
department: model.enum(DepartmentEnum),
tags: model.manyToMany(() => tag, {
pivotTable: "custom_user_tags",
}),
@@ -59,10 +65,15 @@ describe("GraphQL builder", () => {
}
enum UserRoleEnum {
MODERATOR
ADMIN
GUEST
NEW_USER
MODERATOR @enumValue(value: "moderator")
ADMIN @enumValue(value: "admin")
GUEST @enumValue(value: "guest")
NEW_USER @enumValue(value: "new-user")
}
enum UserDepartmentEnum {
FINANCE @enumValue(value: "finance")
MARKETING @enumValue(value: "marketing")
}
type User {
@@ -74,6 +85,7 @@ describe("GraphQL builder", () => {
group_id:String!
group: Group!
role: UserRoleEnum!
department: UserDepartmentEnum!
tags: [Tag]!
raw_spend_limit: JSON!
created_at: DateTime!
@@ -44,7 +44,7 @@ export function getGraphQLAttributeFromDMLPropety(
const enumValues = field.dataType
.options!.choices.map((value) => {
const enumValue = value.replace(/[^a-z0-9_]/gi, "_").toUpperCase()
return ` ${enumValue}`
return ` ${enumValue} @enumValue(value: "${value}")`
})
.join("\n")