wasp/waspc/test/Psl/Common/ModelTest.hs

79 lines
2.2 KiB
Haskell

module Psl.Common.ModelTest where
import qualified Psl.Ast.Model as AST
-- | Corresponds to sampleBodyAst below.
sampleBodySchema :: String
sampleBodySchema =
unlines
[ " id Int @id @default(value: autoincrement())"
, " email String?"
, " posts Post[] @relation(\"UserPosts\", references: [id]) @customattr"
, ""
, " @@someattr([id, email], 2 + 4, [posts])"
]
-- | Corresponds to sampleBodySchema above.
sampleBodyAst :: AST.Body
sampleBodyAst =
AST.Body
[ AST.ElementField
( AST.Field
{ AST._name = "id"
, AST._type = AST.Int
, AST._typeModifiers = []
, AST._attrs =
[ AST.Attribute
{ AST._attrName = "id"
, AST._attrArgs = []
}
, AST.Attribute
{ AST._attrName = "default"
, AST._attrArgs =
[ AST.AttrArgNamed "value" (AST.AttrArgFunc "autoincrement")
]
}
]
}
)
, AST.ElementField
( AST.Field
{ AST._name = "email"
, AST._type = AST.String
, AST._typeModifiers = [AST.Optional]
, AST._attrs = []
}
)
, AST.ElementField
( AST.Field
{ AST._name = "posts"
, AST._type = AST.UserType "Post"
, AST._typeModifiers = [AST.List]
, AST._attrs =
[ AST.Attribute
{ AST._attrName = "relation"
, AST._attrArgs =
[ AST.AttrArgUnnamed (AST.AttrArgString "UserPosts")
, AST.AttrArgNamed "references" (AST.AttrArgFieldRefList ["id"])
]
}
, AST.Attribute
{ AST._attrName = "customattr"
, AST._attrArgs = []
}
]
}
)
, AST.ElementBlockAttribute
( AST.Attribute
{ AST._attrName = "someattr"
, AST._attrArgs =
[ AST.AttrArgUnnamed (AST.AttrArgFieldRefList ["id", "email"])
, AST.AttrArgUnnamed (AST.AttrArgUnknown "2 + 4")
, AST.AttrArgUnnamed (AST.AttrArgFieldRefList ["posts"])
]
}
)
]