1+ import VueUiAnnotator from './vue-ui-annotator.vue' ;
2+
3+ describe ( '<VueUiAnnotator />' , ( ) => {
4+ beforeEach ( function ( ) {
5+ cy . fixture ( 'annotator.json' ) . as ( 'fixture' ) ;
6+ cy . viewport ( 1000 , 1100 ) ;
7+ } ) ;
8+
9+
10+ it ( 'renders with different config attributes' , function ( ) {
11+ cy . get ( '@fixture' ) . then ( ( fixture ) => {
12+ cy . mount ( VueUiAnnotator , {
13+ props : {
14+ dataset : fixture . dataset ,
15+ config : fixture . config
16+ } ,
17+ slots : {
18+ default : `<div style="margin: 0 auto;width:900px;height:900px;border:1px solid blue"></div>`
19+ }
20+ } ) ;
21+
22+ cy . get ( `[data-cy="annotator-summary"]` ) . click ( ) ;
23+
24+ cy . get ( `[data-cy="annotator-button-circle"]` ) . click ( ) ;
25+
26+ function undo ( times = 1 ) {
27+ for ( let i = 0 ; i < times ; i += 1 ) {
28+ cy . get ( `[data-cy="annotator-button-undo"]` ) . click ( ) ;
29+ }
30+ }
31+
32+ cy . get ( '#annotatorSvg' ) . then ( ( $svg ) => {
33+ cy . wrap ( $svg )
34+ . trigger ( 'pointermove' , { clientX : 500 , clientY : 500 } )
35+ . trigger ( 'pointerdown' )
36+ . trigger ( 'pointermove' , { clientX : 600 , clientY : 600 } )
37+ . wait ( 200 )
38+ . trigger ( 'pointerup' , { force : true } )
39+ . find ( 'circle' )
40+ . should ( 'have.length' , 2 ) ;
41+
42+ cy . get ( `[data-cy="annotator-button-rect"]` ) . click ( ) ;
43+
44+ cy . wrap ( $svg )
45+ . trigger ( 'pointermove' , { clientX : 450 , clientY : 450 } )
46+ . trigger ( 'pointerdown' )
47+ . trigger ( 'pointermove' , { clientX : 550 , clientY : 550 } )
48+ . wait ( 200 )
49+ . trigger ( 'pointerup' , { force : true } )
50+ . find ( 'rect' )
51+ . should ( 'have.length' , 4 ) ;
52+
53+ cy . get ( `[data-cy="annotator-button-arrow"]` ) . click ( ) ;
54+
55+ cy . wrap ( $svg )
56+ . trigger ( 'pointermove' , { clientX : 400 , clientY : 700 } )
57+ . trigger ( 'pointerdown' )
58+ . trigger ( 'pointermove' , { clientX : 600 , clientY : 700 } )
59+ . wait ( 200 )
60+ . trigger ( 'pointerup' , { force : true } )
61+ . find ( 'path' )
62+ . should ( 'have.length' , 1 )
63+
64+ undo ( ) ;
65+
66+ cy . get ( `[data-cy="annotator-button-freehand"]` ) . click ( ) ;
67+ cy . wrap ( $svg )
68+ . trigger ( 'pointermove' , { clientX : 400 , clientY : 700 } )
69+ . trigger ( 'pointerdown' )
70+ . trigger ( 'pointermove' , { clientX : 420 , clientY : 680 } )
71+ . wait ( 10 )
72+ . trigger ( 'pointermove' , { clientX : 440 , clientY : 720 } )
73+ . trigger ( 'pointermove' , { clientX : 460 , clientY : 680 } )
74+ . trigger ( 'pointermove' , { clientX : 480 , clientY : 720 } )
75+ . trigger ( 'pointermove' , { clientX : 500 , clientY : 680 } )
76+ . trigger ( 'pointermove' , { clientX : 520 , clientY : 720 } )
77+ . trigger ( 'pointermove' , { clientX : 540 , clientY : 680 } )
78+ . trigger ( 'pointermove' , { clientX : 560 , clientY : 720 } )
79+ . trigger ( 'pointermove' , { clientX : 580 , clientY : 680 } )
80+ . trigger ( 'pointermove' , { clientX : 600 , clientY : 720 } )
81+ . trigger ( 'pointermove' , { clientX : 620 , clientY : 680 } )
82+ . trigger ( 'pointerup' , { force : true } )
83+ . find ( 'path' )
84+ . should ( 'have.length' , 1 ) ;
85+
86+ undo ( 2 ) ;
87+ cy . get ( `[data-cy="annotator-button-move"]` ) . click ( ) ;
88+
89+ cy . wrap ( $svg )
90+ . trigger ( 'pointermove' , { clientX : 500 , clientY : 500 } )
91+ . trigger ( 'pointerdown' )
92+ . trigger ( 'pointermove' , { clientX : 600 , clientY : 600 } )
93+ . wait ( 200 )
94+ . trigger ( 'pointerup' , { force : true } )
95+ . find ( 'circle' )
96+ . should ( 'have.length' , 2 ) ;
97+
98+ undo ( ) ;
99+
100+ cy . get ( `[data-cy="annotator-button-text"]` ) . click ( ) ;
101+
102+ cy . wrap ( $svg )
103+ . trigger ( 'pointermove' , { clientX : 400 , clientY : 700 } )
104+ . click ( )
105+ . type ( 'HELLO WORLD' )
106+ . find ( 'text' )
107+ . should ( 'exist' )
108+ . contains ( 'HELLO WORLD' )
109+ undo ( ) ;
110+ } )
111+ } ) ;
112+ } )
113+ } )
0 commit comments