Skip to content

Commit 4669ec4

Browse files
authored
Merge pull request #271 from LambdaTest/stage
Release PR version 4.1.7-beta.5
2 parents 9f5da02 + a43a778 commit 4669ec4

File tree

2 files changed

+44
-17
lines changed

2 files changed

+44
-17
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@lambdatest/smartui-cli",
3-
"version": "4.1.7-beta.4",
3+
"version": "4.1.7-beta.5",
44
"description": "A command line interface (CLI) to run SmartUI tests on LambdaTest",
55
"files": [
66
"dist/**/*"

src/lib/processSnapshot.ts

+43-16
Original file line numberDiff line numberDiff line change
@@ -159,25 +159,52 @@ export default async function processSnapshot(snapshot: Snapshot, ctx: Context):
159159
const responseHeaders = response.headers();
160160
ctx.log.debug(`Response headers for ${requestUrl}: ${JSON.stringify(responseHeaders, null, 2)}`);
161161
}
162-
let data = {
163-
statusCode: `${response.status()}`,
164-
url: requestUrl,
165-
resourceType: request.resourceType(),
166-
}
167-
168-
if (!discoveryErrors.browsers[globalBrowser]){
169-
discoveryErrors.browsers[globalBrowser] = {}; }
170-
171-
// Check if the discoveryErrors.browsers[globalBrowser] exists, and if not, initialize it
172-
if (discoveryErrors.browsers[globalBrowser] && !discoveryErrors.browsers[globalBrowser][globalViewport]) {
173-
discoveryErrors.browsers[globalBrowser][globalViewport] = [];
174-
}
175162

176-
// Dynamically push the data into the correct browser and viewport
177-
if (discoveryErrors.browsers[globalBrowser]) {
178-
discoveryErrors.browsers[globalBrowser][globalViewport]?.push(data);
163+
let responseOfRetry, bodyOfRetry
164+
ctx.log.debug(`Resource had a disallowed status ${requestUrl} fetching from server again`);
165+
responseOfRetry = await page.request.fetch(request, requestOptions);
166+
bodyOfRetry = await responseOfRetry.body();
167+
168+
if (responseOfRetry && responseOfRetry.status() && ALLOWED_STATUSES.includes(responseOfRetry.status())) {
169+
ctx.log.debug(`Handling request after retry ${requestUrl}\n - content-type ${responseOfRetry.headers()['content-type']}`);
170+
cache[requestUrl] = {
171+
body: bodyOfRetry.toString('base64'),
172+
type: responseOfRetry.headers()['content-type']
173+
}
174+
route.fulfill({
175+
status: responseOfRetry.status(),
176+
headers: responseOfRetry.headers(),
177+
body: bodyOfRetry,
178+
});
179+
} else {
180+
ctx.log.debug(`Resource had a disallowed status for retry as well ${requestUrl} disallowed status [${responseOfRetry.status()}]`);
181+
if (responseOfRetry && responseOfRetry.headers()) {
182+
const responseHeadersRetry = responseOfRetry.headers();
183+
ctx.log.debug(`Response headers for ${requestUrl}: ${JSON.stringify(responseHeadersRetry, null, 2)}`);
184+
}
185+
186+
let data = {
187+
statusCode: `${responseOfRetry.status()}`,
188+
url: requestUrl,
189+
resourceType: request.resourceType(),
190+
}
191+
192+
if (!discoveryErrors.browsers[globalBrowser]){
193+
discoveryErrors.browsers[globalBrowser] = {};
194+
}
195+
196+
// Check if the discoveryErrors.browsers[globalBrowser] exists, and if not, initialize it
197+
if (discoveryErrors.browsers[globalBrowser] && !discoveryErrors.browsers[globalBrowser][globalViewport]) {
198+
discoveryErrors.browsers[globalBrowser][globalViewport] = [];
199+
}
200+
201+
// Dynamically push the data into the correct browser and viewport
202+
if (discoveryErrors.browsers[globalBrowser]) {
203+
discoveryErrors.browsers[globalBrowser][globalViewport]?.push(data);
204+
}
179205
}
180206

207+
181208
} else {
182209
ctx.log.debug(`Handling request ${requestUrl}\n - content-type ${response.headers()['content-type']}`);
183210

0 commit comments

Comments
 (0)