@samsara-dev/appwright 0.9.7 → 0.9.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # appwright
2
2
 
3
+ ## 0.9.8
4
+
5
+ ### Patch Changes
6
+
7
+ - eb8aea2: Cap video download retry backoff at 60s and add timestamps to all download logs
8
+
3
9
  ## 0.9.7
4
10
 
5
11
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/browserstack/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,eAAe,EACf,cAAc,EAGf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AA0DtC,qBAAa,0BAA2B,YAAW,cAAc;IAC/D,OAAO,CAAC,cAAc,CAAC,CAA6B;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,OAAO,CAA+B;gBAG5C,OAAO,EAAE,WAAW,CAAC,eAAe,CAAC,EACrC,WAAW,EAAE,MAAM,GAAG,SAAS;IAU3B,WAAW;IA0EX,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAMlC,OAAO,CAAC,cAAc;YASR,YAAY;YAkCZ,iBAAiB;YAKjB,yBAAyB;WAK1B,aAAa,CACxB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IA+FlD,eAAe,CAAC,OAAO,EAAE;QAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf;IA2BD,OAAO,CAAC,YAAY;CA4KrB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/browserstack/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,eAAe,EACf,cAAc,EAGf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AA0DtC,qBAAa,0BAA2B,YAAW,cAAc;IAC/D,OAAO,CAAC,cAAc,CAAC,CAA6B;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,OAAO,CAA+B;gBAG5C,OAAO,EAAE,WAAW,CAAC,eAAe,CAAC,EACrC,WAAW,EAAE,MAAM,GAAG,SAAS;IAU3B,WAAW;IA0EX,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAMlC,OAAO,CAAC,cAAc;YASR,YAAY;YAkCZ,iBAAiB;YAKjB,yBAAyB;WAK1B,aAAa,CACxB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAsGlD,eAAe,CAAC,OAAO,EAAE;QAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf;IA2BD,OAAO,CAAC,YAAY;CA4KrB"}
@@ -175,6 +175,7 @@ class BrowserStackDeviceProvider {
175
175
  //To catch the browserstack error in case all retries fails
176
176
  try {
177
177
  if (videoURL) {
178
+ logger_1.logger.log(`[${new Date().toISOString()}] Video download starting: ${videoURL}`);
178
179
  await (0, async_retry_1.default)(async () => {
179
180
  const response = await fetch(videoURL, {
180
181
  method: "GET",
@@ -200,11 +201,10 @@ class BrowserStackDeviceProvider {
200
201
  }, {
201
202
  retries: 10,
202
203
  minTimeout: 3_000,
204
+ maxTimeout: 60_000,
203
205
  onRetry: (err, i) => {
204
206
  const message = err instanceof Error ? err.message : String(err);
205
- if (i > 5) {
206
- logger_1.logger.warn(`Retry attempt ${i} failed: ${message}`);
207
- }
207
+ logger_1.logger.warn(`[${new Date().toISOString()}] Video download retry ${i}/10 failed: ${message}`);
208
208
  },
209
209
  });
210
210
  return new Promise((resolve, reject) => {
@@ -212,7 +212,7 @@ class BrowserStackDeviceProvider {
212
212
  fileStream.on("finish", () => {
213
213
  try {
214
214
  fs_1.default.renameSync(tempPathForWriting, pathToTestVideo);
215
- logger_1.logger.log(`Download finished and file closed: ${pathToTestVideo}`);
215
+ logger_1.logger.log(`[${new Date().toISOString()}] Video download completed: ${pathToTestVideo}`);
216
216
  resolve({ path: pathToTestVideo, contentType: "video/mp4" });
217
217
  }
218
218
  catch (err) {
@@ -233,7 +233,8 @@ class BrowserStackDeviceProvider {
233
233
  }
234
234
  }
235
235
  catch (e) {
236
- logger_1.logger.log(`Error Downloading video: `, e);
236
+ const message = e instanceof Error ? e.message : String(e);
237
+ logger_1.logger.warn(`[${new Date().toISOString()}] Video download failed after all retries: ${message}. Test will complete without video attachment.`);
237
238
  return null;
238
239
  }
239
240
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@samsara-dev/appwright",
3
- "version": "0.9.7",
3
+ "version": "0.9.8",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org/",
6
6
  "access": "public"