@applitools/eyes-storybook 3.64.3 → 3.64.5

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,192 @@
1
1
  # Changelog
2
2
 
3
+ ## [3.64.5](https://github.com/Applitools-Dev/sdk/compare/js/eyes-storybook@3.64.4...js/eyes-storybook@3.64.5) (2026-03-08)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * unskip js/mcp ([#3618](https://github.com/Applitools-Dev/sdk/issues/3618)) ([103f9e2](https://github.com/Applitools-Dev/sdk/commit/103f9e2f18cddc225aba2f2f59556e5fa38965c0))
9
+
10
+
11
+ ### Dependencies
12
+
13
+ * @applitools/utils bumped to 1.14.2
14
+ #### Bug Fixes
15
+
16
+ * unskip js/mcp ([#3618](https://github.com/Applitools-Dev/sdk/issues/3618)) ([103f9e2](https://github.com/Applitools-Dev/sdk/commit/103f9e2f18cddc225aba2f2f59556e5fa38965c0))
17
+ * @applitools/logger bumped to 2.2.9
18
+ #### Bug Fixes
19
+
20
+ * unskip js/mcp ([#3618](https://github.com/Applitools-Dev/sdk/issues/3618)) ([103f9e2](https://github.com/Applitools-Dev/sdk/commit/103f9e2f18cddc225aba2f2f59556e5fa38965c0))
21
+
22
+
23
+
24
+ * @applitools/dom-shared bumped to 1.1.2
25
+ #### Bug Fixes
26
+
27
+ * unskip js/mcp ([#3618](https://github.com/Applitools-Dev/sdk/issues/3618)) ([103f9e2](https://github.com/Applitools-Dev/sdk/commit/103f9e2f18cddc225aba2f2f59556e5fa38965c0))
28
+ * @applitools/dom-snapshot bumped to 4.15.11
29
+ #### Bug Fixes
30
+
31
+ * unskip js/mcp ([#3618](https://github.com/Applitools-Dev/sdk/issues/3618)) ([103f9e2](https://github.com/Applitools-Dev/sdk/commit/103f9e2f18cddc225aba2f2f59556e5fa38965c0))
32
+
33
+
34
+
35
+ * @applitools/socket bumped to 1.3.10
36
+ #### Bug Fixes
37
+
38
+ * unskip js/mcp ([#3618](https://github.com/Applitools-Dev/sdk/issues/3618)) ([103f9e2](https://github.com/Applitools-Dev/sdk/commit/103f9e2f18cddc225aba2f2f59556e5fa38965c0))
39
+
40
+
41
+
42
+ * @applitools/req bumped to 1.9.1
43
+ #### Bug Fixes
44
+
45
+ * unskip js/mcp ([#3618](https://github.com/Applitools-Dev/sdk/issues/3618)) ([103f9e2](https://github.com/Applitools-Dev/sdk/commit/103f9e2f18cddc225aba2f2f59556e5fa38965c0))
46
+
47
+
48
+
49
+ * @applitools/image bumped to 1.2.8
50
+ #### Bug Fixes
51
+
52
+ * unskip js/mcp ([#3618](https://github.com/Applitools-Dev/sdk/issues/3618)) ([103f9e2](https://github.com/Applitools-Dev/sdk/commit/103f9e2f18cddc225aba2f2f59556e5fa38965c0))
53
+
54
+
55
+
56
+ * @applitools/snippets bumped to 2.7.1
57
+ #### Bug Fixes
58
+
59
+ * unskip js/mcp ([#3618](https://github.com/Applitools-Dev/sdk/issues/3618)) ([103f9e2](https://github.com/Applitools-Dev/sdk/commit/103f9e2f18cddc225aba2f2f59556e5fa38965c0))
60
+ * @applitools/dom-capture bumped to 11.6.11
61
+ #### Bug Fixes
62
+
63
+ * unskip js/mcp ([#3618](https://github.com/Applitools-Dev/sdk/issues/3618)) ([103f9e2](https://github.com/Applitools-Dev/sdk/commit/103f9e2f18cddc225aba2f2f59556e5fa38965c0))
64
+
65
+
66
+
67
+ * @applitools/driver bumped to 1.25.2
68
+ #### Bug Fixes
69
+
70
+ * unskip js/mcp ([#3618](https://github.com/Applitools-Dev/sdk/issues/3618)) ([103f9e2](https://github.com/Applitools-Dev/sdk/commit/103f9e2f18cddc225aba2f2f59556e5fa38965c0))
71
+
72
+
73
+
74
+ * @applitools/spec-driver-webdriver bumped to 1.5.7
75
+ #### Bug Fixes
76
+
77
+ * unskip js/mcp ([#3618](https://github.com/Applitools-Dev/sdk/issues/3618)) ([103f9e2](https://github.com/Applitools-Dev/sdk/commit/103f9e2f18cddc225aba2f2f59556e5fa38965c0))
78
+
79
+
80
+
81
+ * @applitools/spec-driver-selenium bumped to 1.7.13
82
+ #### Bug Fixes
83
+
84
+ * unskip js/mcp ([#3618](https://github.com/Applitools-Dev/sdk/issues/3618)) ([103f9e2](https://github.com/Applitools-Dev/sdk/commit/103f9e2f18cddc225aba2f2f59556e5fa38965c0))
85
+
86
+
87
+
88
+ * @applitools/spec-driver-puppeteer bumped to 1.7.2
89
+ #### Bug Fixes
90
+
91
+ * unskip js/mcp ([#3618](https://github.com/Applitools-Dev/sdk/issues/3618)) ([103f9e2](https://github.com/Applitools-Dev/sdk/commit/103f9e2f18cddc225aba2f2f59556e5fa38965c0))
92
+
93
+
94
+
95
+ * @applitools/screenshoter bumped to 3.12.15
96
+ #### Bug Fixes
97
+
98
+ * unskip js/mcp ([#3618](https://github.com/Applitools-Dev/sdk/issues/3618)) ([103f9e2](https://github.com/Applitools-Dev/sdk/commit/103f9e2f18cddc225aba2f2f59556e5fa38965c0))
99
+
100
+
101
+
102
+ * @applitools/nml-client bumped to 1.11.19
103
+ #### Bug Fixes
104
+
105
+ * unskip js/mcp ([#3618](https://github.com/Applitools-Dev/sdk/issues/3618)) ([103f9e2](https://github.com/Applitools-Dev/sdk/commit/103f9e2f18cddc225aba2f2f59556e5fa38965c0))
106
+
107
+
108
+
109
+ * @applitools/tunnel-client bumped to 1.11.8
110
+ #### Bug Fixes
111
+
112
+ * audit fix for fastify node >=20 ([#3578](https://github.com/Applitools-Dev/sdk/issues/3578)) ([7c7b9b2](https://github.com/Applitools-Dev/sdk/commit/7c7b9b295b68285d585092dd71b99a4e148c6f55))
113
+ * unskip js/mcp ([#3618](https://github.com/Applitools-Dev/sdk/issues/3618)) ([103f9e2](https://github.com/Applitools-Dev/sdk/commit/103f9e2f18cddc225aba2f2f59556e5fa38965c0))
114
+
115
+
116
+
117
+ * @applitools/ufg-client bumped to 1.19.4
118
+ #### Bug Fixes
119
+
120
+ * unskip js/mcp ([#3618](https://github.com/Applitools-Dev/sdk/issues/3618)) ([103f9e2](https://github.com/Applitools-Dev/sdk/commit/103f9e2f18cddc225aba2f2f59556e5fa38965c0))
121
+
122
+
123
+
124
+ * @applitools/core-base bumped to 1.32.1
125
+ #### Bug Fixes
126
+
127
+ * unskip js/mcp ([#3618](https://github.com/Applitools-Dev/sdk/issues/3618)) ([103f9e2](https://github.com/Applitools-Dev/sdk/commit/103f9e2f18cddc225aba2f2f59556e5fa38965c0))
128
+
129
+
130
+
131
+ * @applitools/ec-client bumped to 1.12.21
132
+ #### Bug Fixes
133
+
134
+ * audit fix for fastify node >=20 ([#3578](https://github.com/Applitools-Dev/sdk/issues/3578)) ([7c7b9b2](https://github.com/Applitools-Dev/sdk/commit/7c7b9b295b68285d585092dd71b99a4e148c6f55))
135
+ * unskip js/mcp ([#3618](https://github.com/Applitools-Dev/sdk/issues/3618)) ([103f9e2](https://github.com/Applitools-Dev/sdk/commit/103f9e2f18cddc225aba2f2f59556e5fa38965c0))
136
+
137
+
138
+
139
+ * @applitools/core bumped to 4.57.2
140
+ #### Bug Fixes
141
+
142
+ * unskip js/mcp ([#3618](https://github.com/Applitools-Dev/sdk/issues/3618)) ([103f9e2](https://github.com/Applitools-Dev/sdk/commit/103f9e2f18cddc225aba2f2f59556e5fa38965c0))
143
+
144
+
145
+
146
+ * @applitools/eyes bumped to 1.38.8
147
+ #### Bug Fixes
148
+
149
+ * unskip js/mcp ([#3618](https://github.com/Applitools-Dev/sdk/issues/3618)) ([103f9e2](https://github.com/Applitools-Dev/sdk/commit/103f9e2f18cddc225aba2f2f59556e5fa38965c0))
150
+
151
+
152
+
153
+ * @applitools/snaptdout bumped to 1.1.1
154
+ #### Bug Fixes
155
+
156
+ * unskip js/mcp ([#3618](https://github.com/Applitools-Dev/sdk/issues/3618)) ([103f9e2](https://github.com/Applitools-Dev/sdk/commit/103f9e2f18cddc225aba2f2f59556e5fa38965c0))
157
+ * @applitools/test-server bumped to 1.4.1
158
+ #### Bug Fixes
159
+
160
+ * unskip js/mcp ([#3618](https://github.com/Applitools-Dev/sdk/issues/3618)) ([103f9e2](https://github.com/Applitools-Dev/sdk/commit/103f9e2f18cddc225aba2f2f59556e5fa38965c0))
161
+
162
+
163
+
164
+
165
+ ## [3.64.4](https://github.com/Applitools-Dev/sdk/compare/js/eyes-storybook@3.64.3...js/eyes-storybook@3.64.4) (2026-03-08)
166
+
167
+
168
+ ### Bug Fixes
169
+
170
+ * context cleanup before timeout ([#3416](https://github.com/Applitools-Dev/sdk/issues/3416)) ([66afafb](https://github.com/Applitools-Dev/sdk/commit/66afafb5f2962b6b8a5193356cb3f4d32f3c486c))
171
+ * improve page replenishment logic in renderStories | FLD-4200 ([#3602](https://github.com/Applitools-Dev/sdk/issues/3602)) ([a7b3148](https://github.com/Applitools-Dev/sdk/commit/a7b31485382f4f366c87806a864cc8e9a7f85715))
172
+
173
+
174
+ ### Dependencies
175
+
176
+ * @applitools/dom-capture bumped to 11.6.10
177
+ #### Bug Fixes
178
+
179
+ * handle empty data URLs in CSS extraction | FLD-4158 ([#3606](https://github.com/Applitools-Dev/sdk/issues/3606)) ([8adef70](https://github.com/Applitools-Dev/sdk/commit/8adef702c7136b0b4a15f150b3d7ca6f649b30a2))
180
+ * @applitools/core bumped to 4.57.1
181
+ #### Bug Fixes
182
+
183
+ * remove checkNetwork from public API, add unit tests ([#3598](https://github.com/Applitools-Dev/sdk/issues/3598)) ([d0a70a3](https://github.com/Applitools-Dev/sdk/commit/d0a70a3b7319aab6e1ca9dbca5e6a94069955447))
184
+
185
+
186
+
187
+ * @applitools/eyes bumped to 1.38.7
188
+
189
+
3
190
  ## [3.64.3](https://github.com/Applitools-Dev/sdk/compare/js/eyes-storybook@3.64.2...js/eyes-storybook@3.64.3) (2026-03-02)
4
191
 
5
192
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/eyes-storybook",
3
- "version": "3.64.3",
3
+ "version": "3.64.5",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "applitools",
@@ -59,15 +59,15 @@
59
59
  "up:framework": "cd test/fixtures/storybook-versions/${APPLITOOLS_FRAMEWORK_VERSION} && npm ci"
60
60
  },
61
61
  "dependencies": {
62
- "@applitools/core": "4.57.0",
63
- "@applitools/driver": "1.25.1",
64
- "@applitools/eyes": "1.38.6",
62
+ "@applitools/core": "4.57.2",
63
+ "@applitools/driver": "1.25.2",
64
+ "@applitools/eyes": "1.38.8",
65
65
  "@applitools/functional-commons": "1.6.0",
66
- "@applitools/logger": "2.2.8",
66
+ "@applitools/logger": "2.2.9",
67
67
  "@applitools/monitoring-commons": "1.0.19",
68
- "@applitools/spec-driver-puppeteer": "1.7.1",
69
- "@applitools/ufg-client": "1.19.3",
70
- "@applitools/utils": "1.14.1",
68
+ "@applitools/spec-driver-puppeteer": "1.7.2",
69
+ "@applitools/ufg-client": "1.19.4",
70
+ "@applitools/utils": "1.14.2",
71
71
  "@inquirer/prompts": "7.0.1",
72
72
  "boxen": "4.2.0",
73
73
  "chalk": "3.0.0",
@@ -82,8 +82,8 @@
82
82
  },
83
83
  "devDependencies": {
84
84
  "@applitools/bongo": "^5.10.0",
85
- "@applitools/snaptdout": "^1.1.0",
86
- "@applitools/test-server": "^1.4.0",
85
+ "@applitools/snaptdout": "^1.1.1",
86
+ "@applitools/test-server": "^1.4.1",
87
87
  "@applitools/test-utils": "^1.5.17",
88
88
  "@storybook/addon-interactions": "^6.4.18",
89
89
  "@storybook/react": "^6.5.16",
@@ -250,7 +250,11 @@ async function eyesStorybook({
250
250
  async function getStoriesWithSpinner() {
251
251
  let firstAttemptContext;
252
252
  let secondAttemptContext;
253
+ let secondAttemptTimer;
254
+ let winnerFound = false;
253
255
  async function attemptNavigate(timeout, waitUntil, isSecondAttempt = false) {
256
+ // If a winner was already found, avoid creating a new context for the second attempt
257
+ if (isSecondAttempt && winnerFound) return {ok: false};
254
258
  const contextObj = await createContext({browser, config, logger});
255
259
  if (isSecondAttempt) secondAttemptContext = contextObj;
256
260
  else firstAttemptContext = contextObj;
@@ -278,7 +282,7 @@ async function eyesStorybook({
278
282
  // Start second attempt after 30 seconds with 2x timeout
279
283
  const secondAttempt = enableTimeoutRetryMechanism
280
284
  ? new Promise(resolve => {
281
- setTimeout(() => {
285
+ secondAttemptTimer = setTimeout(() => {
282
286
  attemptNavigate(readStoriesTimeout * 2, navigationWaitUntil, true).then(resolve);
283
287
  }, timeoutRetry);
284
288
  })
@@ -323,6 +327,7 @@ async function eyesStorybook({
323
327
  }
324
328
 
325
329
  async function cleanupContext(winnerPage) {
330
+ if (secondAttemptTimer) clearTimeout(secondAttemptTimer);
326
331
  if (winnerPage === firstAttemptContext?.page && secondAttemptContext) {
327
332
  try {
328
333
  await secondAttemptContext.page.close();
@@ -345,6 +350,7 @@ async function eyesStorybook({
345
350
  // Wait for the first successful navigation
346
351
  return Promise.race([firstAttempt, secondAttempt]).then(async result => {
347
352
  if (result.ok) {
353
+ winnerFound = true;
348
354
  await cleanupContext(result.page);
349
355
  return handleReadStories(result.page);
350
356
  }
@@ -352,6 +358,7 @@ async function eyesStorybook({
352
358
  return Promise.all([firstAttempt, secondAttempt]).then(async results => {
353
359
  const success = results.find(r => r.ok);
354
360
  if (success) {
361
+ winnerFound = true;
355
362
  await cleanupContext(success.page);
356
363
  return handleReadStories(success.page);
357
364
  }
@@ -67,15 +67,17 @@ function makeRenderStories({
67
67
  `[sparePages] new page ${pageId} is corrupted. preparing new page.`,
68
68
  errorInSanity,
69
69
  );
70
- // If the page is corrupted, we close it and try again immediately (in the finally block)
70
+ // If the page is corrupted, we close it and try again below
71
71
  page.close().catch(() => {});
72
72
  }
73
73
  } finally {
74
74
  this.isPreparing = false;
75
- // If we are still empty, try again
76
- if (this.queue.length === 0) {
77
- this.replenish();
78
- }
75
+ }
76
+ // If we are still empty (sanity check failed), try again.
77
+ // Note: this runs only when createPage succeeded but sanityCheck failed,
78
+ // because a failed createPage returns early above.
79
+ if (this.queue.length === 0) {
80
+ this.replenish();
79
81
  }
80
82
  },
81
83
  };