@@ -31,6 +31,120 @@ const fields = propertiesFields({ componentMapper });
31
31
describe ( 'ProEditor' , ( ) => {
32
32
it ( 'can drag a new component' , ( ) => {
33
33
cy . mount ( < Editor fields = { fields } componentMapper = { componentMapper } componentInitialProps = { componentInitialProps } /> ) ;
34
- cy . contains ( 'text field' ) . drag ( '.[style="display: flex; border: 1px dotted rgba(71, 77, 102, 0.5); min-height: 150px; background-color: rgb(249, 250, 252); padding: 4px; margin-left: 4px; flex-grow: 1; margin-right: 4px;"] > div' ) ;
34
+
35
+ cy . get ( '[data-cy="text-field"]' ) . trigger ( 'mousedown' ) ;
36
+ cy . get ( '[data-cy="container-root"]' ) . trigger ( 'mousemove' , 'center' ) ;
37
+ cy . get ( '[data-cy="container-root"]' ) . trigger ( 'mouseup' , 'center' ) ;
38
+
39
+ cy . get ( '[data-cy*="component-text-field"]' ) . should ( 'be.visible' ) ;
40
+ } ) ;
41
+
42
+ it ( 'can open properties editor' , ( ) => {
43
+ cy . mount ( < Editor fields = { fields } componentMapper = { componentMapper } componentInitialProps = { componentInitialProps } /> ) ;
44
+
45
+ cy . get ( '[data-cy="text-field"]' ) . trigger ( 'mousedown' ) ;
46
+ cy . get ( '[data-cy="container-root"]' ) . trigger ( 'mousemove' , 'center' ) ;
47
+ cy . get ( '[data-cy="container-root"]' ) . trigger ( 'mouseup' , 'center' ) ;
48
+
49
+ cy . get ( '[data-cy*="component-text-field"]' ) . click ( ) ;
50
+
51
+ cy . contains ( 'Edit field properties.' ) . should ( 'be.visible' ) ;
52
+ } ) ;
53
+
54
+ it ( 'can drag multiple components' , ( ) => {
55
+ cy . mount ( < Editor fields = { fields } componentMapper = { componentMapper } componentInitialProps = { componentInitialProps } /> ) ;
56
+
57
+ cy . get ( '[data-cy="text-field"]' ) . trigger ( 'mousedown' ) ;
58
+ cy . get ( '[data-cy="container-root"]' ) . trigger ( 'mousemove' , 'center' ) ;
59
+ cy . get ( '[data-cy="container-root"]' ) . trigger ( 'mouseup' , 'center' ) ;
60
+
61
+ cy . get ( '[data-cy="checkbox"]' ) . trigger ( 'mousedown' ) ;
62
+ cy . get ( '[data-cy="container-root"]' ) . trigger ( 'mousemove' , 'center' ) ;
63
+ cy . get ( '[data-cy="container-root"]' ) . trigger ( 'mouseup' , 'center' ) ;
64
+
65
+
66
+ cy . get ( '[data-cy*="component-text-field"]' ) . should ( 'be.visible' ) ;
67
+ cy . get ( '[data-cy*="component-checkbox"]' ) . should ( 'be.visible' ) ;
68
+ } ) ;
69
+
70
+ it ( 'can drag component to top' , ( ) => {
71
+ cy . mount ( < Editor fields = { fields } componentMapper = { componentMapper } componentInitialProps = { componentInitialProps } /> ) ;
72
+
73
+ cy . get ( '[data-cy="text-field"]' ) . trigger ( 'mousedown' ) ;
74
+ cy . get ( '[data-cy="container-root"]' ) . trigger ( 'mousemove' , 'center' ) ;
75
+ cy . get ( '[data-cy="container-root"]' ) . trigger ( 'mouseup' , 'center' ) ;
76
+
77
+ cy . get ( '[data-cy="checkbox"]' ) . trigger ( 'mousedown' ) ;
78
+ cy . get ( '[data-cy="container-root"]' ) . trigger ( 'mousemove' , 'top' ) ;
79
+ cy . get ( '[data-cy="container-root"]' ) . trigger ( 'mouseup' , 'top' ) ;
80
+
81
+
82
+ cy . get ( '[data-cy*="component-text-field"]' ) . then ( $el => {
83
+ const textfieldPosition = $el [ 0 ] . getBoundingClientRect ( ) ;
84
+ cy . get ( '[data-cy*="component-checkbox"]' ) . then ( $el => {
85
+ const checkboxPosition = $el [ 0 ] . getBoundingClientRect ( ) ;
86
+
87
+ assert ( textfieldPosition . top > checkboxPosition . top , 'checkbox is on the top' ) ;
88
+ } ) ;
89
+ } ) ;
90
+ } ) ;
91
+
92
+ it ( 'move components' , ( ) => {
93
+ cy . mount ( < Editor fields = { fields } componentMapper = { componentMapper } componentInitialProps = { componentInitialProps } /> ) ;
94
+
95
+ cy . get ( '[data-cy="text-field"]' ) . trigger ( 'mousedown' ) ;
96
+ cy . get ( '[data-cy="container-root"]' ) . trigger ( 'mousemove' , 'center' ) ;
97
+ cy . get ( '[data-cy="container-root"]' ) . trigger ( 'mouseup' , 'center' ) ;
98
+
99
+ cy . get ( '[data-cy="checkbox"]' ) . trigger ( 'mousedown' ) ;
100
+ cy . get ( '[data-cy="container-root"]' ) . trigger ( 'mousemove' , 'center' ) ;
101
+ cy . get ( '[data-cy="container-root"]' ) . trigger ( 'mouseup' , 'center' ) ;
102
+
103
+ cy . get ( '[data-cy*="component-checkbox"] [data-cy="handle"]' ) . trigger ( 'mousedown' ) ;
104
+ cy . get ( '[data-cy="container-root"]' ) . trigger ( 'mousemove' , 'top' ) ;
105
+ cy . get ( '[data-cy="container-root"]' ) . trigger ( 'mouseup' , 'top' ) ;
106
+
107
+ cy . get ( '[data-cy*="component-text-field"]' ) . then ( $el => {
108
+ const textfieldPosition = $el [ 0 ] . getBoundingClientRect ( ) ;
109
+ cy . get ( '[data-cy*="component-checkbox"]' ) . then ( $el => {
110
+ const checkboxPosition = $el [ 0 ] . getBoundingClientRect ( ) ;
111
+
112
+ assert ( textfieldPosition . top > checkboxPosition . top , 'checkbox is on the top' ) ;
113
+ } ) ;
114
+ } ) ;
115
+ } ) ;
116
+
117
+ it ( 'move into nested component' , ( ) => {
118
+ cy . mount ( < Editor fields = { fields } componentMapper = { componentMapper } componentInitialProps = { componentInitialProps } /> ) ;
119
+
120
+ cy . get ( '[data-cy="sub-form"]' ) . trigger ( 'mousedown' ) ;
121
+ cy . get ( '[data-cy="container-root"]' ) . trigger ( 'mousemove' , 'center' ) ;
122
+ cy . get ( '[data-cy="container-root"]' ) . trigger ( 'mouseup' , 'center' ) ;
123
+
124
+ cy . get ( '[data-cy="checkbox"]' ) . trigger ( 'mousedown' ) ;
125
+ cy . get ( '[data-cy*="container-sub-form"]' ) . trigger ( 'mousemove' , 'center' ) ;
126
+ cy . get ( '[data-cy*="container-sub-form"]' ) . trigger ( 'mouseup' , 'center' ) ;
127
+
128
+ cy . get ( '[data-cy*="container-sub-form"] [data-cy*="component-checkbox"]' ) . should ( 'be.visible' ) ;
129
+ } ) ;
130
+
131
+ it ( 'move nested into nested component' , ( ) => {
132
+ cy . mount ( < Editor fields = { fields } componentMapper = { componentMapper } componentInitialProps = { componentInitialProps } /> ) ;
133
+
134
+ cy . get ( '[data-cy="sub-form"]' ) . trigger ( 'mousedown' ) ;
135
+ cy . get ( '[data-cy="container-root"]' ) . trigger ( 'mousemove' , 'center' ) ;
136
+ cy . get ( '[data-cy="container-root"]' ) . trigger ( 'mouseup' , 'center' ) ;
137
+
138
+ cy . get ( '[data-cy="sub-form"]' ) . trigger ( 'mousedown' ) ;
139
+ cy . get ( '[data-cy*="container-sub-form"]' ) . trigger ( 'mousemove' , 'center' ) ;
140
+ cy . get ( '[data-cy*="container-sub-form"]' ) . trigger ( 'mouseup' , 'center' ) ;
141
+
142
+ cy . get ( '[data-cy*="container-sub-form"] [data-cy*="container-sub-form"]' ) . should ( 'be.visible' ) ;
143
+
144
+ cy . get ( '[data-cy="checkbox"]' ) . trigger ( 'mousedown' ) ;
145
+ cy . get ( '[data-cy*="container-sub-form"] [data-cy*="container-sub-form"]' ) . trigger ( 'mousemove' , 'center' ) ;
146
+ cy . get ( '[data-cy*="container-sub-form"] [data-cy*="container-sub-form"]' ) . trigger ( 'mouseup' , 'center' ) ;
147
+
148
+ cy . get ( '[data-cy*="container-sub-form"] [data-cy*="container-sub-form"] [data-cy*="component-checkbox"]' ) . should ( 'be.visible' ) ;
35
149
} ) ;
36
150
} ) ;
0 commit comments