@applitools/eyes-storybook 3.29.3 → 3.29.4

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
@@ -3,6 +3,12 @@
3
3
  ## Unreleased
4
4
 
5
5
 
6
+ ## 3.29.4 - 2022/9/12
7
+
8
+ ### Features
9
+ ### Bug fixes
10
+ - Prevent Eyes-Storybook from hanging when there is a failure to take DOM
11
+
6
12
  ## 3.29.3 - 2022/8/18
7
13
 
8
14
  ### Features
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/eyes-storybook",
3
- "version": "3.29.3",
3
+ "version": "3.29.4",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "applitools",
@@ -70,15 +70,15 @@
70
70
  }
71
71
  },
72
72
  "dependencies": {
73
- "@applitools/driver": "1.9.21",
74
- "@applitools/eyes-sdk-core": "13.8.22",
73
+ "@applitools/driver": "1.9.26",
74
+ "@applitools/eyes-sdk-core": "13.8.26",
75
75
  "@applitools/functional-commons": "1.6.0",
76
76
  "@applitools/logger": "1.1.16",
77
77
  "@applitools/monitoring-commons": "1.0.19",
78
78
  "@applitools/spec-driver-puppeteer": "1.1.8",
79
79
  "@applitools/test-server": "1.1.4",
80
80
  "@applitools/utils": "1.3.10",
81
- "@applitools/visual-grid-client": "15.13.16",
81
+ "@applitools/visual-grid-client": "15.13.21",
82
82
  "boxen": "4.2.0",
83
83
  "chalk": "3.0.0",
84
84
  "detect-port": "1.3.0",
@@ -90,7 +90,7 @@
90
90
  "yargs": "15.4.1"
91
91
  },
92
92
  "devDependencies": {
93
- "@applitools/bongo": "^2.1.6",
93
+ "@applitools/bongo": "^2.2.0",
94
94
  "@applitools/scripts": "^1.1.0",
95
95
  "@applitools/sdk-shared": "0.9.13",
96
96
  "@applitools/snaptdout": "^1.0.1",
@@ -8,6 +8,7 @@ const {URL} = require('url');
8
8
  const runRunAfterScript = require('../dist/runRunAfterScript');
9
9
  const waitFor = require('./waitFor');
10
10
  const PAGE_EVALUATE_TIMEOUT = 120000;
11
+ const DOM_SNAPSHOTS_TIMEOUT = 5 * 60 * 1000;
11
12
 
12
13
  function makeGetStoryData({logger, takeDomSnapshots, waitBeforeCapture, reloadPagePerStory}) {
13
14
  return async function getStoryData({story, storyUrl, page, browser, waitBeforeStory}) {
@@ -23,9 +24,9 @@ function makeGetStoryData({logger, takeDomSnapshots, waitBeforeCapture, reloadPa
23
24
  const err = await ptimeoutWithError(
24
25
  page.evaluate(renderStoryWithClientAPI, story.index),
25
26
  PAGE_EVALUATE_TIMEOUT,
26
- 'page evaluate timed out!',
27
+ new Error('page evaluate timed out!'),
27
28
  );
28
- logger.log(`[story data] done with page evaluate for story index: ${story.index}`);
29
+ logger.log(`[story data] done with page evaluate for story ${title}`);
29
30
  err && handleRenderStoryError(err);
30
31
  } catch (ex) {
31
32
  if (ex.message && !ex.message.includes('Eyes could not render stories properly'))
@@ -59,7 +60,7 @@ function makeGetStoryData({logger, takeDomSnapshots, waitBeforeCapture, reloadPa
59
60
 
60
61
  logger.log(`running takeDomSnapshot(s) for story ${title}`);
61
62
 
62
- const result = await takeDomSnapshots({
63
+ const domSnapshotsPromise = takeDomSnapshots({
63
64
  page,
64
65
  browser,
65
66
  layoutBreakpoints: eyesParameters ? eyesParameters.layoutBreakpoints : undefined,
@@ -71,6 +72,14 @@ function makeGetStoryData({logger, takeDomSnapshots, waitBeforeCapture, reloadPa
71
72
  : undefined,
72
73
  });
73
74
 
75
+ const result = await ptimeoutWithError(
76
+ domSnapshotsPromise,
77
+ DOM_SNAPSHOTS_TIMEOUT,
78
+ new Error(`timeout reached when trying to take DOM for story ${title}`),
79
+ );
80
+
81
+ logger.log(`done getting DOM for story ${title}`);
82
+
74
83
  if (eyesParameters && eyesParameters.runAfter) {
75
84
  await page.evaluate(runRunAfterScript, story.index).catch(err => {
76
85
  logger.log(`error during runAfter: ${err}`);
@@ -75,7 +75,12 @@ function makeRenderStories({
75
75
  }),
76
76
  );
77
77
 
78
- if (error && /(Protocol error|Execution context was destroyed)/.test(error.message)) {
78
+ if (
79
+ error &&
80
+ /(Protocol error|Execution context was destroyed|timeout reached when trying to take DOM for story)/.test(
81
+ error.message,
82
+ )
83
+ ) {
79
84
  logger.log(
80
85
  `Puppeteer error from [page ${pageId}] while getting story data. Replacing page. ${error.message}`,
81
86
  );