@@ -2,33 +2,44 @@ import Header from "@/components/sections/communities/_partials/Header";
2
2
import { render , screen } from "@testing-library/react" ;
3
3
import "@testing-library/jest-dom" ;
4
4
5
+ const headerProps = {
6
+ description : "Test Description" ,
7
+ title : "Test Title" ,
8
+ subtitle : "Test Subtitle" ,
9
+ isTeamChallenge : true ,
10
+ isHackathon : true ,
11
+ } ;
12
+
5
13
describe ( "Header" , ( ) => {
6
14
it ( "renders the Header with Props" , ( ) => {
7
- render ( < Header description = "Test Description" title = "Test Title" subtitle = "Test Subtitle" isTeamChallenge = { true } isHackathon = { true } /> ) ;
8
- expect ( screen . getByText ( "Test Description" ) ) . toBeInTheDocument ( ) ;
9
- expect ( screen . getByText ( "Test Title" ) ) . toBeInTheDocument ( ) ;
10
- expect ( screen . getByText ( "Test Subtitle" ) ) . toBeInTheDocument ( ) ;
11
- expect ( screen . getByText ( "Hackathon" ) ) . toBeInTheDocument ( ) ;
15
+ render (
16
+ < Header
17
+ description = { headerProps . description }
18
+ title = { headerProps . title }
19
+ subtitle = { headerProps . subtitle }
20
+ isTeamChallenge = { headerProps . isTeamChallenge }
21
+ isHackathon = { headerProps . isHackathon }
22
+ />
23
+ ) ;
24
+ expect ( screen . getByRole ( "heading" , { name : headerProps . title } ) ) . toBeInTheDocument ( ) ;
25
+ expect ( screen . getByRole ( "heading" , { name : new RegExp ( headerProps . subtitle ) } ) ) . toBeInTheDocument ( ) ;
26
+ expect ( screen . getByTestId ( "tag" ) ) . toBeInTheDocument ( ) ;
27
+ expect ( screen . getByText ( headerProps . description ) ) . toBeInTheDocument ( ) ;
12
28
} ) ;
13
29
14
30
it ( "does not render subtitle when not provided" , ( ) => {
15
31
render ( < Header /> ) ;
16
- expect ( screen . queryByText ( "Test Subtitle" ) ) . not . toBeInTheDocument ( ) ;
17
- } ) ;
18
-
19
- it ( "conditionally renders the description" , ( ) => {
20
- render ( < Header description = "Test Description" /> ) ;
21
- expect ( screen . getByText ( "Test Description" ) ) . toBeInTheDocument ( ) ;
32
+ expect ( screen . queryByRole ( "heading" , { name : new RegExp ( headerProps . subtitle ) } ) ) . toBe ( null ) ;
33
+ expect ( screen . queryByRole ( "tag" ) ) . toBe ( null ) ;
22
34
} ) ;
23
35
24
- it ( "renders 'TEAM' tag when isTeamChallenge is true and isHackathon is false" , ( ) => {
25
- render ( < Header subtitle = "Test Subtitle" isTeamChallenge = { true } isHackathon = { false } /> ) ;
36
+ it ( "renders 'TEAM' if isHackathon is false" , ( ) => {
37
+ render ( < Header subtitle = { headerProps . subtitle } isTeamChallenge = { headerProps . isTeamChallenge } /> ) ;
26
38
expect ( screen . getByText ( "TEAM" ) ) . toBeInTheDocument ( ) ;
27
39
} ) ;
28
40
29
- it ( "does not render 'TEAM' or 'Hackathon' tag when isTeamChallenge is false" , ( ) => {
30
- render ( < Header /> ) ;
31
- expect ( screen . queryByText ( "TEAM" ) ) . not . toBeInTheDocument ( ) ;
32
- expect ( screen . queryByText ( "Hackathon" ) ) . not . toBeInTheDocument ( ) ;
41
+ it ( "renders 'Hackathon' if isHackathon is true" , ( ) => {
42
+ render ( < Header subtitle = { headerProps . subtitle } isTeamChallenge = { headerProps . isTeamChallenge } isHackathon = { headerProps . isHackathon } /> ) ;
43
+ expect ( screen . getByText ( "Hackathon" ) ) . toBeInTheDocument ( ) ;
33
44
} ) ;
34
45
} ) ;
0 commit comments