1
- import registry from "../../core/registry" ;
2
- import pattern from "./collapsible" ;
3
- import utils from "../../core/utils" ;
4
1
import $ from "jquery" ;
2
+ import events from "../../core/events" ;
3
+ import Pattern from "./collapsible" ;
4
+ import utils from "../../core/utils" ;
5
5
import { jest } from "@jest/globals" ;
6
6
7
7
describe ( "pat-collapsible" , function ( ) {
@@ -10,7 +10,7 @@ describe("pat-collapsible", function () {
10
10
jest . restoreAllMocks ( ) ;
11
11
} ) ;
12
12
13
- it ( "1- wraps the collapsible within a div.panel-content" , function ( ) {
13
+ it ( "1- wraps the collapsible within a div.panel-content" , async function ( ) {
14
14
document . body . innerHTML = `
15
15
<div class="pat-collapsible">
16
16
<h3>Trigger header</h3>
@@ -19,11 +19,12 @@ describe("pat-collapsible", function () {
19
19
` ;
20
20
21
21
const $collapsible = $ ( ".pat-collapsible" ) ;
22
- pattern . init ( $collapsible ) ;
22
+ const instance = new Pattern ( $collapsible [ 0 ] ) ;
23
+ await events . await_pattern_init ( instance ) ;
23
24
expect ( $collapsible . find ( ".panel-content" ) . length ) . toBe ( 1 ) ;
24
25
} ) ;
25
26
26
- it ( "2 - is open by default" , function ( ) {
27
+ it ( "2 - is open by default" , async function ( ) {
27
28
document . body . innerHTML = `
28
29
<div class="pat-collapsible">
29
30
<h3>Trigger header</h3>
@@ -32,11 +33,12 @@ describe("pat-collapsible", function () {
32
33
` ;
33
34
34
35
const $collapsible = $ ( ".pat-collapsible" ) ;
35
- pattern . init ( $collapsible ) ;
36
+ const instance = new Pattern ( $collapsible [ 0 ] ) ;
37
+ await events . await_pattern_init ( instance ) ;
36
38
expect ( $collapsible . hasClass ( "open" ) ) . toBeTruthy ( ) ;
37
39
} ) ;
38
40
39
- it ( "3 - can be explicitly closed by adding the class 'closed'" , function ( ) {
41
+ it ( "3 - can be explicitly closed by adding the class 'closed'" , async function ( ) {
40
42
document . body . innerHTML = `
41
43
<div class="pat-collapsible closed">
42
44
<h3>Trigger header</h3>
@@ -45,11 +47,12 @@ describe("pat-collapsible", function () {
45
47
` ;
46
48
47
49
const $collapsible = $ ( ".pat-collapsible" ) ;
48
- pattern . init ( $collapsible ) ;
50
+ const instance = new Pattern ( $collapsible [ 0 ] ) ;
51
+ await events . await_pattern_init ( instance ) ;
49
52
expect ( $collapsible . hasClass ( "open" ) ) . toBeFalsy ( ) ;
50
53
} ) ;
51
54
52
- it ( "4 - can be toggled closed if it's open" , function ( ) {
55
+ it ( "4 - can be toggled closed if it's open" , async function ( ) {
53
56
document . body . innerHTML = `
54
57
<div class="pat-collapsible">
55
58
<h3>Trigger header</h3>
@@ -58,25 +61,27 @@ describe("pat-collapsible", function () {
58
61
` ;
59
62
60
63
const $collapsible = $ ( ".pat-collapsible" ) ;
61
- const pat = pattern . init ( $collapsible , { transition : "none" } ) ;
62
- pat . toggle ( $collapsible ) ;
64
+ const instance = new Pattern ( $collapsible [ 0 ] , { transition : "none" } ) ;
65
+ await events . await_pattern_init ( instance ) ;
66
+ instance . toggle ( $collapsible ) ;
63
67
expect ( $collapsible . hasClass ( "open" ) ) . toBe ( false ) ;
64
68
expect ( $collapsible . hasClass ( "closed" ) ) . toBe ( true ) ;
65
69
const $trigger = $ ( "h3" ) ;
66
70
expect ( $trigger . hasClass ( "collapsible-open" ) ) . toBe ( false ) ;
67
71
expect ( $trigger . hasClass ( "collapsible-closed" ) ) . toBe ( true ) ;
68
72
} ) ;
69
73
70
- it ( "5 - can be toggled open if it's closed" , function ( ) {
74
+ it ( "5 - can be toggled open if it's closed" , async function ( ) {
71
75
document . body . innerHTML = `
72
76
<div class="pat-collapsible closed">
73
77
<h3>Trigger header</h3>
74
78
<p>Collapsible content</p>
75
79
</div>
76
80
` ;
77
81
const $collapsible = $ ( ".pat-collapsible" ) ;
78
- const pat = pattern . init ( $collapsible , { transition : "none" } ) ;
79
- pat . toggle ( $collapsible ) ;
82
+ const instance = new Pattern ( $collapsible [ 0 ] , { transition : "none" } ) ;
83
+ await events . await_pattern_init ( instance ) ;
84
+ instance . toggle ( $collapsible ) ;
80
85
expect ( $collapsible . hasClass ( "open" ) ) . toBe ( true ) ;
81
86
expect ( $collapsible . hasClass ( "closed" ) ) . toBe ( false ) ;
82
87
const $trigger = $ ( "h3" ) ;
@@ -93,7 +98,8 @@ describe("pat-collapsible", function () {
93
98
</div>
94
99
` ;
95
100
const $collapsible = $ ( ".pat-collapsible" ) ;
96
- registry . scan ( $collapsible ) ;
101
+ const instance = new Pattern ( $collapsible [ 0 ] , { transition : "none" } ) ;
102
+ await events . await_pattern_init ( instance ) ;
97
103
expect ( $collapsible . hasClass ( "open" ) ) . toBe ( false ) ;
98
104
expect ( $collapsible . hasClass ( "closed" ) ) . toBe ( true ) ;
99
105
$ ( "#open" ) . click ( ) ;
@@ -111,7 +117,8 @@ describe("pat-collapsible", function () {
111
117
</div>
112
118
` ;
113
119
const $collapsible = $ ( ".pat-collapsible" ) ;
114
- registry . scan ( $collapsible ) ;
120
+ const instance = new Pattern ( $collapsible [ 0 ] , { transition : "none" } ) ;
121
+ await events . await_pattern_init ( instance ) ;
115
122
expect ( $collapsible . hasClass ( "closed" ) ) . toBe ( false ) ;
116
123
expect ( $collapsible . hasClass ( "open" ) ) . toBe ( true ) ;
117
124
$ ( "#close" ) . click ( ) ;
@@ -128,10 +135,11 @@ describe("pat-collapsible", function () {
128
135
</div>
129
136
` ;
130
137
const collapsible = document . querySelector ( ".pat-collapsible" ) ;
131
- const pat = pattern . init ( collapsible ) ;
132
- const spy_scroll = jest . spyOn ( pat , "_scroll" ) ;
138
+ const instance = new Pattern ( collapsible , { transition : "none" } ) ;
139
+ await events . await_pattern_init ( instance ) ;
140
+ const spy_scroll = jest . spyOn ( instance , "_scroll" ) ;
133
141
134
- pat . toggle ( ) ;
142
+ instance . toggle ( ) ;
135
143
await utils . timeout ( 10 ) ;
136
144
137
145
expect ( spy_scroll ) . toHaveBeenCalledTimes ( 1 ) ;
@@ -144,10 +152,11 @@ describe("pat-collapsible", function () {
144
152
</div>
145
153
` ;
146
154
const collapsible = document . querySelector ( ".pat-collapsible" ) ;
147
- const pat = pattern . init ( collapsible ) ;
148
- const spy_scroll = jest . spyOn ( pat , "_scroll" ) ;
155
+ const instance = new Pattern ( collapsible , { transition : "none" } ) ;
156
+ await events . await_pattern_init ( instance ) ;
157
+ const spy_scroll = jest . spyOn ( instance , "_scroll" ) ;
149
158
150
- pat . toggle ( ) ;
159
+ instance . toggle ( ) ;
151
160
await utils . timeout ( 10 ) ;
152
161
153
162
expect ( spy_scroll ) . not . toHaveBeenCalled ( ) ;
@@ -167,7 +176,12 @@ describe("pat-collapsible", function () {
167
176
</div>
168
177
` ;
169
178
170
- registry . scan ( document . body ) ;
179
+ const instance1 = new Pattern ( document . querySelector ( ".c1" ) ) ;
180
+ await events . await_pattern_init ( instance1 ) ;
181
+ const instance2 = new Pattern ( document . querySelector ( ".c2" ) ) ;
182
+ await events . await_pattern_init ( instance2 ) ;
183
+ const instance3 = new Pattern ( document . querySelector ( ".c3" ) ) ;
184
+ await events . await_pattern_init ( instance3 ) ;
171
185
const spy_animate = jest . spyOn ( $ . fn , "animate" ) ;
172
186
173
187
document . querySelector ( "#open" ) . click ( ) ;
@@ -188,10 +202,11 @@ describe("pat-collapsible", function () {
188
202
</div>
189
203
` ;
190
204
const collapsible = document . querySelector ( ".pat-collapsible" ) ;
191
- const pat = pattern . init ( collapsible ) ;
205
+ const instance = new Pattern ( collapsible ) ;
206
+ await events . await_pattern_init ( instance ) ;
192
207
const spy_animate = jest . spyOn ( $ . fn , "animate" ) ;
193
208
194
- pat . toggle ( ) ;
209
+ instance . toggle ( ) ;
195
210
await utils . timeout ( 10 ) ;
196
211
197
212
const arg_1 = spy_animate . mock . calls [ 0 ] [ 0 ] ;
@@ -205,10 +220,11 @@ describe("pat-collapsible", function () {
205
220
</div>
206
221
` ;
207
222
const collapsible = document . querySelector ( ".pat-collapsible" ) ;
208
- const pat = pattern . init ( collapsible ) ;
223
+ const instance = new Pattern ( collapsible ) ;
224
+ await events . await_pattern_init ( instance ) ;
209
225
const spy_animate = jest . spyOn ( $ . fn , "animate" ) ;
210
226
211
- pat . toggle ( ) ;
227
+ instance . toggle ( ) ;
212
228
await utils . timeout ( 10 ) ;
213
229
214
230
const arg_1 = spy_animate . mock . calls [ 0 ] [ 0 ] ;
0 commit comments