Skip to content

Commit 37d2d25

Browse files
committed
what
1 parent 10ff69c commit 37d2d25

3 files changed

Lines changed: 40 additions & 13 deletions

File tree

persistent-mysql/test/main.hs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import qualified LargeNumberTest
3131
import qualified MaxLenTest
3232
import qualified MigrationColumnLengthTest
3333
import qualified MigrationIdempotencyTest
34+
import qualified MigrationTest
3435
import qualified MigrationOnlyTest
3536
import qualified MpsNoPrefixTest
3637
import qualified PersistentTest
@@ -153,6 +154,7 @@ main = do
153154
MaxLenTest.specsWith db
154155
Recursive.specsWith db
155156
SumTypeTest.specsWith db (Just (runMigrationSilent SumTypeTest.sumTypeMigrate))
157+
MigrationTest.specsWith db
156158
MigrationOnlyTest.specsWith db
157159
(Just
158160
$ runMigrationSilent MigrationOnlyTest.migrateAll1

persistent-postgresql/test/main.hs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import qualified MaxLenTest
3434
import qualified MigrationColumnLengthTest
3535
import qualified MigrationOnlyTest
3636
import qualified MpsNoPrefixTest
37+
import qualified MigrationTest
3738
import qualified PersistentTest
3839
import qualified PersistUniqueTest
3940
import qualified PrimaryTest
@@ -146,6 +147,7 @@ main = do
146147
MaxLenTest.specsWith db
147148
Recursive.specsWith db
148149
SumTypeTest.specsWith db (Just (runMigrationSilent SumTypeTest.sumTypeMigrate))
150+
MigrationTest.specsWith db
149151
MigrationOnlyTest.specsWith db
150152
(Just
151153
$ runMigrationSilent MigrationOnlyTest.migrateAll1

persistent-test/src/MigrationTest.hs

Lines changed: 36 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ Target
1717
Source
1818
field3 Int
1919
field4 TargetId
20+
2021
|]
2122

2223
share [mkPersist sqlSettings, mkMigrate "migrationAddCol", mkDeleteCascade sqlSettings] [persistLowerCase|
@@ -30,21 +31,43 @@ Source1 sql=source
3031
field3 Int
3132
extra Int
3233
field4 Target1Id
34+
3335
|]
3436

35-
specsWith :: (MonadIO m) => RunDb SqlBackend m -> Spec
37+
share [mkPersist sqlSettings, mkMigrate "addPrimKey", mkDeleteCascade sqlSettings] [persistLowerCase|
38+
FromRawMigration
39+
name T.Text
40+
age Int
41+
42+
Primary name
43+
44+
|]
45+
46+
specsWith :: (MonadIO m, MonadFail m) => RunDb SqlBackend m -> Spec
3647
specsWith runDb = describe "Migration" $ do
3748
it "is idempotent" $ runDb $ do
38-
again <- getMigration migrationMigrate
39-
liftIO $ again @?= []
40-
it "really is idempotent" $ runDb $ do
41-
runMigration migrationMigrate
42-
again <- getMigration migrationMigrate
43-
liftIO $ again @?= []
49+
_ <- runMigration migrateionMigrate
50+
again <- getMigration migrationMigrate
51+
liftIO $ again @?= []
4452
it "can add an extra column" $ runDb $ do
45-
-- Failing test case for #735. Foreign-key checking, switched on in
46-
-- version 2.6.1, caused persistent-sqlite to generate a `references`
47-
-- constraint in a *temporary* table during migration, which fails.
48-
_ <- runMigration migrationAddCol
49-
again <- getMigration migrationAddCol
50-
liftIO $ again @?= []
53+
-- Failing test case for #735. Foreign-key checking, switched on in
54+
-- version 2.6.1, caused persistent-sqlite to generate a `references`
55+
-- constraint in a *temporary* table during migration, which fails.
56+
_ <- runMigration migrationMigrate
57+
_ <- runMigration migrationAddCol
58+
again <- getMigration migrationAddCol
59+
liftIO $ again @?= []
60+
describe "Add Primary key constraint on raw table" $ do
61+
it "should not be considered safe" $ runDb $ do
62+
rawExecute "CREATE TABLE from_raw_migration (name VARCHAR NOT NULL, age INT8 NOT NULL)" []
63+
Right migration <- parseMigration addPrimKey
64+
liftIO $ migration
65+
`shouldSatisfy`
66+
(\cm -> True `elem` map fst cm)
67+
68+
it "works" $ runDb $ do
69+
rawExecute "CREATE TABLE from_raw_migration (name VARCHAR NOT NULL, age INT NOT NULL)" []
70+
Right migration <- parseMigration addPrimKey
71+
() <- runMigration addPrimKey
72+
again <- getMigration addPrimKey
73+
liftIO $ again @?= []

0 commit comments

Comments
 (0)