@@ -5,11 +5,10 @@ import Distribution.Client.CmdConfigure
55
66import Test.Tasty
77import Test.Tasty.HUnit
8+ import System.Directory
89import System.FilePath
910import Distribution.Verbosity
1011import Distribution.Client.Setup
11- import Distribution.Client.Sandbox
12- import Distribution.Client.Config
1312import Distribution.Client.NixStyleOptions
1413import Distribution.Client.ProjectConfig.Types
1514import Distribution.Client.ProjectFlags
@@ -19,61 +18,78 @@ import Distribution.Simple.Flag
1918tests :: [TestTree ]
2019tests =
2120 [ configureTests
22- , reconfigureTests
2321 ]
2422
2523configureTests :: TestTree
2624configureTests = testGroup " Configure tests"
2725 [ testCase " New config" $ do
28- let flags = (( defaultNixStyleFlags () )
26+ let flags = (defaultNixStyleFlags () )
2927 { configFlags = mempty
3028 { configOptimization = Flag MaximumOptimisation
3129 , configVerbosity = Flag silent
3230 }
33- })
31+ }
3432 projConfig <- configureAction' flags [] defaultGlobalFlags
3533
3634 Flag MaximumOptimisation @=?
3735 (packageConfigOptimization . projectConfigLocalPackages $ snd projConfig)
38- ]
3936
40- reconfigureTests :: TestTree
41- reconfigureTests = testGroup " Reconfigure tests"
42- [ testCase " Replacement + new config" $ do
37+ , testCase " Replacement + new config" $ do
4338 let flags = (defaultNixStyleFlags () )
44- { configFlags = mempty
39+ { configExFlags = mempty
40+ { configAppend = Flag True }
41+ , configFlags = mempty
4542 { configOptimization = Flag NoOptimisation
4643 , configVerbosity = Flag silent
4744 }
4845 , projectFlags = mempty
4946 { flagProjectFileName = Flag projectFile }
5047 }
51- projConfig <- reconfigureAction' flags [] defaultGlobalFlags
52-
53- case projConfig of
54- Right (_, ProjectConfig {.. }) -> do
55- Flag NoOptimisation @=? packageConfigOptimization projectConfigLocalPackages
56- Flag silent @=? projectConfigVerbosity projectConfigBuildOnly
48+ (_, ProjectConfig {.. }) <- configureAction' flags [] defaultGlobalFlags
5749
58- Left _ -> assertFailure $
59- " Called configureAction, check if " ++ projectFile ++ " .local exists. "
50+ Flag NoOptimisation @=? packageConfigOptimization projectConfigLocalPackages
51+ Flag silent @=? projectConfigVerbosity projectConfigBuildOnly
6052
6153 , testCase " Old + new config" $ do
54+ let flags = (defaultNixStyleFlags () )
55+ { configExFlags = mempty
56+ { configAppend = Flag True }
57+ , configFlags = mempty
58+ { configVerbosity = Flag silent }
59+ , projectFlags = mempty
60+ { flagProjectFileName = Flag projectFile }
61+ }
62+ (_, ProjectConfig {.. }) <- configureAction' flags [] defaultGlobalFlags
63+
64+ Flag MaximumOptimisation @=? packageConfigOptimization projectConfigLocalPackages
65+ Flag silent @=? projectConfigVerbosity projectConfigBuildOnly
66+
67+ , testCase " Old + new config, no appending" $ do
6268 let flags = (defaultNixStyleFlags () )
6369 { configFlags = mempty
6470 { configVerbosity = Flag silent }
6571 , projectFlags = mempty
6672 { flagProjectFileName = Flag projectFile }
6773 }
68- projConfig <- reconfigureAction' flags [] defaultGlobalFlags
69-
70- case projConfig of
71- Right (_, ProjectConfig {.. }) -> do
72- Flag MaximumOptimisation @=? packageConfigOptimization projectConfigLocalPackages
73- Flag silent @=? projectConfigVerbosity projectConfigBuildOnly
74+ (_, ProjectConfig {.. }) <- configureAction' flags [] defaultGlobalFlags
75+
76+ NoFlag @=? packageConfigOptimization projectConfigLocalPackages
77+ Flag silent @=? projectConfigVerbosity projectConfigBuildOnly
78+
79+ , testCase " Old + new config, backup check" $ do
80+ let flags = (defaultNixStyleFlags () )
81+ { configFlags = mempty
82+ { configVerbosity = Flag silent }
83+ , projectFlags = mempty
84+ { flagProjectFileName = Flag projectFile }
85+ }
86+ backup = projectFile <.> " local~"
87+
88+ removeFile backup
89+ _ <- configureAction' flags [] defaultGlobalFlags
7490
75- Left _ -> assertFailure $
76- " Called configureAction, check if " ++ projectFile ++ " .local exists. "
91+ doesFileExist backup >>=
92+ assertBool ( " No file found, expected: " ++ backup)
7793 ]
7894
7995projectFile :: FilePath
0 commit comments