Skip to content

Commit

Permalink
Removed nesting for accessibility tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Alejandro-Vega committed Oct 10, 2024
1 parent 9c653d7 commit 5d0050b
Showing 1 changed file with 53 additions and 42 deletions.
95 changes: 53 additions & 42 deletions src/components/GenericTable/ColumnVisibilityButton.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,69 @@ import userEvent from "@testing-library/user-event";
import { axe } from "jest-axe";
import ColumnVisibilityButton from "./ColumnVisibilityButton";

const columns: Column[] = [
{ field: "name", label: "Name", hideable: false },
{ field: "age", label: "Age" },
{ field: "email", label: "Email" },
];

const getColumnKey = (column: Column) => column.fieldKey ?? column.field;
const getColumnLabel = (column: Column) => column.label;

let columnVisibilityModel: { [key: string]: boolean };
let setColumnVisibilityModel: jest.Mock;

type Column = {
field: string;
fieldKey?: string;
label: string;
hideable?: boolean;
};

describe("ColumnVisibilityButton", () => {
const columns: Column[] = [
{ field: "name", label: "Name", hideable: false },
{ field: "age", label: "Age" },
{ field: "email", label: "Email" },
];
describe("Accessibility", () => {
beforeEach(() => {
columnVisibilityModel = {
name: true,
age: true,
email: true,
};
setColumnVisibilityModel = jest.fn((model) => {
columnVisibilityModel = model;
});
});

it("should not have accessibility violations when closed", async () => {
const { container } = render(
<ColumnVisibilityButton
columns={columns}
columnVisibilityModel={columnVisibilityModel}
getColumnKey={getColumnKey}
getColumnLabel={getColumnLabel}
onColumnVisibilityModelChange={setColumnVisibilityModel}
/>
);

expect(await axe(container)).toHaveNoViolations();
});

it("should not have accessibility violations when open", async () => {
const { container, getByTestId } = render(
<ColumnVisibilityButton
columns={columns}
columnVisibilityModel={columnVisibilityModel}
getColumnKey={getColumnKey}
getColumnLabel={getColumnLabel}
onColumnVisibilityModelChange={setColumnVisibilityModel}
/>
);

const getColumnKey = (column: Column) => column.fieldKey ?? column.field;
const getColumnLabel = (column: Column) => column.label;
userEvent.click(getByTestId("column-visibility-button"));

let columnVisibilityModel: { [key: string]: boolean };
let setColumnVisibilityModel: jest.Mock;
expect(await axe(container)).toHaveNoViolations();
});
});

describe("ColumnVisibilityButton", () => {
beforeEach(() => {
columnVisibilityModel = {
name: true,
Expand Down Expand Up @@ -147,36 +190,4 @@ describe("ColumnVisibilityButton", () => {
email: true,
});
});

describe("Accessibility", () => {
it("should not have accessibility violations when closed", async () => {
const { container } = render(
<ColumnVisibilityButton
columns={columns}
columnVisibilityModel={columnVisibilityModel}
getColumnKey={getColumnKey}
getColumnLabel={getColumnLabel}
onColumnVisibilityModelChange={setColumnVisibilityModel}
/>
);

expect(await axe(container)).toHaveNoViolations();
});

it("should not have accessibility violations when open", async () => {
const { container, getByTestId } = render(
<ColumnVisibilityButton
columns={columns}
columnVisibilityModel={columnVisibilityModel}
getColumnKey={getColumnKey}
getColumnLabel={getColumnLabel}
onColumnVisibilityModelChange={setColumnVisibilityModel}
/>
);

userEvent.click(getByTestId("column-visibility-button"));

expect(await axe(container)).toHaveNoViolations();
});
});
});

0 comments on commit 5d0050b

Please sign in to comment.