@@ -233,6 +233,43 @@ void sharedTests(Future<TestProcess> runSass(Iterable<String> arguments)) {
233233 .file ("out.css" , equalsIgnoringWhitespace ("x { y: z; }" ))
234234 .validate ();
235235 });
236+
237+ // Regression test for #550
238+ test ("with an error that's later fixed" , () async {
239+ await d.file ("_other.scss" , "a {b: c}" ).create ();
240+ await d.file ("test.scss" , "@import 'other'" ).create ();
241+
242+ var sass = await watch (["test.scss:out.css" ]);
243+ await expectLater (
244+ sass.stdout, emits ('Compiled test.scss to out.css.' ));
245+ await expectLater (sass.stdout, _watchingForChanges);
246+ await tickIfPoll ();
247+
248+ await d.file ("_other.scss" , "a {b: }" ).create ();
249+ await expectLater (
250+ sass.stderr, emits ('Error: Expected expression.' ));
251+ await expectLater (
252+ sass.stderr, emitsThrough (contains ('test.scss 1:9' )));
253+ await tickIfPoll ();
254+
255+ await d.file ("_other.scss" , "q {r: s}" ).create ();
256+ await expectLater (
257+ sass.stdout, emits ('Compiled test.scss to out.css.' ));
258+ await tick;
259+ await d
260+ .file ("out.css" , equalsIgnoringWhitespace ("q { r: s; }" ))
261+ .validate ();
262+
263+ await d.file ("_other.scss" , "x {y: z}" ).create ();
264+ await expectLater (
265+ sass.stdout, emits ('Compiled test.scss to out.css.' ));
266+ await tick;
267+ await d
268+ .file ("out.css" , equalsIgnoringWhitespace ("x { y: z; }" ))
269+ .validate ();
270+
271+ await sass.kill ();
272+ });
236273 });
237274
238275 test ("when it's deleted and re-added" , () async {
0 commit comments