{-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE UndecidableInstances #-} module MigrationColumnLengthTest where import qualified Data.Text as T import Init share [mkPersist sqlSettings, mkMigrate "migration"] [persistLowerCase| VaryingLengths field1 Int field2 T.Text sqltype=varchar(5) |] specsWith :: MonadIO m => RunDb SqlBackend m -> Spec specsWith :: RunDb SqlBackend m -> Spec specsWith RunDb SqlBackend m runDb = String -> IO () -> SpecWith (Arg (IO ())) forall a. (HasCallStack, Example a) => String -> a -> SpecWith (Arg a) it String "is idempotent" (IO () -> SpecWith (Arg (IO ()))) -> IO () -> SpecWith (Arg (IO ())) forall a b. (a -> b) -> a -> b $ RunDb SqlBackend m runDb RunDb SqlBackend m -> RunDb SqlBackend m forall a b. (a -> b) -> a -> b $ do [Text] again <- Migration -> ReaderT SqlBackend m [Text] forall (m :: * -> *). (MonadIO m, HasCallStack) => Migration -> ReaderT SqlBackend m [Text] getMigration Migration migration IO () -> ReaderT SqlBackend m () forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO () -> ReaderT SqlBackend m ()) -> IO () -> ReaderT SqlBackend m () forall a b. (a -> b) -> a -> b $ [Text] again [Text] -> [Text] -> IO () forall a. (HasCallStack, Eq a, Show a) => a -> a -> IO () @?= []