@@ -2,7 +2,7 @@ import tap from 'tap';
2
2
import { jsdom } from 'jsdom' ;
3
3
import Accordion from './accordion' ;
4
4
5
- tap . test ( 'The accordion module should exist ' , ( t ) => {
5
+ tap . test ( 'Accordion exists ' , ( t ) => {
6
6
t . ok ( Accordion ) ;
7
7
t . end ( ) ;
8
8
} ) ;
@@ -11,82 +11,22 @@ tap.test('An accordion module instance', (t) => {
11
11
const markup = `<div data-accordion></div>` ;
12
12
const window = jsdom ( markup ) . defaultView ;
13
13
const accordion = new Accordion ( window ) ;
14
- t . ok ( accordion . container . hasAttribute ( 'data-accordion' ) , 'container property is defined' ) ;
15
- t . ok ( accordion . container . hasAttribute ( 'data-accordion' ) , 'container property contains a data-accordion element' ) ;
14
+ t . equal ( accordion . items . length , 0 , 'container property is defined' ) ;
16
15
t . end ( ) ;
17
16
} ) ;
18
17
19
- tap . test ( 'Accordion module instance children method' , ( t ) => {
18
+ tap . test ( '#item method' , t => {
20
19
const markup = `
21
20
<div data-accordion>
22
21
<div data-accordion-item></div>
22
+ <div data-accordion-item></div>
23
+ <div data-accordion-item></div>
24
+ <div data-accordion-item></div>
25
+ <div data-accordion-item></div>
23
26
</div>
24
27
` ;
25
28
const window = jsdom ( markup ) . defaultView ;
26
29
const accordion = new Accordion ( window ) ;
27
- const children = window . document . querySelector ( '[data-accordion]' ) . children ;
28
- t . ok ( accordion . children , 'is defined' ) ;
29
- t . ok ( accordion . children ( ) [ 0 ] . hasAttribute ( 'data-accordion-item' ) , 'returns container children' ) ;
30
- t . end ( ) ;
31
- } ) ;
32
-
33
- tap . test ( 'Accordion module instance initialize method' , ( t ) => {
34
- const markup = `
35
- <div data-accordion>
36
- <div data-accordion-item>
37
- <div data-accordion-item-body></div>
38
- </div>
39
- </div>
40
- ` ;
41
- const window = jsdom ( markup ) . defaultView ;
42
- const accordionElement = window . document . querySelector ( 'div[data-accordion]' ) ;
43
- const accordion = new Accordion ( window ) ;
44
- t . ok ( accordion . initialize , 'is defined' ) ;
45
- accordion . initialize ( ) ;
46
- t . ok ( accordionElement . children [ 0 ] . hasAttribute ( 'data-accordion-closed' ) , 'mark accordion items as closed' ) ;
47
- t . end ( ) ;
48
- } ) ;
49
-
50
- tap . test ( 'Accordion module instance collapse method' , ( t ) => {
51
- const markup = `
52
- <div data-accordion>
53
- <div data-accordion-item>
54
- <div data-accordion-item-body></div>
55
- </div>
56
- <div data-accordion-item data-accordion-open></div>
57
- </div>
58
- ` ;
59
- const window = jsdom ( markup ) . defaultView ;
60
- const accordionItemElements = window . document . querySelectorAll ( 'div[data-accordion-item]' ) ;
61
- const itemBody = accordionItemElements [ 0 ] . querySelector ( '*[data-accordion-item-body]' ) ;
62
- const accordion = new Accordion ( window ) ;
63
- t . ok ( accordion . collapse , 'is defined' ) ;
64
- accordion . collapse ( accordionItemElements [ 0 ] ) ;
65
- accordion . collapse ( accordionItemElements [ 1 ] ) ;
66
- t . ok ( accordionItemElements [ 0 ] . hasAttribute ( 'data-accordion-closed' ) , 'mark accordion item closed' ) ;
67
- t . ok ( accordionItemElements [ 1 ] . hasAttribute ( 'data-accordion-closed' ) , 'mark bodyless accordion item closed' ) ;
68
- t . equal ( itemBody . style . display , 'none' , 'hides accordion item body when present' ) ;
69
- t . end ( ) ;
70
- } ) ;
71
-
72
- tap . test ( 'Accordion module instance expand method' , ( t ) => {
73
- const markup = `
74
- <div data-accordion>
75
- <div data-accordion-item>
76
- <div data-accordion-item-body style="display: none;"></div>
77
- </div>
78
- <div data-accordion-item data-accordion-open></div>
79
- </div>
80
- ` ;
81
- const window = jsdom ( markup ) . defaultView ;
82
- const accordionItemElements = window . document . querySelectorAll ( 'div[data-accordion-item]' ) ;
83
- const itemBody = accordionItemElements [ 0 ] . querySelector ( '*[data-accordion-item-body]' ) ;
84
- const accordion = new Accordion ( window ) ;
85
- t . ok ( accordion . expand , 'is defined' ) ;
86
- accordion . expand ( accordionItemElements [ 0 ] ) ;
87
- accordion . expand ( accordionItemElements [ 1 ] ) ;
88
- t . ok ( accordionItemElements [ 0 ] . hasAttribute ( 'data-accordion-open' ) , 'mark accordion item open' ) ;
89
- t . ok ( accordionItemElements [ 1 ] . hasAttribute ( 'data-accordion-open' ) , 'mark bodyless accordion item open' ) ;
90
- t . notEqual ( itemBody . style . display , 'none' , 'hides accordion item body when present' ) ;
30
+ t . ok ( accordion . item ( 0 ) . element ) ;
91
31
t . end ( ) ;
92
32
} ) ;
0 commit comments