@@ -15,9 +15,10 @@ limitations under the License.
15
15
*/
16
16
17
17
import EditorModel from "../../src/editor/model" ;
18
- import { createPartCreator , createRenderer , isDocumentPosition } from "./mock" ;
18
+ import { createPartCreator , createRenderer } from "./mock" ;
19
19
import DocumentOffset from "../../src/editor/offset" ;
20
20
import { PillPart } from "../../src/editor/parts" ;
21
+ import DocumentPosition from "../../src/editor/position" ;
21
22
22
23
describe ( "editor/model" , function ( ) {
23
24
describe ( "plain text manipulation" , function ( ) {
@@ -26,10 +27,8 @@ describe("editor/model", function () {
26
27
const model = new EditorModel ( [ ] , createPartCreator ( ) , renderer ) ;
27
28
model . update ( "hello" , "insertText" , new DocumentOffset ( 5 , true ) ) ;
28
29
expect ( renderer . count ) . toBe ( 1 ) ;
29
- if ( isDocumentPosition ( renderer . caret ) ) {
30
- expect ( renderer . caret . index ) . toBe ( 0 ) ;
31
- expect ( renderer . caret . offset ) . toBe ( 5 ) ;
32
- }
30
+ expect ( ( renderer . caret as DocumentPosition ) . index ) . toBe ( 0 ) ;
31
+ expect ( ( renderer . caret as DocumentPosition ) . offset ) . toBe ( 5 ) ;
33
32
expect ( model . parts . length ) . toBe ( 1 ) ;
34
33
expect ( model . parts [ 0 ] . type ) . toBe ( "plain" ) ;
35
34
expect ( model . parts [ 0 ] . text ) . toBe ( "hello" ) ;
@@ -40,10 +39,8 @@ describe("editor/model", function () {
40
39
const model = new EditorModel ( [ pc . plain ( "hello" ) ] , pc , renderer ) ;
41
40
model . update ( "hello world" , "insertText" , new DocumentOffset ( 11 , true ) ) ;
42
41
expect ( renderer . count ) . toBe ( 1 ) ;
43
- if ( isDocumentPosition ( renderer . caret ) ) {
44
- expect ( renderer . caret . index ) . toBe ( 0 ) ;
45
- expect ( renderer . caret . offset ) . toBe ( 11 ) ;
46
- }
42
+ expect ( ( renderer . caret as DocumentPosition ) . index ) . toBe ( 0 ) ;
43
+ expect ( ( renderer . caret as DocumentPosition ) . offset ) . toBe ( 11 ) ;
47
44
expect ( model . parts . length ) . toBe ( 1 ) ;
48
45
expect ( model . parts [ 0 ] . type ) . toBe ( "plain" ) ;
49
46
expect ( model . parts [ 0 ] . text ) . toBe ( "hello world" ) ;
@@ -54,10 +51,8 @@ describe("editor/model", function () {
54
51
const model = new EditorModel ( [ pc . plain ( "world" ) ] , pc , renderer ) ;
55
52
model . update ( "hello world" , "insertText" , new DocumentOffset ( 6 , false ) ) ;
56
53
expect ( renderer . count ) . toBe ( 1 ) ;
57
- if ( isDocumentPosition ( renderer . caret ) ) {
58
- expect ( renderer . caret . index ) . toBe ( 0 ) ;
59
- expect ( renderer . caret . offset ) . toBe ( 6 ) ;
60
- }
54
+ expect ( ( renderer . caret as DocumentPosition ) . index ) . toBe ( 0 ) ;
55
+ expect ( ( renderer . caret as DocumentPosition ) . offset ) . toBe ( 6 ) ;
61
56
expect ( model . parts . length ) . toBe ( 1 ) ;
62
57
expect ( model . parts [ 0 ] . type ) . toBe ( "plain" ) ;
63
58
expect ( model . parts [ 0 ] . text ) . toBe ( "hello world" ) ;
@@ -70,10 +65,8 @@ describe("editor/model", function () {
70
65
const model = new EditorModel ( [ pc . plain ( "hello" ) ] , pc , renderer ) ;
71
66
model . update ( "hello\n" , "insertText" , new DocumentOffset ( 6 , true ) ) ;
72
67
expect ( renderer . count ) . toBe ( 1 ) ;
73
- if ( isDocumentPosition ( renderer . caret ) ) {
74
- expect ( renderer . caret . index ) . toBe ( 1 ) ;
75
- expect ( renderer . caret . offset ) . toBe ( 1 ) ;
76
- }
68
+ expect ( ( renderer . caret as DocumentPosition ) . index ) . toBe ( 1 ) ;
69
+ expect ( ( renderer . caret as DocumentPosition ) . offset ) . toBe ( 1 ) ;
77
70
expect ( model . parts . length ) . toBe ( 2 ) ;
78
71
expect ( model . parts [ 0 ] . type ) . toBe ( "plain" ) ;
79
72
expect ( model . parts [ 0 ] . text ) . toBe ( "hello" ) ;
@@ -86,10 +79,8 @@ describe("editor/model", function () {
86
79
const model = new EditorModel ( [ pc . plain ( "hello" ) ] , pc , renderer ) ;
87
80
model . update ( "hello\n\n\nworld!" , "insertText" , new DocumentOffset ( 14 , true ) ) ;
88
81
expect ( renderer . count ) . toBe ( 1 ) ;
89
- if ( isDocumentPosition ( renderer . caret ) ) {
90
- expect ( renderer . caret . index ) . toBe ( 4 ) ;
91
- expect ( renderer . caret . offset ) . toBe ( 6 ) ;
92
- }
82
+ expect ( ( renderer . caret as DocumentPosition ) . index ) . toBe ( 4 ) ;
83
+ expect ( ( renderer . caret as DocumentPosition ) . offset ) . toBe ( 6 ) ;
93
84
expect ( model . parts . length ) . toBe ( 5 ) ;
94
85
expect ( model . parts [ 0 ] . type ) . toBe ( "plain" ) ;
95
86
expect ( model . parts [ 0 ] . text ) . toBe ( "hello" ) ;
@@ -112,10 +103,8 @@ describe("editor/model", function () {
112
103
) ;
113
104
model . update ( "hello\nwarm\nworld" , "insertText" , new DocumentOffset ( 10 , true ) ) ;
114
105
expect ( renderer . count ) . toBe ( 1 ) ;
115
- if ( isDocumentPosition ( renderer . caret ) ) {
116
- expect ( renderer . caret . index ) . toBe ( 2 ) ;
117
- expect ( renderer . caret . offset ) . toBe ( 4 ) ;
118
- }
106
+ expect ( ( renderer . caret as DocumentPosition ) . index ) . toBe ( 2 ) ;
107
+ expect ( ( renderer . caret as DocumentPosition ) . offset ) . toBe ( 4 ) ;
119
108
expect ( model . parts . length ) . toBe ( 5 ) ;
120
109
expect ( model . parts [ 0 ] . type ) . toBe ( "plain" ) ;
121
110
expect ( model . parts [ 0 ] . text ) . toBe ( "hello" ) ;
@@ -135,10 +124,8 @@ describe("editor/model", function () {
135
124
const pc = createPartCreator ( ) ;
136
125
const model = new EditorModel ( [ pc . plain ( "try " ) , pc . roomPill ( "#someroom" ) ] , pc , renderer ) ;
137
126
model . update ( "try foo#someroom" , "insertText" , new DocumentOffset ( 7 , false ) ) ;
138
- if ( isDocumentPosition ( renderer . caret ) ) {
139
- expect ( renderer . caret . index ) . toBe ( 0 ) ;
140
- expect ( renderer . caret . offset ) . toBe ( 7 ) ;
141
- }
127
+ expect ( ( renderer . caret as DocumentPosition ) . index ) . toBe ( 0 ) ;
128
+ expect ( ( renderer . caret as DocumentPosition ) . offset ) . toBe ( 7 ) ;
142
129
expect ( model . parts . length ) . toBe ( 2 ) ;
143
130
expect ( model . parts [ 0 ] . type ) . toBe ( "plain" ) ;
144
131
expect ( model . parts [ 0 ] . text ) . toBe ( "try foo" ) ;
@@ -150,10 +137,8 @@ describe("editor/model", function () {
150
137
const pc = createPartCreator ( ) ;
151
138
const model = new EditorModel ( [ pc . plain ( "try " ) , pc . roomPill ( "#someroom" ) , pc . plain ( "?" ) ] , pc , renderer ) ;
152
139
model . update ( "try #some perhapsroom?" , "insertText" , new DocumentOffset ( 17 , false ) ) ;
153
- if ( isDocumentPosition ( renderer . caret ) ) {
154
- expect ( renderer . caret . index ) . toBe ( 2 ) ;
155
- expect ( renderer . caret . offset ) . toBe ( 8 ) ;
156
- }
140
+ expect ( ( renderer . caret as DocumentPosition ) . index ) . toBe ( 2 ) ;
141
+ expect ( ( renderer . caret as DocumentPosition ) . offset ) . toBe ( 8 ) ;
157
142
expect ( model . parts . length ) . toBe ( 3 ) ;
158
143
expect ( model . parts [ 0 ] . type ) . toBe ( "plain" ) ;
159
144
expect ( model . parts [ 0 ] . text ) . toBe ( "try " ) ;
@@ -168,10 +153,8 @@ describe("editor/model", function () {
168
153
const model = new EditorModel ( [ pc . roomPill ( "#someroom" ) ] , pc , renderer ) ;
169
154
model . update ( "#someroo" , "deleteContentBackward" , new DocumentOffset ( 8 , true ) ) ;
170
155
expect ( renderer . count ) . toBe ( 1 ) ;
171
- if ( isDocumentPosition ( renderer . caret ) ) {
172
- expect ( renderer . caret . index ) . toBe ( - 1 ) ;
173
- expect ( renderer . caret . offset ) . toBe ( 0 ) ;
174
- }
156
+ expect ( ( renderer . caret as DocumentPosition ) . index ) . toBe ( - 1 ) ;
157
+ expect ( ( renderer . caret as DocumentPosition ) . offset ) . toBe ( 0 ) ;
175
158
expect ( model . parts . length ) . toBe ( 0 ) ;
176
159
} ) ;
177
160
it ( "remove non-editable part with delete" , function ( ) {
@@ -180,10 +163,8 @@ describe("editor/model", function () {
180
163
const model = new EditorModel ( [ pc . roomPill ( "#someroom" ) ] , pc , renderer ) ;
181
164
model . update ( "someroom" , "deleteContentForward" , new DocumentOffset ( 0 , false ) ) ;
182
165
expect ( renderer . count ) . toBe ( 1 ) ;
183
- if ( isDocumentPosition ( renderer . caret ) ) {
184
- expect ( renderer . caret . index ) . toBe ( - 1 ) ;
185
- expect ( renderer . caret . offset ) . toBe ( 0 ) ;
186
- }
166
+ expect ( ( renderer . caret as DocumentPosition ) . index ) . toBe ( - 1 ) ;
167
+ expect ( ( renderer . caret as DocumentPosition ) . offset ) . toBe ( 0 ) ;
187
168
expect ( model . parts . length ) . toBe ( 0 ) ;
188
169
} ) ;
189
170
} ) ;
@@ -196,10 +177,8 @@ describe("editor/model", function () {
196
177
model . update ( "hello @a" , "insertText" , new DocumentOffset ( 8 , true ) ) ;
197
178
198
179
expect ( renderer . count ) . toBe ( 1 ) ;
199
- if ( isDocumentPosition ( renderer . caret ) ) {
200
- expect ( renderer . caret . index ) . toBe ( 1 ) ;
201
- expect ( renderer . caret . offset ) . toBe ( 2 ) ;
202
- }
180
+ expect ( ( renderer . caret as DocumentPosition ) . index ) . toBe ( 1 ) ;
181
+ expect ( ( renderer . caret as DocumentPosition ) . offset ) . toBe ( 2 ) ;
203
182
expect ( model . parts . length ) . toBe ( 2 ) ;
204
183
expect ( model . parts [ 0 ] . type ) . toBe ( "plain" ) ;
205
184
expect ( model . parts [ 0 ] . text ) . toBe ( "hello " ) ;
@@ -211,10 +190,8 @@ describe("editor/model", function () {
211
190
model . autoComplete . tryComplete ( ) ; // see MockAutoComplete
212
191
213
192
expect ( renderer . count ) . toBe ( 2 ) ;
214
- if ( isDocumentPosition ( renderer . caret ) ) {
215
- expect ( renderer . caret . index ) . toBe ( 1 ) ;
216
- expect ( renderer . caret . offset ) . toBe ( 5 ) ;
217
- }
193
+ expect ( ( renderer . caret as DocumentPosition ) . index ) . toBe ( 1 ) ;
194
+ expect ( ( renderer . caret as DocumentPosition ) . offset ) . toBe ( 5 ) ;
218
195
expect ( model . parts . length ) . toBe ( 2 ) ;
219
196
expect ( model . parts [ 0 ] . type ) . toBe ( "plain" ) ;
220
197
expect ( model . parts [ 0 ] . text ) . toBe ( "hello " ) ;
@@ -230,10 +207,8 @@ describe("editor/model", function () {
230
207
model . update ( "hello #r" , "insertText" , new DocumentOffset ( 8 , true ) ) ;
231
208
232
209
expect ( renderer . count ) . toBe ( 1 ) ;
233
- if ( isDocumentPosition ( renderer . caret ) ) {
234
- expect ( renderer . caret . index ) . toBe ( 1 ) ;
235
- expect ( renderer . caret . offset ) . toBe ( 2 ) ;
236
- }
210
+ expect ( ( renderer . caret as DocumentPosition ) . index ) . toBe ( 1 ) ;
211
+ expect ( ( renderer . caret as DocumentPosition ) . offset ) . toBe ( 2 ) ;
237
212
expect ( model . parts . length ) . toBe ( 2 ) ;
238
213
expect ( model . parts [ 0 ] . type ) . toBe ( "plain" ) ;
239
214
expect ( model . parts [ 0 ] . text ) . toBe ( "hello " ) ;
@@ -245,10 +220,8 @@ describe("editor/model", function () {
245
220
model . autoComplete . tryComplete ( ) ; // see MockAutoComplete
246
221
247
222
expect ( renderer . count ) . toBe ( 2 ) ;
248
- if ( isDocumentPosition ( renderer . caret ) ) {
249
- expect ( renderer . caret . index ) . toBe ( 1 ) ;
250
- expect ( renderer . caret . offset ) . toBe ( 9 ) ;
251
- }
223
+ expect ( ( renderer . caret as DocumentPosition ) . index ) . toBe ( 1 ) ;
224
+ expect ( ( renderer . caret as DocumentPosition ) . offset ) . toBe ( 9 ) ;
252
225
expect ( model . parts . length ) . toBe ( 2 ) ;
253
226
expect ( model . parts [ 0 ] . type ) . toBe ( "plain" ) ;
254
227
expect ( model . parts [ 0 ] . text ) . toBe ( "hello " ) ;
@@ -268,10 +241,8 @@ describe("editor/model", function () {
268
241
model . update ( "hello #riot-dev!!" , "insertText" , new DocumentOffset ( 17 , true ) ) ;
269
242
270
243
expect ( renderer . count ) . toBe ( 3 ) ;
271
- if ( isDocumentPosition ( renderer . caret ) ) {
272
- expect ( renderer . caret . index ) . toBe ( 2 ) ;
273
- expect ( renderer . caret . offset ) . toBe ( 2 ) ;
274
- }
244
+ expect ( ( renderer . caret as DocumentPosition ) . index ) . toBe ( 2 ) ;
245
+ expect ( ( renderer . caret as DocumentPosition ) . offset ) . toBe ( 2 ) ;
275
246
expect ( model . parts . length ) . toBe ( 3 ) ;
276
247
expect ( model . parts [ 0 ] . type ) . toBe ( "plain" ) ;
277
248
expect ( model . parts [ 0 ] . text ) . toBe ( "hello " ) ;
@@ -289,10 +260,8 @@ describe("editor/model", function () {
289
260
model . update ( "try #define" , "insertFromPaste" , new DocumentOffset ( 11 , true ) ) ;
290
261
291
262
expect ( model . autoComplete ) . toBeFalsy ( ) ;
292
- if ( isDocumentPosition ( renderer . caret ) ) {
293
- expect ( renderer . caret . index ) . toBe ( 0 ) ;
294
- expect ( renderer . caret . offset ) . toBe ( 11 ) ;
295
- }
263
+ expect ( ( renderer . caret as DocumentPosition ) . index ) . toBe ( 0 ) ;
264
+ expect ( ( renderer . caret as DocumentPosition ) . offset ) . toBe ( 11 ) ;
296
265
expect ( model . parts . length ) . toBe ( 1 ) ;
297
266
expect ( model . parts [ 0 ] . type ) . toBe ( "plain" ) ;
298
267
expect ( model . parts [ 0 ] . text ) . toBe ( "try #define" ) ;
@@ -306,10 +275,8 @@ describe("editor/model", function () {
306
275
model . update ( "try #define" , "insertFromDrop" , new DocumentOffset ( 11 , true ) ) ;
307
276
308
277
expect ( model . autoComplete ) . toBeFalsy ( ) ;
309
- if ( isDocumentPosition ( renderer . caret ) ) {
310
- expect ( renderer . caret . index ) . toBe ( 0 ) ;
311
- expect ( renderer . caret . offset ) . toBe ( 11 ) ;
312
- }
278
+ expect ( ( renderer . caret as DocumentPosition ) . index ) . toBe ( 0 ) ;
279
+ expect ( ( renderer . caret as DocumentPosition ) . offset ) . toBe ( 11 ) ;
313
280
expect ( model . parts . length ) . toBe ( 1 ) ;
314
281
expect ( model . parts [ 0 ] . type ) . toBe ( "plain" ) ;
315
282
expect ( model . parts [ 0 ] . text ) . toBe ( "try #define" ) ;
0 commit comments