Skip to content
This repository was archived by the owner on Dec 15, 2022. It is now read-only.

Commit d0a0732

Browse files
authored
Merge pull request #289 from Ingramz/tab-stop-regression-tests
Add regression tests for tab stops at ends of snippets
2 parents 0770432 + 5293428 commit d0a0732

File tree

1 file changed

+42
-9
lines changed

1 file changed

+42
-9
lines changed

spec/snippets-spec.coffee

Lines changed: 42 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,14 @@ describe "Snippets extension", ->
165165
${2:placeholder ending second line}
166166
"""
167167

168+
"tab stops at beginning and then end of snippet":
169+
prefix: "t6b"
170+
body: "$1expanded$0"
171+
172+
"tab stops at end and then beginning of snippet":
173+
prefix: "t6c"
174+
body: "$0expanded$1"
175+
168176
"contains empty lines":
169177
prefix: "t7"
170178
body: """
@@ -585,15 +593,40 @@ describe "Snippets extension", ->
585593
expect(editor.getSelectedBufferRange()).toEqual [[0, 0], [0, 4]]
586594

587595
describe "when a previous snippet expansion has just been undone", ->
588-
it "expands the snippet based on the current prefix rather than jumping to the old snippet's tab stop", ->
589-
editor.insertText 't6\n'
590-
editor.setCursorBufferPosition [0, 2]
591-
simulateTabKeyEvent()
592-
expect(editor.lineTextForBufferRow(0)).toBe "first line"
593-
editor.undo()
594-
expect(editor.lineTextForBufferRow(0)).toBe "t6"
595-
simulateTabKeyEvent()
596-
expect(editor.lineTextForBufferRow(0)).toBe "first line"
596+
describe "when the tab stops appear in the middle of the snippet", ->
597+
it "expands the snippet based on the current prefix rather than jumping to the old snippet's tab stop", ->
598+
editor.insertText 't6\n'
599+
editor.setCursorBufferPosition [0, 2]
600+
simulateTabKeyEvent()
601+
expect(editor.lineTextForBufferRow(0)).toBe "first line"
602+
editor.undo()
603+
expect(editor.lineTextForBufferRow(0)).toBe "t6"
604+
simulateTabKeyEvent()
605+
expect(editor.lineTextForBufferRow(0)).toBe "first line"
606+
607+
describe "when the tab stops appear at the beginning and then the end of snippet", ->
608+
it "expands the snippet based on the current prefix rather than jumping to the old snippet's tab stop", ->
609+
editor.insertText 't6b\n'
610+
editor.setCursorBufferPosition [0, 3]
611+
simulateTabKeyEvent()
612+
expect(editor.lineTextForBufferRow(0)).toBe "expanded"
613+
editor.undo()
614+
expect(editor.lineTextForBufferRow(0)).toBe "t6b"
615+
simulateTabKeyEvent()
616+
expect(editor.lineTextForBufferRow(0)).toBe "expanded"
617+
expect(editor.getCursorBufferPosition()).toEqual([0, 0])
618+
619+
describe "when the tab stops appear at the end and then the beginning of snippet", ->
620+
it "expands the snippet based on the current prefix rather than jumping to the old snippet's tab stop", ->
621+
editor.insertText 't6c\n'
622+
editor.setCursorBufferPosition [0, 3]
623+
simulateTabKeyEvent()
624+
expect(editor.lineTextForBufferRow(0)).toBe "expanded"
625+
editor.undo()
626+
expect(editor.lineTextForBufferRow(0)).toBe "t6c"
627+
simulateTabKeyEvent()
628+
expect(editor.lineTextForBufferRow(0)).toBe "expanded"
629+
expect(editor.getCursorBufferPosition()).toEqual([0, 8])
597630

598631
describe "when the prefix contains non-word characters", ->
599632
it "selects the non-word characters as part of the prefix", ->

0 commit comments

Comments
 (0)