1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE OverloadedLabels #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE UndecidableInstances #-}
module Database.Persist.TH.KindEntitiesSpec where
import Database.Persist.TH.KindEntitiesSpecImports
import TemplateTestImports
mkPersist sqlSettings [persistLowerCase|
Customer
name String
age Int
CustomerTransfer
customerId CustomerId
moneyAmount (MoneyAmount 'CustomerOwned 'Debit)
|]
spec :: Spec
spec = describe "KindEntities" $ do
it "should support DataKinds in entity definition" $ do
let mkTransfer :: CustomerId -> MoneyAmount 'CustomerOwned 'Debit -> CustomerTransfer
mkTransfer = CustomerTransfer
getAmount :: CustomerTransfer -> MoneyAmount 'CustomerOwned 'Debit
getAmount = customerTransferMoneyAmount
compiles
compiles :: Expectation
compiles = True `shouldBe` True
|