@@ -4,71 +4,54 @@ import '@testing-library/jest-dom'
4
4
import Swiper , { SwiperRef } from '../index'
5
5
import { triggerDrag } from '@/utils/event-mocker'
6
6
7
+ const list = [
8
+ 'https://storage.360buyimg.com/jdc-article/NutUItaro34.jpg' ,
9
+ 'https://storage.360buyimg.com/jdc-article/NutUItaro2.jpg' ,
10
+ 'https://storage.360buyimg.com/jdc-article/welcomenutui.jpg' ,
11
+ 'https://storage.360buyimg.com/jdc-article/fristfabu.jpg' ,
12
+ ]
13
+
7
14
function sleep ( delay = 0 ) : Promise < void > {
8
15
return new Promise ( ( resolve ) => {
9
16
setTimeout ( resolve , delay )
10
17
} )
11
18
}
12
19
13
20
test ( 'should render width and height' , ( ) => {
14
- const list = [
15
- 'https://storage.360buyimg.com/jdc-article/NutUItaro34.jpg' ,
16
- 'https://storage.360buyimg.com/jdc-article/NutUItaro2.jpg' ,
17
- 'https://storage.360buyimg.com/jdc-article/welcomenutui.jpg' ,
18
- 'https://storage.360buyimg.com/jdc-article/fristfabu.jpg' ,
19
- ]
20
-
21
21
const onChange = vi . fn ( )
22
22
23
23
const Wraper = ( ) => {
24
24
const ref = useRef < SwiperRef > ( null )
25
25
return (
26
26
< >
27
- < div
28
- data-testid = "prev"
29
- onClick = { ( ) => {
30
- ref . current ?. prev ( )
31
- } }
32
- >
27
+ < div data-testid = "prev" onClick = { ( ) => ref . current ?. prev ( ) } >
33
28
prev
34
29
</ div >
35
- < div
36
- data-testid = "next"
37
- onClick = { ( ) => {
38
- ref . current ?. next ( )
39
- } }
40
- >
30
+ < div data-testid = "next" onClick = { ( ) => ref . current ?. next ( ) } >
41
31
next
42
32
</ div >
43
- < div
44
- data-testid = "to"
45
- onClick = { ( ) => {
46
- ref . current ?. to ( 1 )
47
- } }
48
- >
33
+ < div data-testid = "to" onClick = { ( ) => ref . current ?. to ( 1 ) } >
49
34
to
50
35
</ div >
51
36
< Swiper
37
+ ref = { ref }
52
38
style = { { width : '375px' , height : '150px' } }
53
- autoPlay
54
39
defaultValue = { 0 }
55
- onChange = { onChange }
56
- ref = { ref }
40
+ autoplay
57
41
indicator
42
+ onChange = { onChange }
58
43
>
59
- { list . map ( ( item ) => {
60
- return (
61
- < Swiper . Item key = { item } >
62
- < img src = { item } alt = "" />
63
- </ Swiper . Item >
64
- )
65
- } ) }
44
+ { list . map ( ( item ) => (
45
+ < Swiper . Item key = { item } >
46
+ < img src = { item } alt = "" />
47
+ </ Swiper . Item >
48
+ ) ) }
66
49
</ Swiper >
67
50
</ >
68
51
)
69
52
}
70
53
const { container, getByTestId } = render ( < Wraper /> )
71
- const swiper = container . querySelectorAll ( '.nut-swiper' ) [ 0 ]
54
+ const swiper = container . querySelector ( '.nut-swiper' )
72
55
expect ( swiper ) . toHaveStyle ( {
73
56
height : '150px' ,
74
57
width : '375px' ,
@@ -78,15 +61,9 @@ test('should render width and height', () => {
78
61
fireEvent . click ( getByTestId ( 'prev' ) )
79
62
fireEvent . click ( getByTestId ( 'to' ) )
80
63
} )
64
+
81
65
test ( 'should render initpage' , ( ) => {
82
- const list = [
83
- 'https://storage.360buyimg.com/jdc-article/NutUItaro34.jpg' ,
84
- 'https://storage.360buyimg.com/jdc-article/NutUItaro2.jpg' ,
85
- 'https://storage.360buyimg.com/jdc-article/welcomenutui.jpg' ,
86
- 'https://storage.360buyimg.com/jdc-article/fristfabu.jpg' ,
87
- ]
88
66
const onChange = ( e : number ) => { }
89
-
90
67
const { container } = render (
91
68
< Swiper defaultValue = { 1 } onChange = { onChange } loop indicator >
92
69
{ list . map ( ( item ) => {
@@ -98,29 +75,17 @@ test('should render initpage', () => {
98
75
} ) }
99
76
</ Swiper >
100
77
)
101
- const swiper = container . querySelectorAll ( '.nut-swiper-slide' ) [ 0 ]
78
+ const swiper = container . querySelector ( '.nut-swiper-slide' )
102
79
expect ( swiper ) . toHaveStyle ( {
103
80
transform : 'translate3d(-100%,0,0)' ,
104
81
} )
105
82
} )
106
- test ( 'should render direction' , ( ) => {
107
- const list = [
108
- 'https://storage.360buyimg.com/jdc-article/NutUItaro34.jpg' ,
109
- 'https://storage.360buyimg.com/jdc-article/NutUItaro2.jpg' ,
110
- 'https://storage.360buyimg.com/jdc-article/welcomenutui.jpg' ,
111
- 'https://storage.360buyimg.com/jdc-article/fristfabu.jpg' ,
112
- ]
113
83
84
+ test ( 'should render vertical direction' , ( ) => {
114
85
const onChange = ( e : number ) => { }
115
86
116
87
const { container } = render (
117
- < Swiper
118
- loop
119
- direction = "vertical"
120
- defaultValue = { 1 }
121
- onChange = { onChange }
122
- indicator
123
- >
88
+ < Swiper loop direction = "vertical" defaultValue = { 1 } onChange = { onChange } >
124
89
{ list . map ( ( item ) => {
125
90
return (
126
91
< Swiper . Item key = { item } >
@@ -130,32 +95,33 @@ test('should render direction', () => {
130
95
} ) }
131
96
</ Swiper >
132
97
)
133
- const swiper = container . querySelectorAll ( '.nut-swiper-slide' ) [ 0 ]
98
+ const swiper = container . querySelector ( '.nut-swiper-slide' )
134
99
expect ( swiper ) . toHaveStyle ( {
135
100
transform : 'translate3d(0,-100%,0)' ,
136
101
} )
137
102
} )
103
+
138
104
test ( 'should render indicator' , ( ) => {
139
- const list = [
140
- 'https://storage.360buyimg.com/jdc-article/NutUItaro34.jpg' ,
141
- 'https://storage.360buyimg.com/jdc-article/NutUItaro2.jpg' ,
142
- 'https://storage.360buyimg.com/jdc-article/welcomenutui.jpg' ,
143
- 'https://storage.360buyimg.com/jdc-article/fristfabu.jpg' ,
144
- ]
145
- const onChange = ( e : number ) => { }
105
+ const { container } = render (
106
+ < Swiper defaultValue = { 1 } indicator >
107
+ { list . map ( ( item ) => {
108
+ return (
109
+ < Swiper . Item key = { item } >
110
+ < img src = { item } alt = "" />
111
+ </ Swiper . Item >
112
+ )
113
+ } ) }
114
+ </ Swiper >
115
+ )
116
+ const indicatorItem = container . querySelectorAll (
117
+ '.nut-swiper-indicator .nut-indicator-dot'
118
+ )
119
+ expect ( indicatorItem . length ) . toEqual ( 4 )
120
+ } )
146
121
122
+ test ( 'should render effect' , ( ) => {
147
123
const { container } = render (
148
- < Swiper
149
- slideSize = { 300 }
150
- defaultValue = { 1 }
151
- onChange = { onChange }
152
- indicator
153
- style = { {
154
- width : '375px' ,
155
- '--nutui-indicator-color' : '#426543' ,
156
- '--nutui-indicator-dot-color' : '#426ddd' ,
157
- } }
158
- >
124
+ < Swiper defaultValue = { 1 } effect = { { name : 'focus' , scale : 1 } } >
159
125
{ list . map ( ( item ) => {
160
126
return (
161
127
< Swiper . Item key = { item } >
@@ -165,25 +131,33 @@ test('should render indicator', () => {
165
131
} ) }
166
132
</ Swiper >
167
133
)
168
- const indicatorItem = container . querySelectorAll ( '.nut-swiper-indicator-item' )
134
+ const swiper = container . querySelectorAll ( '.nut-swiper-slide' ) [ 0 ]
135
+ expect ( swiper ) . toHaveStyle ( { transform : 'translate3d(-100%,0,0) scale(1)' } )
169
136
} )
170
137
171
- test ( 'should render loop and auto-play' , async ( ) => {
172
- const list = [
173
- 'https://storage.360buyimg.com/jdc-article/NutUItaro34.jpg' ,
174
- 'https://storage.360buyimg.com/jdc-article/NutUItaro2.jpg' ,
175
- 'https://storage.360buyimg.com/jdc-article/welcomenutui.jpg' ,
176
- 'https://storage.360buyimg.com/jdc-article/fristfabu.jpg' ,
177
- ]
178
- const onChange = ( e : number ) => { }
138
+ test ( 'should render auto-play' , async ( ) => {
179
139
const { container } = render (
180
- < Swiper
181
- style = { { width : '375px' } }
182
- slideSize = { 300 }
183
- defaultValue = { 0 }
184
- onChange = { onChange }
185
- autoPlay
186
- >
140
+ < Swiper style = { { width : '375px' } } defaultValue = { 0 } autoplay >
141
+ { list . map ( ( item ) => {
142
+ return (
143
+ < Swiper . Item key = { item } >
144
+ < img src = { item } alt = "" />
145
+ </ Swiper . Item >
146
+ )
147
+ } ) }
148
+ </ Swiper >
149
+ )
150
+ const swiper = container . querySelectorAll ( '.nut-swiper-slide' ) [ 0 ]
151
+ await waitFor ( ( ) => {
152
+ expect ( swiper ) . toHaveStyle ( {
153
+ transform : 'none' ,
154
+ } )
155
+ } )
156
+ } )
157
+
158
+ test ( 'should render auto-play width number' , async ( ) => {
159
+ const { container } = render (
160
+ < Swiper style = { { width : '375px' } } defaultValue = { 0 } autoplay = { 300 } >
187
161
{ list . map ( ( item ) => {
188
162
return (
189
163
< Swiper . Item key = { item } >
@@ -200,24 +174,16 @@ test('should render loop and auto-play', async () => {
200
174
} )
201
175
} )
202
176
} )
177
+
203
178
test ( 'should not allow to drag when touchable is false' , ( ) => {
204
179
const onChange = vi . fn ( )
205
180
const clickFn = vi . fn ( )
206
-
207
- const list = [
208
- 'https://storage.360buyimg.com/jdc-article/NutUItaro34.jpg' ,
209
- 'https://storage.360buyimg.com/jdc-article/NutUItaro2.jpg' ,
210
- 'https://storage.360buyimg.com/jdc-article/welcomenutui.jpg' ,
211
- 'https://storage.360buyimg.com/jdc-article/fristfabu.jpg' ,
212
- ]
213
-
214
181
const { container } = render (
215
182
< Swiper
216
183
style = { { width : '375px' } }
217
- slideSize = { 300 }
184
+ slideSize = { 200 }
218
185
defaultValue = { 0 }
219
186
onChange = { onChange }
220
- touchable = { false }
221
187
>
222
188
{ list . map ( ( item ) => {
223
189
return (
@@ -228,7 +194,7 @@ test('should not allow to drag when touchable is false', () => {
228
194
} ) }
229
195
</ Swiper >
230
196
)
231
- const swiper = container . querySelectorAll ( '.nut-swiper' ) [ 0 ]
197
+ const swiper = container . querySelector ( '.nut-swiper' )
232
198
const swiperItem = container . querySelector ( '.nut-swiper-slide' )
233
199
triggerDrag ( swiper , 220 , 0 )
234
200
expect ( swiperItem ) . toHaveStyle ( {
@@ -240,13 +206,8 @@ test('should not allow to drag when touchable is false', () => {
240
206
expect ( clickFn ) . toBeCalled ( )
241
207
}
242
208
} )
209
+
243
210
test ( 'should not allow to drag when loop is false' , async ( ) => {
244
- const list = [
245
- 'https://storage.360buyimg.com/jdc-article/NutUItaro34.jpg' ,
246
- 'https://storage.360buyimg.com/jdc-article/NutUItaro2.jpg' ,
247
- 'https://storage.360buyimg.com/jdc-article/welcomenutui.jpg' ,
248
- 'https://storage.360buyimg.com/jdc-article/fristfabu.jpg' ,
249
- ]
250
211
let _container : any
251
212
act ( ( ) => {
252
213
const { container } = render (
@@ -255,7 +216,6 @@ test('should not allow to drag when loop is false', async () => {
255
216
slideSize = { 300 }
256
217
defaultValue = { 3 }
257
218
loop = { false }
258
- autoPlay
259
219
data-testid = "swiper_container"
260
220
>
261
221
{ list . map ( ( item ) => {
0 commit comments