@@ -21,12 +21,11 @@ export default async function processSnapshot(snapshot: Snapshot, ctx: Context):
21
21
url : "" ,
22
22
timestamp : "" ,
23
23
snapshotUUID : "" ,
24
- browsers : {
25
- chrome : { }
26
- }
24
+ browsers : { }
27
25
} ;
28
26
29
27
let globalViewport = ""
28
+ let globalBrowser = constants . CHROME
30
29
let launchOptions : Record < string , any > = {
31
30
headless : isHeadless ,
32
31
args : constants . LAUNCH_ARGS
@@ -160,13 +159,19 @@ export default async function processSnapshot(snapshot: Snapshot, ctx: Context):
160
159
url : requestUrl ,
161
160
resourceType : request . resourceType ( ) ,
162
161
}
163
- if ( ! discoveryErrors . browsers . chrome ) {
164
- discoveryErrors . browsers . chrome = { } ;
162
+
163
+ if ( ! discoveryErrors . browsers [ globalBrowser ] ) {
164
+ discoveryErrors . browsers [ globalBrowser ] = { } ; }
165
+
166
+ // Check if the discoveryErrors.browsers[globalBrowser] exists, and if not, initialize it
167
+ if ( discoveryErrors . browsers [ globalBrowser ] && ! discoveryErrors . browsers [ globalBrowser ] [ globalViewport ] ) {
168
+ discoveryErrors . browsers [ globalBrowser ] [ globalViewport ] = [ ] ;
165
169
}
166
- if ( ! discoveryErrors . browsers . chrome [ globalViewport ] ) {
167
- discoveryErrors . browsers . chrome [ globalViewport ] = [ ] ;
170
+
171
+ // Dynamically push the data into the correct browser and viewport
172
+ if ( discoveryErrors . browsers [ globalBrowser ] ) {
173
+ discoveryErrors . browsers [ globalBrowser ] [ globalViewport ] ?. push ( data ) ;
168
174
}
169
- discoveryErrors . browsers . chrome [ globalViewport ] ?. push ( data ) ;
170
175
171
176
} else {
172
177
ctx . log . debug ( `Handling request ${ requestUrl } \n - content-type ${ response . headers ( ) [ 'content-type' ] } ` ) ;
@@ -329,6 +334,11 @@ export default async function processSnapshot(snapshot: Snapshot, ctx: Context):
329
334
ctx . log . debug ( `Page resized to ${ viewport . width } x${ viewport . height || MIN_VIEWPORT_HEIGHT } ` ) ;
330
335
globalViewport = viewportString ;
331
336
ctx . log . debug ( `globalViewport : ${ globalViewport } ` ) ;
337
+ if ( globalViewport . toLowerCase ( ) . includes ( "iphone" ) || globalViewport . toLowerCase ( ) . includes ( "ipad" ) ) {
338
+ globalBrowser = constants . WEBKIT ;
339
+ } else {
340
+ globalBrowser = constants . CHROME ;
341
+ }
332
342
333
343
// navigate to snapshot url once
334
344
if ( ! navigated ) {
@@ -426,8 +436,24 @@ export default async function processSnapshot(snapshot: Snapshot, ctx: Context):
426
436
ctx . log . debug ( `Processed options: ${ JSON . stringify ( processedOptions ) } ` ) ;
427
437
}
428
438
429
- discoveryErrors . timestamp = new Date ( ) . toISOString ( ) ;
439
+
440
+ let hasBrowserErrors = false ;
441
+ for ( let browser in discoveryErrors . browsers ) {
442
+ if ( discoveryErrors . browsers [ browser ] ) {
443
+ for ( let viewport in discoveryErrors . browsers [ browser ] ) {
444
+ if ( discoveryErrors . browsers [ browser ] [ viewport ] . length > 0 ) {
445
+ hasBrowserErrors = true ;
446
+ ctx . build . hasDiscoveryError = true
447
+ break ;
448
+ }
449
+ }
450
+ }
451
+ }
430
452
453
+ if ( hasBrowserErrors ) {
454
+ discoveryErrors . timestamp = new Date ( ) . toISOString ( ) ;
455
+ // ctx.log.warn(discoveryErrors);
456
+ }
431
457
return {
432
458
processedSnapshot : {
433
459
name : snapshot . name ,
0 commit comments