Skip to content

Commit 203f008

Browse files
author
Illia Obukhau
committed
test(accordion-web): add test for loadContent prop
1 parent 59cc2b7 commit 203f008

File tree

2 files changed

+198
-0
lines changed

2 files changed

+198
-0
lines changed

packages/pluggableWidgets/accordion-web/src/components/__tests__/AccordionGroup.spec.tsx

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,4 +295,62 @@ describe("AccordionGroup", () => {
295295
expect(accordionGroup).toMatchSnapshot();
296296
});
297297
});
298+
299+
it("render widgets when 'loadContent' is 'always'", () => {
300+
const accordionGroup = mount(
301+
<AccordionGroup
302+
{...defaultAccordionGroupProps}
303+
collapsible
304+
content={<div>Widgets</div>}
305+
loadContent={"always"}
306+
/>
307+
);
308+
expect(accordionGroup.find({ children: "Widgets" })).toHaveLength(1);
309+
expect(accordionGroup).toMatchSnapshot();
310+
});
311+
312+
it("doesn't render widgets when 'loadContent' is 'whenExpanded'", () => {
313+
const accordionGroup = mount(
314+
<AccordionGroup
315+
{...defaultAccordionGroupProps}
316+
collapsible
317+
content={<div>Widgets</div>}
318+
loadContent={"whenExpanded"}
319+
/>
320+
);
321+
expect(accordionGroup.find({ children: "Widgets" })).toHaveLength(0);
322+
expect(accordionGroup).toMatchSnapshot();
323+
});
324+
325+
it("render widgets when 'loadContent' is 'whenExpanded' and 'collapsed' is false", () => {
326+
const accordionGroup = mount(
327+
<AccordionGroup
328+
{...defaultAccordionGroupProps}
329+
collapsible
330+
content={<div>Widgets</div>}
331+
loadContent={"whenExpanded"}
332+
collapsed={false}
333+
/>
334+
);
335+
expect(accordionGroup.find({ children: "Widgets" })).toHaveLength(1);
336+
});
337+
338+
it("keep widgets rendered when 'loadContent' is 'whenExpanded' and 'collapsed' prop became false", () => {
339+
const accordionGroup = mount(
340+
<AccordionGroup
341+
{...defaultAccordionGroupProps}
342+
collapsible
343+
content={<div>Widgets</div>}
344+
loadContent={"whenExpanded"}
345+
collapsed
346+
/>
347+
);
348+
expect(accordionGroup.find({ children: "Widgets" })).toHaveLength(0);
349+
350+
accordionGroup.setProps({ collapsed: false });
351+
expect(accordionGroup.find({ children: "Widgets" })).toHaveLength(1);
352+
353+
accordionGroup.setProps({ collapsed: true });
354+
expect(accordionGroup.find({ children: "Widgets" })).toHaveLength(1);
355+
});
298356
});

packages/pluggableWidgets/accordion-web/src/components/__tests__/__snapshots__/AccordionGroup.spec.tsx.snap

Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,74 @@ exports[`AccordionGroup collapsible renders correctly when the group is visible
289289

290290
exports[`AccordionGroup doesn't render when the group isn't visible 1`] = `""`;
291291

292+
exports[`AccordionGroup doesn't render widgets when 'loadContent' is 'whenExpanded' 1`] = `
293+
<AccordionGroup
294+
animateContent={false}
295+
collapsed={true}
296+
collapsible={true}
297+
content={
298+
<div>
299+
Widgets
300+
</div>
301+
}
302+
dynamicClassName="class-name"
303+
generateHeaderIcon={
304+
[MockFunction] {
305+
"calls": Array [
306+
Array [
307+
true,
308+
],
309+
],
310+
"results": Array [
311+
Object {
312+
"type": "return",
313+
"value": undefined,
314+
},
315+
],
316+
}
317+
}
318+
header="header"
319+
id="id"
320+
loadContent="whenExpanded"
321+
showHeaderIcon="right"
322+
visible={true}
323+
>
324+
<section
325+
className="widget-accordion-group widget-accordion-group-collapsed class-name"
326+
>
327+
<header
328+
className="widget-accordion-group-header"
329+
>
330+
<div
331+
aria-controls="idContentWrapper"
332+
aria-disabled={false}
333+
aria-expanded={false}
334+
className="widget-accordion-group-header-button widget-accordion-group-header-button-clickable widget-accordion-group-header-button-icon-right"
335+
data-focusindex={0}
336+
id="idHeaderButton"
337+
onKeyDown={[Function]}
338+
role="button"
339+
tabIndex={0}
340+
>
341+
header
342+
</div>
343+
</header>
344+
<div
345+
aria-labelledby="idHeaderButton"
346+
className="widget-accordion-group-content-wrapper"
347+
data-focusindex={0}
348+
id="idContentWrapper"
349+
onTransitionEnd={[Function]}
350+
role="region"
351+
>
352+
<div
353+
className="widget-accordion-group-content"
354+
/>
355+
</div>
356+
</section>
357+
</AccordionGroup>
358+
`;
359+
292360
exports[`AccordionGroup not collapsible displays the content when the group becomes visible 1`] = `
293361
<section
294362
className="widget-accordion-group class-name"
@@ -364,3 +432,75 @@ exports[`AccordionGroup not collapsible displays the content when the group is v
364432
</div>
365433
</section>
366434
`;
435+
436+
exports[`AccordionGroup render widgets when 'loadContent' is 'always' 1`] = `
437+
<AccordionGroup
438+
animateContent={false}
439+
collapsed={true}
440+
collapsible={true}
441+
content={
442+
<div>
443+
Widgets
444+
</div>
445+
}
446+
dynamicClassName="class-name"
447+
generateHeaderIcon={
448+
[MockFunction] {
449+
"calls": Array [
450+
Array [
451+
true,
452+
],
453+
],
454+
"results": Array [
455+
Object {
456+
"type": "return",
457+
"value": undefined,
458+
},
459+
],
460+
}
461+
}
462+
header="header"
463+
id="id"
464+
loadContent="always"
465+
showHeaderIcon="right"
466+
visible={true}
467+
>
468+
<section
469+
className="widget-accordion-group widget-accordion-group-collapsed class-name"
470+
>
471+
<header
472+
className="widget-accordion-group-header"
473+
>
474+
<div
475+
aria-controls="idContentWrapper"
476+
aria-disabled={false}
477+
aria-expanded={false}
478+
className="widget-accordion-group-header-button widget-accordion-group-header-button-clickable widget-accordion-group-header-button-icon-right"
479+
data-focusindex={0}
480+
id="idHeaderButton"
481+
onKeyDown={[Function]}
482+
role="button"
483+
tabIndex={0}
484+
>
485+
header
486+
</div>
487+
</header>
488+
<div
489+
aria-labelledby="idHeaderButton"
490+
className="widget-accordion-group-content-wrapper"
491+
data-focusindex={0}
492+
id="idContentWrapper"
493+
onTransitionEnd={[Function]}
494+
role="region"
495+
>
496+
<div
497+
className="widget-accordion-group-content"
498+
>
499+
<div>
500+
Widgets
501+
</div>
502+
</div>
503+
</div>
504+
</section>
505+
</AccordionGroup>
506+
`;

0 commit comments

Comments
 (0)