11import { assert } from 'chai' ;
2- import { insertText } from '../src/TextHelper' ;
2+ import { insertText , getSurroundingWord } from '../src/TextHelper' ;
33
44describe ( "TextHelperSpec.js" , function ( ) {
55 describe ( 'insertText' , function ( ) {
@@ -20,5 +20,88 @@ describe("TextHelperSpec.js", function () {
2020 var text = insertText ( 'bob went to' , ' school' , 20 ) ;
2121 assert . strictEqual ( text , 'bob went to school' ) ;
2222 } ) ;
23- } )
23+ } ) ;
24+
25+ describe ( 'getSurroundingWord' , function ( ) {
26+ // tests without line breaks
27+ it ( 'Basic usage' , function ( ) {
28+ var result = getSurroundingWord ( 'bob went to school' , 5 ) ;
29+ assert . strictEqual ( result . word , 'went' ) ;
30+ assert . strictEqual ( result . leftIndex , 4 ) ;
31+ assert . strictEqual ( result . rightIndex , 8 ) ;
32+ } ) ;
33+
34+ it ( 'Word edge to the right' , function ( ) {
35+ var result = getSurroundingWord ( 'bob went to school' , 8 ) ;
36+ assert . strictEqual ( result . word , 'went' ) ;
37+ assert . strictEqual ( result . leftIndex , 4 ) ;
38+ assert . strictEqual ( result . rightIndex , 8 ) ;
39+ } ) ;
40+
41+ it ( 'Word edge to the left' , function ( ) {
42+ var result = getSurroundingWord ( 'bob went to school' , 4 ) ;
43+ assert . strictEqual ( result . word , 'went' ) ;
44+ assert . strictEqual ( result . leftIndex , 4 ) ;
45+ assert . strictEqual ( result . rightIndex , 8 ) ;
46+ } ) ;
47+
48+ it ( 'text beginning' , function ( ) {
49+ var result = getSurroundingWord ( 'bob went to school' , 0 ) ;
50+ assert . strictEqual ( result . word , 'bob' ) ;
51+ assert . strictEqual ( result . leftIndex , 0 ) ;
52+ assert . strictEqual ( result . rightIndex , 3 ) ;
53+ } ) ;
54+
55+ it ( 'text ending' , function ( ) {
56+ var result = getSurroundingWord ( 'bob went to school' , 18 ) ;
57+ assert . strictEqual ( result . word , 'school' ) ;
58+ assert . strictEqual ( result . leftIndex , 12 ) ;
59+ assert . strictEqual ( result . rightIndex , 18 ) ;
60+ } ) ;
61+
62+ // tests with line breaks
63+ it ( 'Basic usage with line breaks' , function ( ) {
64+ var result = getSurroundingWord ( 'bob\nwent\nto school' , 5 ) ;
65+ assert . strictEqual ( result . word , 'went' ) ;
66+ assert . strictEqual ( result . leftIndex , 4 ) ;
67+ assert . strictEqual ( result . rightIndex , 8 ) ;
68+ } ) ;
69+
70+ it ( 'text ending with line break' , function ( ) {
71+ var result = getSurroundingWord ( 'bob went to school\n' , 18 ) ;
72+ assert . strictEqual ( result . word , 'school' ) ;
73+ assert . strictEqual ( result . leftIndex , 12 ) ;
74+ assert . strictEqual ( result . rightIndex , 18 ) ;
75+ } ) ;
76+
77+ it ( 'text beginning with line break' , function ( ) {
78+ var result = getSurroundingWord ( '\nbob went to school' , 1 ) ;
79+ assert . strictEqual ( result . word , 'bob' ) ;
80+ assert . strictEqual ( result . leftIndex , 1 ) ;
81+ assert . strictEqual ( result . rightIndex , 4 ) ;
82+ } ) ;
83+
84+ // edge cases
85+ it ( 'within spaces' , function ( ) {
86+ var result = getSurroundingWord ( ' ' , 1 ) ;
87+ assert . strictEqual ( result . word , '' ) ;
88+ assert . strictEqual ( result . leftIndex , 1 ) ;
89+ assert . strictEqual ( result . rightIndex , 1 ) ;
90+ } ) ;
91+
92+ it ( 'within spaces 2' , function ( ) {
93+ var result = getSurroundingWord ( ' ' , 2 ) ;
94+ assert . strictEqual ( result . word , '' ) ;
95+ assert . strictEqual ( result . leftIndex , 2 ) ;
96+ assert . strictEqual ( result . rightIndex , 2 ) ;
97+ } ) ;
98+
99+ it ( 'within line-breaks' , function ( ) {
100+ var result = getSurroundingWord ( '\n\n\n' , 1 ) ;
101+ assert . strictEqual ( result . word , '' ) ;
102+ assert . strictEqual ( result . leftIndex , 1 ) ;
103+ assert . strictEqual ( result . rightIndex , 1 ) ;
104+ } ) ;
105+ } ) ;
106+
24107} ) ;
0 commit comments