@@ -46,6 +46,7 @@ const DEFAULT_TEST_MANAGEMENT_TESTS_RESPONSE_STATUS = 200
4646
4747class FakeCiVisIntake extends FakeAgent {
4848 #settings = DEFAULT_SETTINGS
49+ #settingsResponseDelayMs = 0
4950 #settingsResponseStatusCode = 200
5051 #settingsResponseStatusCodes = [ ]
5152 #mediaResponseDelayMs = 0
@@ -103,6 +104,16 @@ class FakeCiVisIntake extends FakeAgent {
103104 this . #settings = newSettings
104105 }
105106
107+ /**
108+ * Delays settings responses to exercise initialization ordering.
109+ *
110+ * @param {number } delayMs
111+ * @returns {void }
112+ */
113+ setSettingsResponseDelay ( delayMs ) {
114+ this . #settingsResponseDelayMs = delayMs
115+ }
116+
106117 setSettingsResponseCode ( statusCode ) {
107118 this . #settingsResponseStatusCode = statusCode
108119 }
@@ -280,22 +291,30 @@ class FakeCiVisIntake extends FakeAgent {
280291 '/api/v2/libraries/tests/services/setting' ,
281292 '/evp_proxy/:version/api/v2/libraries/tests/services/setting' ,
282293 ] , ( req , res ) => {
283- const settingsResponseStatusCode = this . #settingsResponseStatusCodes. shift ( ) ??
284- this . #settingsResponseStatusCode
285- res . status ( settingsResponseStatusCode )
286- if ( settingsResponseStatusCode >= 200 && settingsResponseStatusCode < 300 ) {
287- res . send ( JSON . stringify ( {
288- data : {
289- attributes : this . #settings,
290- } ,
291- } ) )
294+ const respond = ( ) => {
295+ const settingsResponseStatusCode = this . #settingsResponseStatusCodes. shift ( ) ??
296+ this . #settingsResponseStatusCode
297+ res . status ( settingsResponseStatusCode )
298+ if ( settingsResponseStatusCode >= 200 && settingsResponseStatusCode < 300 ) {
299+ res . send ( JSON . stringify ( {
300+ data : {
301+ attributes : this . #settings,
302+ } ,
303+ } ) )
304+ } else {
305+ res . send ( JSON . stringify ( { errors : [ 'error' ] } ) )
306+ }
307+ this . emit ( 'message' , {
308+ headers : req . headers ,
309+ url : req . url ,
310+ } )
311+ }
312+
313+ if ( this . #settingsResponseDelayMs > 0 ) {
314+ setTimeout ( respond , this . #settingsResponseDelayMs)
292315 } else {
293- res . send ( JSON . stringify ( { errors : [ 'error' ] } ) )
316+ respond ( )
294317 }
295- this . emit ( 'message' , {
296- headers : req . headers ,
297- url : req . url ,
298- } )
299318 } )
300319
301320 app . post ( [
@@ -417,6 +436,7 @@ class FakeCiVisIntake extends FakeAgent {
417436
418437 stop ( ) {
419438 this . #settings = DEFAULT_SETTINGS
439+ this . #settingsResponseDelayMs = 0
420440 this . #settingsResponseStatusCode = 200
421441 this . #settingsResponseStatusCodes = [ ]
422442 this . #suitesToSkip = DEFAULT_SUITES_TO_SKIP
0 commit comments