@@ -136,81 +136,49 @@ hsImportSpecRunner formatterName [e1, e2, e3, e4, e5, e6, e7, e8] = do
136
136
fp <- makeAbsolute codeActionImportList
137
137
let uri = filePathToUri fp
138
138
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
144
140
145
141
it " import-list formats" $ do
146
142
fp <- makeAbsolute codeActionImportList
147
143
let uri = filePathToUri fp
148
144
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
154
146
155
147
it " import-list type formats" $ do
156
148
fp <- makeAbsolute codeActionImportList
157
149
let uri = filePathToUri fp
158
150
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
164
152
165
153
it " import-list constructor formats" $ do
166
154
fp <- makeAbsolute codeActionImportList
167
155
let uri = filePathToUri fp
168
156
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
174
158
175
159
it " import-list constructor formats" $ do
176
160
fp <- makeAbsolute codeActionImportList
177
161
let uri = filePathToUri fp
178
162
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
184
164
185
165
it " import-list infix function formats" $ do
186
166
fp <- makeAbsolute codeActionImportList
187
167
let uri = filePathToUri fp
188
168
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
194
170
195
171
it " import-list with existing entry formats" $ do
196
172
fp <- makeAbsolute codeActionBigImportList
197
173
let uri = filePathToUri fp
198
174
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
204
176
205
177
it " import-list with forced overflow formats" $ do
206
178
fp <- makeAbsolute codeActionBigImportList
207
179
let uri = filePathToUri fp
208
180
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
214
182
215
183
216
184
-- Silence warnings
@@ -221,4 +189,11 @@ hsImportSpecRunner formatter args =
221
189
++ show (length args)
222
190
223
191
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