1
1
import { expect } from "chai" ;
2
- import Vue from "vue" ;
3
2
import Circle from "@/components/Circle/Circle.vue" ;
4
- import { factory } from "@/../tests/helper" ;
3
+ import { factory , setCircleProps } from "@/../tests/helper" ;
4
+ import { lineModeParser , animationParser } from "@/components/optionsParser" ;
5
5
6
6
const localFactory = ( props ) => factory ( { container : Circle , props } ) ;
7
+ const localLineModeParser = ( lineMode ) => lineModeParser ( { lineMode, multiple : false } ) ;
7
8
8
9
const compareRadiusValues = ( circleWrapper , expectedProgressCircleRadius , expectedEmptyCircleRadius ) => {
9
10
const circleProgressWrapper = circleWrapper . find ( "circle.ep-circle--progress" ) ;
@@ -29,38 +30,24 @@ describe("#line", () => {
29
30
expect ( circleProgressWrapper . element . getAttribute ( "stroke-linecap" ) ) . to . equal ( `${ line } ` ) ;
30
31
31
32
line = "butt" ;
32
- await wrapper . setProps ( { options : { ...wrapper . props ( ) . options , line } } ) ;
33
- await Vue . nextTick ( ) ;
33
+ await setCircleProps ( wrapper , { line } ) ;
34
34
expect ( circleProgressWrapper . element . getAttribute ( "stroke-linecap" ) ) . to . equal ( `${ line } ` ) ;
35
35
36
36
line = "square" ;
37
- await wrapper . setProps ( { options : { ...wrapper . props ( ) . options , line } } ) ;
38
- await Vue . nextTick ( ) ;
37
+ await setCircleProps ( wrapper , { line } ) ;
39
38
expect ( circleProgressWrapper . element . getAttribute ( "stroke-linecap" ) ) . to . equal ( `${ line } ` ) ;
40
39
} ) ;
41
40
} ) ;
42
41
describe ( "#lineMode" , ( ) => {
43
- it ( "it parses the #lineMode property correctly" , ( ) => {
44
- const wrapper = localFactory ( { lineMode : "normal 10" } ) ;
45
-
46
- expect ( wrapper . vm . parsedLineMode . mode ) . to . equal ( "normal" ) ;
47
- expect ( wrapper . vm . parsedLineMode . offset ) . to . equal ( 10 ) ;
48
- } ) ;
49
- it ( "it applies default value correctly" , ( ) => {
50
- const wrapper = localFactory ( { lineMode : "normal 10" } ) ;
51
-
52
- expect ( wrapper . vm . parsedLineMode . mode ) . to . equal ( "normal" ) ;
53
- expect ( wrapper . vm . parsedLineMode . offset ) . to . equal ( 10 ) ;
54
- } ) ;
55
42
describe ( "#lineMode.mode" , ( ) => {
56
43
describe ( "#lineMode.mode.normal" , ( ) => {
57
44
let thickness = 20 ;
58
45
let emptyThickness = 10 ;
59
46
const wrapper = localFactory ( {
60
47
thickness,
61
48
emptyThickness,
62
- lineMode : "normal" ,
63
- animation : "default 0 0" ,
49
+ lineMode : localLineModeParser ( "normal" ) ,
50
+ animation : animationParser ( "default 0 0" ) ,
64
51
} ) ;
65
52
66
53
describe ( "radius of the circles does not exceed the size and aligns properly in relation to each other" , ( ) => {
@@ -71,18 +58,15 @@ describe("#lineMode", () => {
71
58
72
59
thickness = emptyThickness = 10 ;
73
60
74
- await wrapper . setProps ( { options : { ...wrapper . props ( ) . options , thickness, emptyThickness } } ) ;
75
-
76
- await Vue . nextTick ( ) ;
61
+ await setCircleProps ( wrapper , { thickness, emptyThickness } ) ;
77
62
78
63
expectedProgressCircleRadius = baseRadius - thickness / 2 ;
79
64
expectedEmptyCircleRadius = expectedProgressCircleRadius ;
80
65
compareRadiusValues ( wrapper , expectedProgressCircleRadius , expectedEmptyCircleRadius ) ;
81
66
} ) ;
82
67
it ( "in case #thickness >= #emptyThickness and #lineMode.offset = 10" , async ( ) => {
83
68
// offset must be ignored in this mode
84
- await wrapper . setProps ( { options : { ...wrapper . props ( ) . options , lineMode : "normal 10" } } ) ;
85
- await Vue . nextTick ( ) ;
69
+ await setCircleProps ( wrapper , { lineMode : localLineModeParser ( "normal 10" ) } ) ;
86
70
87
71
let expectedProgressCircleRadius = baseRadius - thickness / 2 ;
88
72
let expectedEmptyCircleRadius = expectedProgressCircleRadius ;
@@ -91,7 +75,6 @@ describe("#lineMode", () => {
91
75
thickness = emptyThickness = 10 ;
92
76
93
77
await wrapper . setProps ( { options : { ...wrapper . props ( ) . options , thickness, emptyThickness } } ) ;
94
- await Vue . nextTick ( ) ;
95
78
96
79
expectedProgressCircleRadius = baseRadius - thickness / 2 ;
97
80
expectedEmptyCircleRadius = expectedProgressCircleRadius ;
@@ -101,8 +84,7 @@ describe("#lineMode", () => {
101
84
thickness = 10 ;
102
85
emptyThickness = 20 ;
103
86
104
- await wrapper . setProps ( { options : { ...wrapper . props ( ) . options , thickness, emptyThickness } } ) ;
105
- await Vue . nextTick ( ) ;
87
+ await setCircleProps ( wrapper , { thickness, emptyThickness } ) ;
106
88
107
89
const expectedEmptyCircleRadius = baseRadius - emptyThickness / 2 ;
108
90
const expectedProgressCircleRadius = expectedEmptyCircleRadius ;
@@ -113,10 +95,7 @@ describe("#lineMode", () => {
113
95
thickness = 10 ;
114
96
emptyThickness = 20 ;
115
97
116
- await wrapper . setProps ( {
117
- options : { ...wrapper . props ( ) . options , thickness, emptyThickness, lineMode : "normal 10" } ,
118
- } ) ;
119
- await Vue . nextTick ( ) ;
98
+ await setCircleProps ( wrapper , { thickness, emptyThickness, lineMode : localLineModeParser ( "normal 10" ) } ) ;
120
99
121
100
const expectedEmptyCircleRadius = baseRadius - emptyThickness / 2 ;
122
101
const expectedProgressCircleRadius = expectedEmptyCircleRadius ;
@@ -131,7 +110,7 @@ describe("#lineMode", () => {
131
110
const wrapper = localFactory ( {
132
111
thickness,
133
112
emptyThickness,
134
- lineMode : `in ${ offset } ` ,
113
+ lineMode : localLineModeParser ( `in ${ offset } ` ) ,
135
114
} ) ;
136
115
137
116
it ( "circles does not exceed the size and aligns properly in relation to each other" , ( ) => {
@@ -147,7 +126,7 @@ describe("#lineMode", () => {
147
126
const wrapper = localFactory ( {
148
127
thickness,
149
128
emptyThickness,
150
- lineMode : `in-over ${ offset } ` ,
129
+ lineMode : localLineModeParser ( `in-over ${ offset } ` ) ,
151
130
} ) ;
152
131
153
132
it ( "circles does not exceed the size and aligns properly in relation to each other" , ( ) => {
@@ -164,7 +143,7 @@ describe("#lineMode", () => {
164
143
progress,
165
144
thickness,
166
145
emptyThickness,
167
- lineMode : `out ${ offset } ` ,
146
+ lineMode : localLineModeParser ( `out ${ offset } ` ) ,
168
147
} ) ;
169
148
170
149
it ( "circles does not exceed the size and aligns properly in relation to each other" , ( ) => {
@@ -180,7 +159,7 @@ describe("#lineMode", () => {
180
159
const wrapper = localFactory ( {
181
160
thickness,
182
161
emptyThickness,
183
- lineMode : `out-over ${ offset } ` ,
162
+ lineMode : localLineModeParser ( `out-over ${ offset } ` ) ,
184
163
} ) ;
185
164
186
165
describe ( "radius of the circles does not exceed the size and aligns properly in relation to each other" , ( ) => {
@@ -191,8 +170,7 @@ describe("#lineMode", () => {
191
170
192
171
thickness = emptyThickness = 10 ;
193
172
194
- await wrapper . setProps ( { options : { ...wrapper . props ( ) . options , thickness, emptyThickness } } ) ;
195
- await Vue . nextTick ( ) ;
173
+ await setCircleProps ( wrapper , { thickness, emptyThickness } ) ;
196
174
197
175
expectedProgressCircleRadius = baseRadius - thickness / 2 ;
198
176
expectedEmptyCircleRadius = expectedProgressCircleRadius ;
@@ -202,8 +180,7 @@ describe("#lineMode", () => {
202
180
thickness = 10 ;
203
181
emptyThickness = 20 ;
204
182
205
- await wrapper . setProps ( { options : { ...wrapper . props ( ) . options , thickness, emptyThickness } } ) ;
206
- await Vue . nextTick ( ) ;
183
+ await setCircleProps ( wrapper , { thickness, emptyThickness } ) ;
207
184
208
185
const expectedEmptyCircleRadius = baseRadius - emptyThickness / 2 ;
209
186
const expectedProgressCircleRadius = expectedEmptyCircleRadius - emptyThickness / 2 + thickness / 2 ;
@@ -218,7 +195,7 @@ describe("#lineMode", () => {
218
195
const wrapper = localFactory ( {
219
196
thickness,
220
197
emptyThickness,
221
- lineMode : `top ${ offset } ` ,
198
+ lineMode : localLineModeParser ( `top ${ offset } ` ) ,
222
199
} ) ;
223
200
224
201
it ( "circles does not exceed the size and aligns properly in relation to each other" , ( ) => {
@@ -234,7 +211,7 @@ describe("#lineMode", () => {
234
211
const wrapper = localFactory ( {
235
212
thickness,
236
213
emptyThickness,
237
- lineMode : `bottom ${ offset } ` ,
214
+ lineMode : localLineModeParser ( `bottom ${ offset } ` ) ,
238
215
} ) ;
239
216
240
217
describe ( "radius of the circles does not exceed the size and aligns properly in relation to each other" , ( ) => {
@@ -247,17 +224,15 @@ describe("#lineMode", () => {
247
224
thickness = 10 ;
248
225
emptyThickness = 20 ;
249
226
250
- await wrapper . setProps ( { options : { ...wrapper . props ( ) . options , thickness, emptyThickness } } ) ;
251
- await Vue . nextTick ( ) ;
227
+ await setCircleProps ( wrapper , { thickness, emptyThickness } ) ;
252
228
253
229
let expectedEmptyCircleRadius = baseRadius - emptyThickness / 2 ;
254
230
let expectedProgressCircleRadius = expectedEmptyCircleRadius - emptyThickness / 2 ;
255
231
compareRadiusValues ( wrapper , expectedProgressCircleRadius , expectedEmptyCircleRadius ) ;
256
232
257
233
thickness = emptyThickness = 20 ;
258
234
259
- await wrapper . setProps ( { options : { ...wrapper . props ( ) . options , thickness, emptyThickness } } ) ;
260
- await Vue . nextTick ( ) ;
235
+ await setCircleProps ( wrapper , { thickness, emptyThickness } ) ;
261
236
262
237
expectedEmptyCircleRadius = baseRadius - emptyThickness / 2 ;
263
238
expectedProgressCircleRadius = expectedEmptyCircleRadius - emptyThickness / 2 ;
0 commit comments