Skip to content

Commit d3c5ec8

Browse files
committed
feature flag changes
1 parent 99382c5 commit d3c5ec8

File tree

4 files changed

+39
-26
lines changed

4 files changed

+39
-26
lines changed

src/lib/processSnapshot.ts

Lines changed: 35 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ var ALLOWED_RESOURCES = ['document', 'stylesheet', 'image', 'media', 'font', 'ot
1111
const ALLOWED_STATUSES = [200, 201];
1212
const REQUEST_TIMEOUT = 180000;
1313
const MIN_VIEWPORT_HEIGHT = 1080;
14-
const MAX_WAIT_FOR_REQUEST_CALL = 60000;
14+
const MAX_WAIT_FOR_REQUEST_CALL = 30000;
1515

1616
export async function prepareSnapshot(snapshot: Snapshot, ctx: Context): Promise<Record<string, any>> {
1717
let processedOptions: Record<string, any> = {};
@@ -360,10 +360,14 @@ export default async function processSnapshot(snapshot: Snapshot, ctx: Context):
360360
body = globalCache.get(requestUrl).body;
361361
} else {
362362
ctx.log.debug(`Resource not found in cache or global cache ${requestUrl} fetching from server`);
363-
pendingRequests.add(requestUrl);
363+
if(ctx.build.checkPendingRequests){
364+
pendingRequests.add(requestUrl);
365+
}
364366
response = await page.request.fetch(request, requestOptions);
365367
body = await response.body();
366-
pendingRequests.delete(requestUrl);
368+
if(ctx.build.checkPendingRequests){
369+
pendingRequests.delete(requestUrl);
370+
}
367371
}
368372

369373
// handle response
@@ -391,10 +395,14 @@ export default async function processSnapshot(snapshot: Snapshot, ctx: Context):
391395

392396
let responseOfRetry, bodyOfRetry
393397
ctx.log.debug(`Resource had a disallowed status ${requestUrl} fetching from server again`);
394-
pendingRequests.add(requestUrl);
398+
if(ctx.build.checkPendingRequests){
399+
pendingRequests.add(requestUrl);
400+
}
395401
responseOfRetry = await page.request.fetch(request, requestOptions);
396402
bodyOfRetry = await responseOfRetry.body();
397-
pendingRequests.delete(requestUrl);
403+
if(ctx.build.checkPendingRequests){
404+
pendingRequests.delete(requestUrl);
405+
}
398406
if (responseOfRetry && responseOfRetry.status() && ALLOWED_STATUSES.includes(responseOfRetry.status())) {
399407
ctx.log.debug(`Handling request after retry ${requestUrl}\n - content-type ${responseOfRetry.headers()['content-type']}`);
400408
cache[requestUrl] = {
@@ -663,27 +671,6 @@ export default async function processSnapshot(snapshot: Snapshot, ctx: Context):
663671
} catch (error) {
664672
ctx.log.debug(`Network idle failed due to ${error}`);
665673
}
666-
667-
// Wait for pending requests to complete
668-
const checkPending = async () => {
669-
const startTime = Date.now();
670-
ctx.log.debug(`${pendingRequests.size} Pending requests before wait for ${snapshot.name}: ${Array.from(pendingRequests)}`);
671-
while (pendingRequests.size > 0) {
672-
const elapsedTime = Date.now() - startTime;
673-
if (elapsedTime >= MAX_WAIT_FOR_REQUEST_CALL) {
674-
ctx.log.debug(`Timeout reached (${MAX_WAIT_FOR_REQUEST_CALL/1000}s). Stopping wait for pending requests.`);
675-
ctx.log.debug(`${pendingRequests.size} Pending requests after wait for ${snapshot.name}: ${Array.from(pendingRequests)}`);
676-
677-
break;
678-
}
679-
await new Promise(resolve => setTimeout(resolve, 1000));
680-
}
681-
if(pendingRequests.size === 0) {
682-
ctx.log.debug(`No pending requests for ${snapshot.name}.`);
683-
}
684-
};
685-
686-
await checkPending();
687674

688675

689676

@@ -874,6 +861,28 @@ export default async function processSnapshot(snapshot: Snapshot, ctx: Context):
874861
ctx.log.debug(`Processed options: ${JSON.stringify(processedOptions)}`);
875862
}
876863

864+
// Wait for pending requests to complete
865+
const checkPending = async () => {
866+
let startTime = Date.now();
867+
ctx.log.debug(`${pendingRequests.size} Pending requests before wait for ${snapshot.name}: ${Array.from(pendingRequests)}`);
868+
while (pendingRequests.size > 0) {
869+
const elapsedTime = Date.now() - startTime;
870+
if (elapsedTime >= MAX_WAIT_FOR_REQUEST_CALL) {
871+
ctx.log.debug(`Timeout reached (${MAX_WAIT_FOR_REQUEST_CALL/1000}s). Stopping wait for pending requests.`);
872+
ctx.log.debug(`${pendingRequests.size} Pending requests after wait for ${snapshot.name}: ${Array.from(pendingRequests)}`);
873+
break;
874+
}
875+
await new Promise(resolve => setTimeout(resolve, 1000));
876+
}
877+
if(pendingRequests.size === 0) {
878+
ctx.log.debug(`No pending requests for ${snapshot.name}.`);
879+
}
880+
};
881+
882+
if (ctx.build.checkPendingRequests) {
883+
await checkPending();
884+
}
885+
877886

878887
let hasBrowserErrors = false;
879888
for (let browser in discoveryErrors.browsers) {

src/tasks/createBuild.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export default (ctx: Context): ListrTask<Context, ListrRendererFactory, ListrRen
1818
url: resp.data.buildURL,
1919
baseline: resp.data.baseline,
2020
useKafkaFlow: resp.data.useKafkaFlow || false,
21+
checkPendingRequests: resp.data.checkPendingRequests || false,
2122
}
2223
process.env.SMARTUI_BUILD_ID = resp.data.buildId;
2324
process.env.SMARTUI_BUILD_NAME = resp.data.buildName;

src/tasks/createBuildExec.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,15 @@ export default (ctx: Context): ListrTask<Context, ListrRendererFactory, ListrRen
1313
try {
1414
if (ctx.authenticatedInitially && !ctx.config.skipBuildCreation) {
1515
let resp = await ctx.client.createBuild(ctx.git, ctx.config, ctx.log, ctx.build.name, ctx.isStartExec, ctx.env.SMART_GIT, ctx.options.markBaseline, ctx.options.baselineBuild, ctx.options.scheduled,ctx.env.LT_USERNAME,ctx.env.LT_ACCESS_KEY);
16+
ctx.log.debug(`resp from createBuild: ${JSON.stringify(resp)}`);
1617
if (resp && resp.data && resp.data.buildId) {
1718
ctx.build = {
1819
id: resp.data.buildId,
1920
name: resp.data.buildName,
2021
url: resp.data.buildURL,
2122
baseline: resp.data.baseline,
2223
useKafkaFlow: resp.data.useKafkaFlow || false,
24+
checkPendingRequests: resp.data.checkPendingRequests || false,
2325
}
2426
process.env.SMARTUI_BUILD_ID = resp.data.buildId;
2527
process.env.SMARTUI_BUILD_NAME = resp.data.buildName;

src/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,7 @@ export interface Build {
200200
useKafkaFlow: boolean;
201201
hasDiscoveryError: boolean;
202202
projectId?: string;
203+
checkPendingRequests: boolean;
203204
}
204205

205206
export interface WebConfig {

0 commit comments

Comments
 (0)