@@ -2,6 +2,7 @@ import { render, screen, within } from '@testing-library/react';
22import { useAuthStatus } from '@hooks/use-auth-status' ;
33import { getSessionServer } from '@utils/amplify-utils' ;
44import { getIdTokenClaims } from '@utils/token-utils' ;
5+ import { serverIsFeatureEnabled } from '@utils/server-features' ;
56import { NhsNotifyHeader } from '@molecules/Header/Header' ;
67
78jest . mock ( '@hooks/use-auth-status' ) ;
@@ -13,11 +14,15 @@ const mockGetIdTokenClaims = jest.mocked(getIdTokenClaims);
1314jest . mock ( '@utils/amplify-utils' ) ;
1415const mockGetSessionServer = jest . mocked ( getSessionServer ) ;
1516
17+ jest . mock ( '@utils/server-features' ) ;
18+ const mockServerIsFeatureEnabled = jest . mocked ( serverIsFeatureEnabled ) ;
19+
1620jest . mock ( 'nhs-notify-web-template-management-utils/logger' ) ;
1721
1822beforeEach ( ( ) => {
1923 jest . resetAllMocks ( ) ;
2024 mockUseAuthStatus . mockImplementation ( ( status ) => status ?? 'configuring' ) ;
25+ mockServerIsFeatureEnabled . mockResolvedValue ( false ) ; // default for most tests
2126} ) ;
2227
2328describe ( 'NhsNotifyHeader' , ( ) => {
@@ -28,7 +33,7 @@ describe('NhsNotifyHeader', () => {
2833 } ) ;
2934
3035 it ( 'initializes the authStatus as unauthenticated' , async ( ) => {
31- const header = await NhsNotifyHeader ( { } ) ;
36+ const header = await NhsNotifyHeader ( ) ;
3237
3338 render ( header ) ;
3439
@@ -40,7 +45,7 @@ describe('NhsNotifyHeader', () => {
4045 } ) ;
4146
4247 it ( 'renders the logo and service name with the correct url' , async ( ) => {
43- const header = await NhsNotifyHeader ( { } ) ;
48+ const header = await NhsNotifyHeader ( ) ;
4449
4550 render ( header ) ;
4651
@@ -54,15 +59,15 @@ describe('NhsNotifyHeader', () => {
5459 } ) ;
5560
5661 it ( `renders the authentication link as 'sign in'` , async ( ) => {
57- const header = await NhsNotifyHeader ( { } ) ;
62+ const header = await NhsNotifyHeader ( ) ;
5863
5964 render ( header ) ;
6065
6166 expect ( screen . getByTestId ( 'sign-in-link' ) ) . toHaveTextContent ( 'Sign in' ) ;
6267 } ) ;
6368
6469 it ( 'does not show the navigation links' , async ( ) => {
65- const header = await NhsNotifyHeader ( { } ) ;
70+ const header = await NhsNotifyHeader ( ) ;
6671
6772 render ( header ) ;
6873
@@ -72,7 +77,7 @@ describe('NhsNotifyHeader', () => {
7277 } ) ;
7378
7479 it ( 'matches snapshot (unauthenticated)' , async ( ) => {
75- const header = await NhsNotifyHeader ( { } ) ;
80+ const header = await NhsNotifyHeader ( ) ;
7681
7782 const container = render ( header ) ;
7883
@@ -94,11 +99,9 @@ describe('NhsNotifyHeader', () => {
9499 } ) ;
95100
96101 it ( 'initializes the authStatus as authenticated' , async ( ) => {
97- const header = await NhsNotifyHeader ( { } ) ;
98-
102+ const header = await NhsNotifyHeader ( ) ;
99103 render ( header ) ;
100104
101- // hook used in AuthLink, HeaderNavigation, HeaderAccountDetails
102105 expect ( mockUseAuthStatus ) . toHaveBeenCalledTimes ( 3 ) ;
103106
104107 for ( const call of mockUseAuthStatus . mock . calls ) {
@@ -107,7 +110,7 @@ describe('NhsNotifyHeader', () => {
107110 } ) ;
108111
109112 it ( 'renders the users display name' , async ( ) => {
110- const header = await NhsNotifyHeader ( { } ) ;
113+ const header = await NhsNotifyHeader ( ) ;
111114
112115 render ( header ) ;
113116
@@ -117,7 +120,7 @@ describe('NhsNotifyHeader', () => {
117120 } ) ;
118121
119122 it ( 'renders the client name' , async ( ) => {
120- const header = await NhsNotifyHeader ( { } ) ;
123+ const header = await NhsNotifyHeader ( ) ;
121124
122125 render ( header ) ;
123126
@@ -127,7 +130,7 @@ describe('NhsNotifyHeader', () => {
127130 } ) ;
128131
129132 it ( `renders auth link as 'Sign out'` , async ( ) => {
130- const header = await NhsNotifyHeader ( { } ) ;
133+ const header = await NhsNotifyHeader ( ) ;
131134
132135 render ( header ) ;
133136 expect ( screen . getByTestId ( 'sign-out-link' ) ) . toHaveTextContent ( 'Sign out' ) ;
@@ -139,7 +142,7 @@ describe('NhsNotifyHeader', () => {
139142 } ) ;
140143 mockGetIdTokenClaims . mockReturnValueOnce ( { } ) ;
141144
142- const header = await NhsNotifyHeader ( { } ) ;
145+ const header = await NhsNotifyHeader ( ) ;
143146
144147 render ( header ) ;
145148
@@ -161,8 +164,12 @@ describe('NhsNotifyHeader', () => {
161164 } ) ;
162165
163166 describe ( `with 'routing' flag enabled` , ( ) => {
167+ beforeEach ( ( ) => {
168+ mockServerIsFeatureEnabled . mockResolvedValue ( true ) ;
169+ } ) ;
170+
164171 it ( 'renders both the navigation links with correct hrefs' , async ( ) => {
165- const header = await NhsNotifyHeader ( { routingEnabled : true } ) ;
172+ const header = await NhsNotifyHeader ( ) ;
166173
167174 render ( header ) ;
168175
@@ -183,8 +190,12 @@ describe('NhsNotifyHeader', () => {
183190 } ) ;
184191
185192 describe ( `with 'routing' flag disabled` , ( ) => {
193+ beforeEach ( ( ) => {
194+ mockServerIsFeatureEnabled . mockResolvedValue ( false ) ;
195+ } ) ;
196+
186197 it ( 'renders the templates link with correct href' , async ( ) => {
187- const header = await NhsNotifyHeader ( { routingEnabled : false } ) ;
198+ const header = await NhsNotifyHeader ( ) ;
188199
189200 render ( header ) ;
190201
@@ -197,7 +208,7 @@ describe('NhsNotifyHeader', () => {
197208 } ) ;
198209
199210 it ( 'should not render the message plans link' , async ( ) => {
200- const header = await NhsNotifyHeader ( { routingEnabled : false } ) ;
211+ const header = await NhsNotifyHeader ( ) ;
201212
202213 render ( header ) ;
203214
0 commit comments