Skip to content

Commit 6faf579

Browse files
committed
La til testing-library og jest-axe for å kunne teste komponenter.
1 parent d0d2f3b commit 6faf579

File tree

3 files changed

+258
-5
lines changed

3 files changed

+258
-5
lines changed
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
import { render, screen } from '@testing-library/react';
2+
import '@testing-library/jest-dom';
3+
import { axe, toHaveNoViolations } from 'jest-axe';
4+
5+
expect.extend(toHaveNoViolations);
6+
7+
const mockfunc = jest.fn();
8+
9+
function Testkomponent({ lagAxeFeil = false }: { lagAxeFeil?: boolean }) {
10+
return (
11+
<div>
12+
<div>Dette er en testkomponent. Testing-library burde kunne finne tekstinnholdet.</div>
13+
<button onClick={mockfunc}>Klikk meg</button>
14+
{/* eslint-disable-next-line jsx-a11y/alt-text */}
15+
{lagAxeFeil && <img src="#" />}
16+
</div>
17+
);
18+
}
19+
20+
describe('Testkomponent', () => {
21+
beforeEach(() => {
22+
jest.clearAllMocks();
23+
});
24+
25+
it('Rendrer korrekt', () => {
26+
render(<Testkomponent />);
27+
expect(screen.getByText('Dette er en testkomponent.', { exact: false })).toBeInTheDocument();
28+
});
29+
30+
it('Testing av mockfunksjoner', () => {
31+
render(<Testkomponent />);
32+
33+
expect(mockfunc).not.toHaveBeenCalled();
34+
35+
const button = screen.getByText('Klikk meg');
36+
button.click();
37+
38+
expect(mockfunc).toHaveBeenCalled();
39+
});
40+
41+
it('Mocks cleares mellom tester (krever at du kjører alle tester)', () => {
42+
render(<Testkomponent />);
43+
44+
expect(mockfunc).not.toHaveBeenCalled();
45+
46+
const button = screen.getByText('Klikk meg');
47+
button.click();
48+
49+
expect(mockfunc).toHaveBeenCalled();
50+
});
51+
52+
it("Fanger opp axe-feil", async () => {
53+
const { container } = render(<Testkomponent lagAxeFeil />);
54+
const results = await axe(container);
55+
expect(results).not.toHaveNoViolations();
56+
});
57+
58+
it("Gir ikke axe-feil når komponenten er korrekt", async () => {
59+
const { container } = render(<Testkomponent />);
60+
const results = await axe(container);
61+
expect(results).toHaveNoViolations();
62+
});
63+
});

client/package-lock.json

Lines changed: 191 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

client/package.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,10 @@
4242
"@storybook/react": "^9.1.10",
4343
"@storybook/react-vite": "^9.1.10",
4444
"@storybook/testing-library": "0.2.2",
45+
"@testing-library/dom": "10.4.1",
46+
"@testing-library/react": "16.3.0",
4547
"@types/jest": "30.0.0",
48+
"@types/jest-axe": "3.5.9",
4649
"@types/react": "19.2.2",
4750
"@types/react-dom": "19.2.1",
4851
"@typescript-eslint/eslint-plugin": "^8.46.0",
@@ -55,6 +58,7 @@
5558
"eslint-plugin-storybook": "^9.1.10",
5659
"husky": "9.1.7",
5760
"jest": "30.2.0",
61+
"jest-axe": "10.0.0",
5862
"jest-environment-jsdom": "30.2.0",
5963
"msw": "2.11.4",
6064
"msw-storybook-addon": "2.0.5",

0 commit comments

Comments
 (0)