11import { expect } from '@vaadin/chai-plugins' ;
22import {
3+ enter ,
34 esc ,
45 fire ,
56 fixtureSync ,
@@ -362,12 +363,16 @@ describe('toolbar controls', () => {
362363
363364 describe ( 'hyperlink' , ( ) => {
364365 const url = 'https://vaadin.com' ;
365- let dialog , overlay ;
366+ let dialog , overlay , urlField , cancelButton , confirmButton , removeButton ;
366367
367368 beforeEach ( ( ) => {
368369 btn = getButton ( 'link' ) ;
369- dialog = rte . $ . linkDialog ;
370+ dialog = rte . querySelector ( '[slot="link-dialog"]' ) ;
370371 overlay = dialog . _overlayElement ;
372+ urlField = dialog . querySelector ( 'vaadin-text-field' ) ;
373+ cancelButton = dialog . querySelector ( '[slot="cancel-button"]' ) ;
374+ confirmButton = dialog . querySelector ( '[slot="confirm-button"]' ) ;
375+ removeButton = dialog . querySelector ( '[slot="reject-button"]' ) ;
371376 } ) ;
372377
373378 describe ( 'dialog' , ( ) => {
@@ -377,34 +382,38 @@ describe('toolbar controls', () => {
377382 expect ( dialog . opened ) . to . be . false ;
378383 } ) ;
379384
380- it ( 'should focus whe text field when the dialog is opened' , async ( ) => {
381- const spy = sinon . spy ( rte . $ . linkUrl , 'focus' ) ;
385+ it ( 'should focus the text field when the dialog is opened' , async ( ) => {
382386 editor . focus ( ) ;
383387 btn . click ( ) ;
384388 await oneEvent ( overlay , 'vaadin-overlay-open' ) ;
385- expect ( spy . calledOnce ) . to . be . true ;
389+ expect ( urlField . inputElement . matches ( ':focus' ) ) . to . be . true ;
386390 } ) ;
387391
388392 it ( 'should confirm the dialog by pressing enter in the focused text field' , async ( ) => {
389- const spy = sinon . spy ( rte . $ . confirmLink , 'click' ) ;
393+ rte . value = JSON . stringify ( [ { insert : 'Vaadin' } ] ) ;
390394 editor . focus ( ) ;
395+ editor . setSelection ( 0 , 6 ) ;
396+ flushValueDebouncer ( ) ;
397+
391398 btn . click ( ) ;
392399 await oneEvent ( overlay , 'vaadin-overlay-open' ) ;
393- const evt = new CustomEvent ( 'keydown' ) ;
394- evt . keyCode = 13 ;
395- rte . $ . linkUrl . dispatchEvent ( evt ) ;
396- expect ( spy . calledOnce ) . to . be . true ;
400+
401+ urlField . value = url ;
402+ enter ( urlField ) ;
403+ flushValueDebouncer ( ) ;
404+
405+ expect ( rte . value ) . to . equal ( `[{"attributes":{"link":"${ url } "},"insert":"Vaadin"},{"insert":"\\n"}]` ) ;
406+ expect ( dialog . opened ) . to . be . false ;
397407 } ) ;
398408
399- it ( 'should focus whe editor when the dialog is cancelled' , async ( ) => {
409+ it ( 'should focus the editor when the dialog is cancelled' , async ( ) => {
400410 editor . focus ( ) ;
401411 btn . click ( ) ;
402412 await oneEvent ( overlay , 'vaadin-overlay-open' ) ;
403413
404414 const spy = sinon . spy ( editor , 'focus' ) ;
405- rte . addEventListener ( 'change' , spy ) ;
406415
407- rte . $ . cancelLink . click ( ) ;
416+ cancelButton . click ( ) ;
408417 expect ( spy . calledOnce ) . to . be . true ;
409418 } ) ;
410419 } ) ;
@@ -426,8 +435,8 @@ describe('toolbar controls', () => {
426435 flushValueDebouncer ( ) ;
427436 btn . click ( ) ;
428437 await oneEvent ( overlay , 'vaadin-overlay-open' ) ;
429- rte . $ . linkUrl . value = url ;
430- rte . $ . confirmLink . click ( ) ;
438+ urlField . value = url ;
439+ confirmButton . click ( ) ;
431440 flushValueDebouncer ( ) ;
432441 expect ( rte . value ) . to . equal ( `[{"attributes":{"link":"${ url } "},"insert":"Vaadin"},{"insert":"\\n"}]` ) ;
433442 } ) ;
@@ -439,8 +448,8 @@ describe('toolbar controls', () => {
439448 editor . setSelection ( 0 , 6 ) ;
440449 btn . click ( ) ;
441450 await oneEvent ( overlay , 'vaadin-overlay-open' ) ;
442- rte . $ . linkUrl . value = url ;
443- rte . $ . confirmLink . click ( ) ;
451+ urlField . value = url ;
452+ confirmButton . click ( ) ;
444453 flushValueDebouncer ( ) ;
445454 expect ( rte . value ) . to . equal ( `[{"attributes":{"link":"${ url } "},"insert":"Vaadin"},{"insert":"\\n"}]` ) ;
446455 } ) ;
@@ -452,7 +461,7 @@ describe('toolbar controls', () => {
452461 editor . setSelection ( 0 , 6 ) ;
453462 btn . click ( ) ;
454463 await oneEvent ( overlay , 'vaadin-overlay-open' ) ;
455- rte . $ . removeLink . click ( ) ;
464+ removeButton . click ( ) ;
456465 flushValueDebouncer ( ) ;
457466 expect ( rte . value ) . to . equal ( '[{"insert":"Vaadin\\n"}]' ) ;
458467 } ) ;
@@ -471,8 +480,8 @@ describe('toolbar controls', () => {
471480 editor . setSelection ( 0 , 0 ) ;
472481 btn . click ( ) ;
473482 await oneEvent ( overlay , 'vaadin-overlay-open' ) ;
474- rte . $ . linkUrl . value = url ;
475- rte . $ . confirmLink . click ( ) ;
483+ urlField . value = url ;
484+ confirmButton . click ( ) ;
476485 flushValueDebouncer ( ) ;
477486 expect ( rte . value ) . to . equal ( `[{"attributes":{"link":"${ url } "},"insert":"${ url } "},{"insert":"\\n"}]` ) ;
478487 } ) ;
@@ -484,8 +493,8 @@ describe('toolbar controls', () => {
484493 editor . setSelection ( 1 , 0 ) ;
485494 btn . click ( ) ;
486495 await oneEvent ( overlay , 'vaadin-overlay-open' ) ;
487- rte . $ . linkUrl . value = url ;
488- rte . $ . confirmLink . click ( ) ;
496+ urlField . value = url ;
497+ confirmButton . click ( ) ;
489498 flushValueDebouncer ( ) ;
490499 expect ( rte . value ) . to . equal ( `[{"attributes":{"link":"${ url } "},"insert":"Vaadin"},{"insert":"\\n"}]` ) ;
491500 } ) ;
@@ -497,7 +506,7 @@ describe('toolbar controls', () => {
497506 editor . setSelection ( 1 , 0 ) ;
498507 btn . click ( ) ;
499508 await oneEvent ( overlay , 'vaadin-overlay-open' ) ;
500- rte . $ . removeLink . click ( ) ;
509+ removeButton . click ( ) ;
501510 flushValueDebouncer ( ) ;
502511 expect ( rte . value ) . to . equal ( '[{"insert":"Vaadin\\n"}]' ) ;
503512 } ) ;
@@ -512,12 +521,12 @@ describe('toolbar controls', () => {
512521 btn . click ( ) ;
513522 await oneEvent ( overlay , 'vaadin-overlay-open' ) ;
514523
515- rte . $ . linkUrl . value = url ;
524+ urlField . value = url ;
516525
517526 const spy = sinon . spy ( ) ;
518527 rte . addEventListener ( 'change' , spy ) ;
519528
520- rte . $ . confirmLink . click ( ) ;
529+ confirmButton . click ( ) ;
521530 await nextRender ( ) ;
522531 flushValueDebouncer ( ) ;
523532
@@ -536,7 +545,7 @@ describe('toolbar controls', () => {
536545 const spy = sinon . spy ( ) ;
537546 rte . addEventListener ( 'change' , spy ) ;
538547
539- rte . $ . cancelLink . click ( ) ;
548+ cancelButton . click ( ) ;
540549 await nextRender ( ) ;
541550 flushValueDebouncer ( ) ;
542551 expect ( rte . value ) . to . equal ( value ) ;
0 commit comments