Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
242 changes: 105 additions & 137 deletions semcore/accordion/__tests__/accordion.browser-test.tsx

Large diffs are not rendered by default.

107 changes: 22 additions & 85 deletions semcore/accordion/__tests__/index.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -68,17 +68,21 @@ describe('Accordion', (test) => {
expect(result).toMatchSnapshot();
});

test.concurrent('Verify supports uncontrolled mode with single expandable item', async () => {
const renderItems = () => (
<>
<Accordion.Item value={1}>
<Accordion.Item.Toggle>Item 1</Accordion.Item.Toggle>
</Accordion.Item>
<Accordion.Item value={2}>
<Accordion.Item.Toggle>Item 2</Accordion.Item.Toggle>
</Accordion.Item>
</>
);

test('Verify supports uncontrolled mode with single expandable item', async () => {
const spy = vi.fn();
const { getByText } = render(
<Accordion onChange={spy} defaultValue={null}>
<Accordion.Item value={1}>
<Accordion.Item.Toggle>Item 1</Accordion.Item.Toggle>
</Accordion.Item>
<Accordion.Item value={2}>
<Accordion.Item.Toggle>Item 2</Accordion.Item.Toggle>
</Accordion.Item>
</Accordion>,
<Accordion onChange={spy} defaultValue={null}>{renderItems()}</Accordion>,
);

await userEvent.click(getByText('Item 1'));
Expand All @@ -93,59 +97,26 @@ describe('Accordion', (test) => {

test('Verify supports controlled mode with single expandable item', async () => {
const spy = vi.fn();

const { getByText, rerender } = render(
<Accordion onChange={spy} value={null}>
<Accordion.Item value={1}>
<Accordion.Item.Toggle>Item 1</Accordion.Item.Toggle>
</Accordion.Item>
<Accordion.Item value={2}>
<Accordion.Item.Toggle>Item 2</Accordion.Item.Toggle>
</Accordion.Item>
</Accordion>,
<Accordion onChange={spy} value={null}>{renderItems()}</Accordion>,
);

await userEvent.click(getByText('Item 1'));
expect(spy).toBeCalledWith(1);

rerender(
<Accordion onChange={spy} value={1}>
<Accordion.Item value={1}>
<Accordion.Item.Toggle>Item 1</Accordion.Item.Toggle>
</Accordion.Item>
<Accordion.Item value={2}>
<Accordion.Item.Toggle>Item 2</Accordion.Item.Toggle>
</Accordion.Item>
</Accordion>,
);
rerender(<Accordion onChange={spy} value={1}>{renderItems()}</Accordion>);
await userEvent.click(getByText('Item 2'));
expect(spy).toBeCalledWith(2);

rerender(
<Accordion onChange={spy} value={2}>
<Accordion.Item value={1}>
<Accordion.Item.Toggle>Item 1</Accordion.Item.Toggle>
</Accordion.Item>
<Accordion.Item value={2}>
<Accordion.Item.Toggle>Item 2</Accordion.Item.Toggle>
</Accordion.Item>
</Accordion>,
);
rerender(<Accordion onChange={spy} value={2}>{renderItems()}</Accordion>);
await userEvent.click(getByText('Item 2'));
expect(spy).toBeCalledWith(null);
});

test('Verify supports uncontrolled mode with multiple expandable items', async () => {
const spy = vi.fn();
const { getByText } = render(
<Accordion onChange={spy}>
<Accordion.Item value={1}>
<Accordion.Item.Toggle>Item 1</Accordion.Item.Toggle>
</Accordion.Item>
<Accordion.Item value={2}>
<Accordion.Item.Toggle>Item 2</Accordion.Item.Toggle>
</Accordion.Item>
</Accordion>,
<Accordion onChange={spy}>{renderItems()}</Accordion>,
);

await userEvent.click(getByText('Item 1'));
Expand All @@ -163,56 +134,22 @@ describe('Accordion', (test) => {

test('Verify supports controlled mode with multiple expandable items', async () => {
const spy = vi.fn();

const { getByText, rerender } = render(
<Accordion onChange={spy} value={[]}>
<Accordion.Item value={1}>
<Accordion.Item.Toggle>Item 1</Accordion.Item.Toggle>
</Accordion.Item>
<Accordion.Item value={2}>
<Accordion.Item.Toggle>Item 2</Accordion.Item.Toggle>
</Accordion.Item>
</Accordion>,
<Accordion onChange={spy} value={[]}>{renderItems()}</Accordion>,
);

await userEvent.click(getByText('Item 1'));
expect(spy).toBeCalledWith([1]);

rerender(
<Accordion onChange={spy} value={[1]}>
<Accordion.Item value={1}>
<Accordion.Item.Toggle>Item 1</Accordion.Item.Toggle>
</Accordion.Item>
<Accordion.Item value={2}>
<Accordion.Item.Toggle>Item 2</Accordion.Item.Toggle>
</Accordion.Item>
</Accordion>,
);
rerender(<Accordion onChange={spy} value={[1]}>{renderItems()}</Accordion>);
await userEvent.click(getByText('Item 2'));
expect(spy).toBeCalledWith([1, 2]);

rerender(
<Accordion onChange={spy} value={[1, 2]}>
<Accordion.Item value={1}>
<Accordion.Item.Toggle>Item 1</Accordion.Item.Toggle>
</Accordion.Item>
<Accordion.Item value={2}>
<Accordion.Item.Toggle>Item 2</Accordion.Item.Toggle>
</Accordion.Item>
</Accordion>,
);
rerender(<Accordion onChange={spy} value={[1, 2]}>{renderItems()}</Accordion>);
await userEvent.click(getByText('Item 1'));
expect(spy).toBeCalledWith([2]);

rerender(
<Accordion onChange={spy} value={[2]}>
<Accordion.Item value={1}>
<Accordion.Item.Toggle>Item 1</Accordion.Item.Toggle>
</Accordion.Item>
<Accordion.Item value={2}>
<Accordion.Item.Toggle>Item 2</Accordion.Item.Toggle>
</Accordion.Item>
</Accordion>,
);
rerender(<Accordion onChange={spy} value={[2]}>{renderItems()}</Accordion>);
await userEvent.click(getByText('Item 2'));
expect(spy).toBeCalledWith([]);
});
Expand Down
1 change: 1 addition & 0 deletions semcore/add-filter/__tests__/add-filter.axe-test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ test.describe(`@add-filter ${TAG.ACCESSIBILITY}`, () => {
expect(violations).toEqual([]);
}
{
await expect(page.getByRole('menuitem', { name: 'Color' })).toBeFocused();
await page.keyboard.press('Enter');
await page.getByRole('menuitem', { name: 'Color' }).waitFor({ state: 'hidden' });
const violations = await getAccessibilityViolations({ page });
Expand Down
Loading
Loading