@@ -8,4 +8,77 @@ describe('AccordionMenu', () => {
88 expect ( component ) . toMatchSnapshot ( ) ;
99 component . unmount ( ) ;
1010 } ) ;
11+
12+ describe ( 'Section' , ( ) => {
13+ it ( 'matches snapshot' , ( ) => {
14+ const component = shallow ( < AccordionMenu . Section heading = "TestHeading" /> ) ;
15+ expect ( component ) . toMatchSnapshot ( ) ;
16+ component . unmount ( ) ;
17+ } ) ;
18+
19+ it ( 'passes through text' , ( ) => {
20+ const component = shallow ( < AccordionMenu . Section heading = "TestHeading" /> ) ;
21+ expect ( component . find ( '.nhsuk-accordion-menu__section-summary-text' ) . text ( ) ) . toBe (
22+ 'TestHeading' ,
23+ ) ;
24+ component . unmount ( ) ;
25+ } ) ;
26+
27+ it ( 'handles defaultOpen' , ( ) => {
28+ const component = shallow (
29+ < AccordionMenu . Section id = "accordion" heading = "Heading" defaultOpen /> ,
30+ ) ;
31+ const event = {
32+ preventDefault : jest . fn ( ) ,
33+ } ;
34+
35+ expect ( component . find ( '#accordion' ) . getElement ( ) . props . open ) . toBe ( true ) ;
36+ component . find ( 'summary' ) . simulate ( 'click' , event ) ;
37+ expect ( event . preventDefault ) . toHaveBeenCalledTimes ( 1 ) ;
38+ expect ( component . find ( '#accordion' ) . getElement ( ) . props . open ) . toBe ( false ) ;
39+ component . find ( 'summary' ) . simulate ( 'click' , event ) ;
40+ expect ( event . preventDefault ) . toHaveBeenCalledTimes ( 2 ) ;
41+ expect ( component . find ( '#accordion' ) . getElement ( ) . props . open ) . toBe ( true ) ;
42+ component . unmount ( ) ;
43+ } ) ;
44+ it ( 'handles open={true}' , ( ) => {
45+ const component = shallow ( < AccordionMenu . Section id = "accordion" heading = "Heading" open /> ) ;
46+ const event = {
47+ preventDefault : jest . fn ( ) ,
48+ } ;
49+ expect ( component . find ( '#accordion' ) . getElement ( ) . props . open ) . toBe ( true ) ;
50+ component . find ( 'summary' ) . simulate ( 'click' , event ) ;
51+ expect ( event . preventDefault ) . toHaveBeenCalledTimes ( 1 ) ;
52+ expect ( component . find ( '#accordion' ) . getElement ( ) . props . open ) . toBe ( true ) ;
53+ component . find ( 'summary' ) . simulate ( 'click' , event ) ;
54+ expect ( event . preventDefault ) . toHaveBeenCalledTimes ( 2 ) ;
55+ expect ( component . find ( '#accordion' ) . getElement ( ) . props . open ) . toBe ( true ) ;
56+ component . unmount ( ) ;
57+ } ) ;
58+
59+ it ( 'handles open={false}' , ( ) => {
60+ const component = shallow (
61+ < AccordionMenu . Section id = "accordion" heading = "Heading" open = { false } /> ,
62+ ) ;
63+ const event = {
64+ preventDefault : jest . fn ( ) ,
65+ } ;
66+ expect ( component . find ( '#accordion' ) . getElement ( ) . props . open ) . toBe ( false ) ;
67+ component . find ( 'summary' ) . simulate ( 'click' , event ) ;
68+ expect ( event . preventDefault ) . toHaveBeenCalledTimes ( 1 ) ;
69+ expect ( component . find ( '#accordion' ) . getElement ( ) . props . open ) . toBe ( false ) ;
70+ component . find ( 'summary' ) . simulate ( 'click' , event ) ;
71+ expect ( event . preventDefault ) . toHaveBeenCalledTimes ( 2 ) ;
72+ expect ( component . find ( '#accordion' ) . getElement ( ) . props . open ) . toBe ( false ) ;
73+ component . unmount ( ) ;
74+ } ) ;
75+ } ) ;
76+ describe ( 'Link' , ( ) => {
77+ it ( 'matches snapshot' , ( ) => {
78+ const component = shallow ( < AccordionMenu . Link > Test</ AccordionMenu . Link > ) ;
79+ expect ( component ) . toMatchSnapshot ( ) ;
80+ expect ( component . text ( ) ) . toBe ( 'Test' ) ;
81+ component . unmount ( ) ;
82+ } ) ;
83+ } ) ;
1184} ) ;
0 commit comments