@@ -150,7 +150,9 @@ test.describe("type word", () => {
150
150
151
151
await editable . focus ( ) ;
152
152
153
- expect ( await getSelection ( editable , true ) ) . toEqual ( createSelection ( ) ) ;
153
+ expect ( await getSelection ( editable , { isSingleline : true } ) ) . toEqual (
154
+ createSelection ( )
155
+ ) ;
154
156
155
157
// Input
156
158
const text = "test" ;
@@ -159,7 +161,7 @@ test.describe("type word", () => {
159
161
insertAt ( initialValue , text , [ 0 , 0 ] )
160
162
) ;
161
163
const textLength = text . length ;
162
- expect ( await getSelection ( editable , true ) ) . toEqual (
164
+ expect ( await getSelection ( editable , { isSingleline : true } ) ) . toEqual (
163
165
createSelection ( { offset : textLength } )
164
166
) ;
165
167
} ) ;
@@ -172,11 +174,13 @@ test.describe("type word", () => {
172
174
173
175
await editable . focus ( ) ;
174
176
175
- expect ( await getSelection ( editable , true ) ) . toEqual ( createSelection ( ) ) ;
177
+ expect ( await getSelection ( editable , { isSingleline : true } ) ) . toEqual (
178
+ createSelection ( )
179
+ ) ;
176
180
177
181
// Move caret
178
182
await page . keyboard . press ( "ArrowRight" ) ;
179
- expect ( await getSelection ( editable , true ) ) . toEqual (
183
+ expect ( await getSelection ( editable , { isSingleline : true } ) ) . toEqual (
180
184
createSelection ( { offset : 1 } )
181
185
) ;
182
186
@@ -187,7 +191,7 @@ test.describe("type word", () => {
187
191
insertAt ( initialValue , text , [ 0 , 1 ] )
188
192
) ;
189
193
const textLength = text . length ;
190
- expect ( await getSelection ( editable , true ) ) . toEqual (
194
+ expect ( await getSelection ( editable , { isSingleline : true } ) ) . toEqual (
191
195
createSelection ( { offset : 1 + textLength } )
192
196
) ;
193
197
} ) ;
@@ -202,7 +206,9 @@ test.describe("type word", () => {
202
206
203
207
await editable . focus ( ) ;
204
208
205
- expect ( await getSelection ( editable , true ) ) . toEqual ( createSelection ( ) ) ;
209
+ expect ( await getSelection ( editable , { isSingleline : true } ) ) . toEqual (
210
+ createSelection ( )
211
+ ) ;
206
212
207
213
const client = await page . context ( ) . newCDPSession ( page ) ;
208
214
await client . send ( "Input.imeSetComposition" , {
@@ -223,11 +229,98 @@ test.describe("type word", () => {
223
229
insertAt ( initialValue , "😂😭" , [ 0 , 0 ] )
224
230
) ;
225
231
const textLength = "😂😭" . length ;
226
- expect ( await getSelection ( editable , true ) ) . toEqual (
232
+ expect ( await getSelection ( editable , { isSingleline : true } ) ) . toEqual (
227
233
createSelection ( { offset : textLength } )
228
234
) ;
229
235
} ) ;
230
236
} ) ;
237
+
238
+ test . describe ( "span as block" , ( ) => {
239
+ test ( "on origin" , async ( { page } ) => {
240
+ await page . goto ( storyUrl ( "basics-plain--span-as-block" ) ) ;
241
+
242
+ const editable = await getEditable ( page ) ;
243
+ const initialValue = await getText ( editable , { blockTag : "span" } ) ;
244
+
245
+ await editable . focus ( ) ;
246
+
247
+ expect ( await getSelection ( editable , { blockTag : "span" } ) ) . toEqual (
248
+ createSelection ( )
249
+ ) ;
250
+
251
+ // Input
252
+ const text = "test" ;
253
+ await input ( editable , text ) ;
254
+ expect ( await getText ( editable , { blockTag : "span" } ) ) . toEqual (
255
+ insertAt ( initialValue , text , [ 0 , 0 ] )
256
+ ) ;
257
+ const textLength = text . length ;
258
+ expect ( await getSelection ( editable , { blockTag : "span" } ) ) . toEqual (
259
+ createSelection ( { offset : textLength } )
260
+ ) ;
261
+ } ) ;
262
+
263
+ test ( "on 1st row" , async ( { page } ) => {
264
+ await page . goto ( storyUrl ( "basics-plain--span-as-block" ) ) ;
265
+
266
+ const editable = await getEditable ( page ) ;
267
+ const initialValue = await getText ( editable , { blockTag : "span" } ) ;
268
+
269
+ await editable . focus ( ) ;
270
+
271
+ expect ( await getSelection ( editable , { blockTag : "span" } ) ) . toEqual (
272
+ createSelection ( )
273
+ ) ;
274
+
275
+ // Move caret
276
+ await page . keyboard . press ( "ArrowRight" ) ;
277
+ expect ( await getSelection ( editable , { blockTag : "span" } ) ) . toEqual (
278
+ createSelection ( { offset : 1 } )
279
+ ) ;
280
+
281
+ // Input
282
+ const text = "test" ;
283
+ await input ( editable , text ) ;
284
+ expect ( await getText ( editable , { blockTag : "span" } ) ) . toEqual (
285
+ insertAt ( initialValue , text , [ 0 , 1 ] )
286
+ ) ;
287
+ const textLength = text . length ;
288
+ expect ( await getSelection ( editable , { blockTag : "span" } ) ) . toEqual (
289
+ createSelection ( { offset : 1 + textLength } )
290
+ ) ;
291
+ } ) ;
292
+
293
+ test ( "on 2nd row" , async ( { page } ) => {
294
+ await page . goto ( storyUrl ( "basics-plain--span-as-block" ) ) ;
295
+
296
+ const editable = await getEditable ( page ) ;
297
+ const initialValue = await getText ( editable , { blockTag : "span" } ) ;
298
+
299
+ await editable . focus ( ) ;
300
+
301
+ expect ( await getSelection ( editable , { blockTag : "span" } ) ) . toEqual (
302
+ createSelection ( )
303
+ ) ;
304
+
305
+ // Move caret
306
+ await page . keyboard . press ( "ArrowRight" ) ;
307
+ await page . keyboard . press ( "ArrowDown" ) ;
308
+ expect ( await getSelection ( editable , { blockTag : "span" } ) ) . toEqual (
309
+ createSelection ( { line : 1 , offset : 1 } )
310
+ ) ;
311
+
312
+ // Input
313
+ const text = "test" ;
314
+ await input ( editable , text ) ;
315
+ expect ( await getText ( editable , { blockTag : "span" } ) ) . toEqual (
316
+ insertAt ( initialValue , text , [ 1 , 1 ] )
317
+ ) ;
318
+ const textLength = text . length ;
319
+ expect ( await getSelection ( editable , { blockTag : "span" } ) ) . toEqual (
320
+ createSelection ( { line : 1 , offset : 1 + textLength } )
321
+ ) ;
322
+ } ) ;
323
+ } ) ;
231
324
} ) ;
232
325
233
326
test . describe ( "replace range" , ( ) => {
0 commit comments