From c7fcbb9f6b69b6152bcc00a32aa7f7bbeda4fb30 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Tue, 9 Dec 2014 17:29:52 -0800 Subject: [PATCH] Add incremental test. --- tests/cases/unittests/incrementalParser.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tests/cases/unittests/incrementalParser.ts b/tests/cases/unittests/incrementalParser.ts index 2ff47f52825..5ed3103e346 100644 --- a/tests/cases/unittests/incrementalParser.ts +++ b/tests/cases/unittests/incrementalParser.ts @@ -147,6 +147,18 @@ module ts { } } + function deleteCode(source: string, index: number, toDelete: string) { + var repeat = toDelete.length; + + for (var i = 0; i < repeat; i++) { + var oldText = ScriptSnapshot.fromString(source); + var newTextAndChange = withDelete(oldText, index, 1); + compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); + + source = newTextAndChange.text.getText(0, newTextAndChange.text.getLength()); + } + } + describe('Incremental',() => { it('Inserting into method',() => { var source = "class C {\r\n" + @@ -418,5 +430,14 @@ module ts { compareTrees(oldText, newTextAndChange.text, newTextAndChange.textChangeRange, -1); }); + + // Simulated typing tests. + + it('Type extends clause 1',() => { + var source = "interface IFoo { }\r\ninterface Array extends IFoo { }"; + + var index = source.indexOf('extends'); + deleteCode(source, index, "extends IFoo"); + }); }); } \ No newline at end of file