@@ -122,39 +122,77 @@ describe("utils-date", () => {
122122 } ) ;
123123
124124 describe ( "getNow" , ( ) => {
125+ const ENVIRONMENT = process . env ;
125126 const fakeDateInSystem = "2000-01-01T01:01:01Z" ;
126127 const fakeDateInHeader = "1212-12-12T12:12:12Z" ;
127128
128129 beforeEach ( ( ) => {
129- jest . useFakeTimers ( ) ;
130- jest . setSystemTime ( new Date ( fakeDateInSystem ) ) ;
131- } ) ;
132-
133- it ( "should return current date by default" , async ( ) => {
134- expect ( await getNow ( ) ) . toEqual ( new Date ( fakeDateInSystem ) ) ;
135- } ) ;
136-
137- it ( "should return date set in the header, when it is valid" , async ( ) => {
138- const mockHeaders = {
139- get : jest . fn ( ( ) => {
140- return fakeDateInHeader ;
141- } ) ,
142- } ;
143- ( headers as jest . Mock ) . mockResolvedValue ( mockHeaders ) ;
144-
145- expect ( await getNow ( ) ) . toEqual ( new Date ( fakeDateInHeader ) ) ;
130+ jest . resetModules ( ) ;
131+ process . env = { ...ENVIRONMENT } ;
146132 } ) ;
147133
148- it ( "should return current date when date set in the header is malformed" , async ( ) => {
149- const fakeDateInHeaderInvalid = "invalid-date" ;
150- const mockHeaders = {
151- get : jest . fn ( ( ) => {
152- return fakeDateInHeaderInvalid ;
153- } ) ,
154- } ;
155- ( headers as jest . Mock ) . mockResolvedValue ( mockHeaders ) ;
156-
157- expect ( await getNow ( ) ) . toEqual ( new Date ( fakeDateInSystem ) ) ;
134+ afterAll ( ( ) => {
135+ process . env = ENVIRONMENT ;
136+ } ) ;
137+
138+ describe ( "getNow in non-production environments" , ( ) => {
139+ beforeEach ( ( ) => {
140+ jest . useFakeTimers ( ) ;
141+ jest . setSystemTime ( new Date ( fakeDateInSystem ) ) ;
142+ } ) ;
143+
144+ it ( "should return current date by default" , async ( ) => {
145+ expect ( await getNow ( ) ) . toEqual ( new Date ( fakeDateInSystem ) ) ;
146+ } ) ;
147+
148+ it ( "should return date set in the header, when it is valid" , async ( ) => {
149+ const mockHeaders = {
150+ get : jest . fn ( ( ) => {
151+ return fakeDateInHeader ;
152+ } ) ,
153+ } ;
154+ ( headers as jest . Mock ) . mockResolvedValue ( mockHeaders ) ;
155+
156+ expect ( await getNow ( ) ) . toEqual ( new Date ( fakeDateInHeader ) ) ;
157+ } ) ;
158+
159+ it ( "should return current date when date set in the header is malformed" , async ( ) => {
160+ const fakeDateInHeaderInvalid = "invalid-date" ;
161+ const mockHeaders = {
162+ get : jest . fn ( ( ) => {
163+ return fakeDateInHeaderInvalid ;
164+ } ) ,
165+ } ;
166+ ( headers as jest . Mock ) . mockResolvedValue ( mockHeaders ) ;
167+
168+ expect ( await getNow ( ) ) . toEqual ( new Date ( fakeDateInSystem ) ) ;
169+ } ) ;
170+ } ) ;
171+
172+ describe ( "getNow in production environment" , ( ) => {
173+ beforeEach ( ( ) => {
174+ jest . useFakeTimers ( ) ;
175+ jest . setSystemTime ( new Date ( fakeDateInSystem ) ) ;
176+ } ) ;
177+
178+ it ( "should return current date by default in production environment" , async ( ) => {
179+ process . env . DEPLOY_ENVIRONMENT = "prod" ;
180+ expect ( await getNow ( ) ) . toEqual ( new Date ( fakeDateInSystem ) ) ;
181+ } ) ;
182+
183+ it ( "should not check headers when environment is production" , async ( ) => {
184+ process . env . DEPLOY_ENVIRONMENT = "prod" ;
185+
186+ const mockHeaders = {
187+ get : jest . fn ( ( ) => {
188+ return fakeDateInHeader ;
189+ } ) ,
190+ } ;
191+ ( headers as jest . Mock ) . mockResolvedValue ( mockHeaders ) ;
192+
193+ expect ( await getNow ( ) ) . toEqual ( new Date ( fakeDateInSystem ) ) ;
194+ expect ( headers ) . not . toHaveBeenCalled ( ) ;
195+ } ) ;
158196 } ) ;
159197 } ) ;
160198} ) ;
0 commit comments