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+ } ) ;
0 commit comments