Skip to content
This repository was archived by the owner on Oct 7, 2020. It is now read-only.

Commit 86ccb3d

Browse files
committed
Re-use function for same functionality
1 parent 55ccdd3 commit 86ccb3d

File tree

1 file changed

+16
-41
lines changed

1 file changed

+16
-41
lines changed

test/unit/HsImportSpec.hs

+16-41
Original file line numberDiff line numberDiff line change
@@ -136,81 +136,49 @@ hsImportSpecRunner formatterName [e1, e2, e3, e4, e5, e6, e7, e8] = do
136136
fp <- makeAbsolute codeActionImportList
137137
let uri = filePathToUri fp
138138
let act = importModule (ImportParams uri Simple "Control.Monad")
139-
140-
IdeResultOk (WorkspaceEdit (Just changes) _) <- runSingle' (setFormatter formatterName) testPlugins fp act
141-
case Map.lookup uri changes of
142-
Just (List val) -> val `shouldBe` e1
143-
Nothing -> fail "No Change found"
139+
expectHsImportResult formatterName fp uri e1 act
144140

145141
it "import-list formats" $ do
146142
fp <- makeAbsolute codeActionImportList
147143
let uri = filePathToUri fp
148144
let act = importModule (ImportParams uri (Complex (Import $ Only "when")) "Control.Monad")
149-
150-
IdeResultOk (WorkspaceEdit (Just changes) _) <- runSingle' (setFormatter formatterName) testPlugins fp act
151-
case Map.lookup uri changes of
152-
Just (List val) -> val `shouldBe` e2
153-
Nothing -> fail "No Change found"
145+
expectHsImportResult formatterName fp uri e2 act
154146

155147
it "import-list type formats" $ do
156148
fp <- makeAbsolute codeActionImportList
157149
let uri = filePathToUri fp
158150
let act = importModule (ImportParams uri (Complex (Import $ Only "Maybe")) "Data.Maybe")
159-
160-
IdeResultOk (WorkspaceEdit (Just changes) _) <- runSingle' (setFormatter formatterName) testPlugins fp act
161-
case Map.lookup uri changes of
162-
Just (List val) -> val `shouldBe` e3
163-
Nothing -> fail "No Change found"
151+
expectHsImportResult formatterName fp uri e3 act
164152

165153
it "import-list constructor formats" $ do
166154
fp <- makeAbsolute codeActionImportList
167155
let uri = filePathToUri fp
168156
let act = importModule (ImportParams uri (Complex (Import $ AllOf "Maybe")) "Data.Maybe")
169-
170-
IdeResultOk (WorkspaceEdit (Just changes) _) <- runSingle' (setFormatter formatterName) testPlugins fp act
171-
case Map.lookup uri changes of
172-
Just (List val) -> val `shouldBe` e4
173-
Nothing -> fail "No Change found"
157+
expectHsImportResult formatterName fp uri e4 act
174158

175159
it "import-list constructor formats" $ do
176160
fp <- makeAbsolute codeActionImportList
177161
let uri = filePathToUri fp
178162
let act = importModule (ImportParams uri (Complex (Import $ OneOf "Maybe" "Nothing")) "Data.Maybe")
179-
180-
IdeResultOk (WorkspaceEdit (Just changes) _) <- runSingle' (setFormatter formatterName) testPlugins fp act
181-
case Map.lookup uri changes of
182-
Just (List val) -> val `shouldBe` e5
183-
Nothing -> fail "No Change found"
163+
expectHsImportResult formatterName fp uri e5 act
184164

185165
it "import-list infix function formats" $ do
186166
fp <- makeAbsolute codeActionImportList
187167
let uri = filePathToUri fp
188168
let act = importModule (ImportParams uri (Complex (Import $ Only "$")) "Data.Function")
189-
190-
IdeResultOk (WorkspaceEdit (Just changes) _) <- runSingle' (setFormatter formatterName) testPlugins fp act
191-
case Map.lookup uri changes of
192-
Just (List val) -> val `shouldBe` e6
193-
Nothing -> fail "No Change found"
169+
expectHsImportResult formatterName fp uri e6 act
194170

195171
it "import-list with existing entry formats" $ do
196172
fp <- makeAbsolute codeActionBigImportList
197173
let uri = filePathToUri fp
198174
let act = importModule (ImportParams uri (Complex (Import $ Only "hPutStrLn")) "System.IO")
199-
200-
IdeResultOk (WorkspaceEdit (Just changes) _) <- runSingle' (setFormatter formatterName) testPlugins fp act
201-
case Map.lookup uri changes of
202-
Just (List val) -> val `shouldBe` e7
203-
Nothing -> fail "No Change found"
175+
expectHsImportResult formatterName fp uri e7 act
204176

205177
it "import-list with forced overflow formats" $ do
206178
fp <- makeAbsolute codeActionBigImportList
207179
let uri = filePathToUri fp
208180
let act = importModule (ImportParams uri (Complex (Import $ Only "reverse")) "Data.List")
209-
210-
IdeResultOk (WorkspaceEdit (Just changes) _) <- runSingle' (setFormatter formatterName) testPlugins fp act
211-
case Map.lookup uri changes of
212-
Just (List val) -> val `shouldBe` e8
213-
Nothing -> fail "No Change found"
181+
expectHsImportResult formatterName fp uri e8 act
214182

215183

216184
-- Silence warnings
@@ -221,4 +189,11 @@ hsImportSpecRunner formatter args =
221189
++ show (length args)
222190

223191
setFormatter :: T.Text -> Config.Config -> Config.Config
224-
setFormatter formatterName cfg = cfg { Config.formattingProvider = formatterName }
192+
setFormatter formatterName cfg = cfg { Config.formattingProvider = formatterName }
193+
194+
expectHsImportResult :: T.Text -> FilePath -> Uri -> [TextEdit] -> IdeGhcM (IdeResult WorkspaceEdit) -> IO ()
195+
expectHsImportResult formatterName fp uri expectedChanges act = do
196+
IdeResultOk (WorkspaceEdit (Just changes) _) <- runSingle' (setFormatter formatterName) testPlugins fp act
197+
case Map.lookup uri changes of
198+
Just (List val) -> val `shouldBe` expectedChanges
199+
Nothing -> fail "No Change found"

0 commit comments

Comments
 (0)