@applitools/eyes-playwright 1.41.0 → 1.41.2

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,174 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.41.2](https://github.com/Applitools-Dev/sdk/compare/js/eyes-playwright@1.41.1...js/eyes-playwright@1.41.2) (2025-11-19)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * playwright reporter eyes and unresolved filter display improvement ([#3359](https://github.com/Applitools-Dev/sdk/issues/3359)) ([78b757f](https://github.com/Applitools-Dev/sdk/commit/78b757f0ad2288a10402e112c0b46490d15c50de))
9
+ * resolved an issue with `matchTimeout` changing `retryTimeout` ([f656f59](https://github.com/Applitools-Dev/sdk/commit/f656f59dbfb7c41fdb569fbc56d2e9daecefb854))
10
+
11
+
12
+ ### Dependencies
13
+
14
+ * @applitools/utils bumped to 1.14.0
15
+ #### Features
16
+
17
+ * disable heartbeats whenever no tests are running ([#3344](https://github.com/Applitools-Dev/sdk/issues/3344)) ([b66d28a](https://github.com/Applitools-Dev/sdk/commit/b66d28a7a382f26b68de70c8633c027cb4bdf225))
18
+ * @applitools/nml-client bumped to 1.11.11
19
+ #### Bug Fixes
20
+
21
+ * better nml error messages ([#3311](https://github.com/Applitools-Dev/sdk/issues/3311)) ([3deea01](https://github.com/Applitools-Dev/sdk/commit/3deea0130636c44573adc919b95c1c99e6d194f1))
22
+
23
+
24
+
25
+ * @applitools/core bumped to 4.53.0
26
+ #### Features
27
+
28
+ * disable heartbeats whenever no tests are running ([#3344](https://github.com/Applitools-Dev/sdk/issues/3344)) ([b66d28a](https://github.com/Applitools-Dev/sdk/commit/b66d28a7a382f26b68de70c8633c027cb4bdf225))
29
+
30
+
31
+ #### Bug Fixes
32
+
33
+ * better nml error messages ([#3311](https://github.com/Applitools-Dev/sdk/issues/3311)) ([3deea01](https://github.com/Applitools-Dev/sdk/commit/3deea0130636c44573adc919b95c1c99e6d194f1))
34
+ * fails to create test with coded dynamic region | AD-11074 ([#3361](https://github.com/Applitools-Dev/sdk/issues/3361)) ([7f8c8cd](https://github.com/Applitools-Dev/sdk/commit/7f8c8cd85c0cd2e5861cd33fbc29c465903258d5))
35
+ * resolved an issue with `matchTimeout` changing `retryTimeout` ([f656f59](https://github.com/Applitools-Dev/sdk/commit/f656f59dbfb7c41fdb569fbc56d2e9daecefb854))
36
+
37
+
38
+
39
+ * @applitools/logger bumped to 2.2.6
40
+
41
+ * @applitools/dom-snapshot bumped to 4.15.1
42
+
43
+ * @applitools/socket bumped to 1.3.7
44
+
45
+ * @applitools/req bumped to 1.8.6
46
+
47
+ * @applitools/image bumped to 1.2.5
48
+
49
+ * @applitools/dom-capture bumped to 11.6.7
50
+
51
+ * @applitools/driver bumped to 1.24.2
52
+
53
+ * @applitools/spec-driver-webdriver bumped to 1.5.2
54
+
55
+ * @applitools/spec-driver-selenium bumped to 1.7.8
56
+
57
+ * @applitools/spec-driver-playwright bumped to 1.7.8
58
+
59
+ * @applitools/spec-driver-puppeteer bumped to 1.6.8
60
+
61
+ * @applitools/screenshoter bumped to 3.12.9
62
+
63
+ * @applitools/tunnel-client bumped to 1.11.4
64
+
65
+ * @applitools/ufg-client bumped to 1.18.2
66
+
67
+ * @applitools/core-base bumped to 1.30.0
68
+ #### Features
69
+
70
+ * disable heartbeats whenever no tests are running ([#3344](https://github.com/Applitools-Dev/sdk/issues/3344)) ([b66d28a](https://github.com/Applitools-Dev/sdk/commit/b66d28a7a382f26b68de70c8633c027cb4bdf225))
71
+
72
+
73
+ #### Bug Fixes
74
+
75
+ * fails to create test with coded dynamic region | AD-11074 ([#3361](https://github.com/Applitools-Dev/sdk/issues/3361)) ([7f8c8cd](https://github.com/Applitools-Dev/sdk/commit/7f8c8cd85c0cd2e5861cd33fbc29c465903258d5))
76
+ * resolved an issue with `matchTimeout` changing `retryTimeout` ([f656f59](https://github.com/Applitools-Dev/sdk/commit/f656f59dbfb7c41fdb569fbc56d2e9daecefb854))
77
+
78
+
79
+
80
+ * @applitools/ec-client bumped to 1.12.13
81
+
82
+ * @applitools/eyes bumped to 1.36.16
83
+ #### Bug Fixes
84
+
85
+ * resolved an issue with `matchTimeout` changing `retryTimeout` ([f656f59](https://github.com/Applitools-Dev/sdk/commit/f656f59dbfb7c41fdb569fbc56d2e9daecefb854))
86
+
87
+
88
+
89
+ * @applitools/test-server bumped to 1.3.5
90
+
91
+
92
+ ## [1.41.1](https://github.com/Applitools-Dev/sdk/compare/js/eyes-playwright@1.41.0...js/eyes-playwright@1.41.1) (2025-11-09)
93
+
94
+
95
+ ### Bug Fixes
96
+
97
+ * resolve html-report iframe flickering in dark mode ([#3324](https://github.com/Applitools-Dev/sdk/issues/3324)) ([3d31a90](https://github.com/Applitools-Dev/sdk/commit/3d31a90838148e93f84e7cf24ec1da25bb247140))
98
+
99
+
100
+ ### Dependencies
101
+
102
+ * @applitools/utils bumped to 1.13.0
103
+ #### Features
104
+
105
+ * restart cache and keepalive | FLD-3773 ([#3326](https://github.com/Applitools-Dev/sdk/issues/3326)) ([0fd12ca](https://github.com/Applitools-Dev/sdk/commit/0fd12ca703b4546560b563076a38f9ada24acc75))
106
+ * @applitools/dom-snapshot bumped to 4.15.0
107
+ #### Features
108
+
109
+ * add support for adopted stylesheets with nesting | FLD-3212 ([#3325](https://github.com/Applitools-Dev/sdk/issues/3325)) ([8587926](https://github.com/Applitools-Dev/sdk/commit/8587926b0d6ef820cfbd8f89ddb062a3d77f65ab))
110
+
111
+
112
+
113
+ * @applitools/dom-capture bumped to 11.6.6
114
+ #### Performance Improvements
115
+
116
+ * remove dynamic loading of Dom capture and Dom snapshot ([#3322](https://github.com/Applitools-Dev/sdk/issues/3322)) ([7d15ee9](https://github.com/Applitools-Dev/sdk/commit/7d15ee98d5d39c7e478b6bfe3e14b8eea93937e5))
117
+
118
+
119
+
120
+ * @applitools/socket bumped to 1.3.6
121
+
122
+ * @applitools/req bumped to 1.8.5
123
+
124
+ * @applitools/spec-driver-webdriver bumped to 1.5.1
125
+
126
+ * @applitools/spec-driver-playwright bumped to 1.7.7
127
+
128
+ * @applitools/spec-driver-puppeteer bumped to 1.6.7
129
+
130
+ * @applitools/nml-client bumped to 1.11.10
131
+
132
+ * @applitools/ufg-client bumped to 1.18.1
133
+
134
+ * @applitools/core-base bumped to 1.29.0
135
+ #### Features
136
+
137
+ * restart cache and keepalive | FLD-3773 ([#3326](https://github.com/Applitools-Dev/sdk/issues/3326)) ([0fd12ca](https://github.com/Applitools-Dev/sdk/commit/0fd12ca703b4546560b563076a38f9ada24acc75))
138
+
139
+
140
+
141
+ * @applitools/core bumped to 4.52.0
142
+ #### Features
143
+
144
+ * restart cache and keepalive | FLD-3773 ([#3326](https://github.com/Applitools-Dev/sdk/issues/3326)) ([0fd12ca](https://github.com/Applitools-Dev/sdk/commit/0fd12ca703b4546560b563076a38f9ada24acc75))
145
+
146
+
147
+ #### Performance Improvements
148
+
149
+ * remove dynamic loading of Dom capture and Dom snapshot ([#3322](https://github.com/Applitools-Dev/sdk/issues/3322)) ([7d15ee9](https://github.com/Applitools-Dev/sdk/commit/7d15ee98d5d39c7e478b6bfe3e14b8eea93937e5))
150
+
151
+
152
+
153
+ * @applitools/logger bumped to 2.2.5
154
+
155
+ * @applitools/image bumped to 1.2.4
156
+
157
+ * @applitools/driver bumped to 1.24.1
158
+
159
+ * @applitools/spec-driver-selenium bumped to 1.7.7
160
+
161
+ * @applitools/screenshoter bumped to 3.12.8
162
+
163
+ * @applitools/tunnel-client bumped to 1.11.3
164
+
165
+ * @applitools/ec-client bumped to 1.12.12
166
+
167
+ * @applitools/eyes bumped to 1.36.15
168
+
169
+ * @applitools/test-server bumped to 1.3.4
170
+
171
+
3
172
  ## [1.41.0](https://github.com/Applitools-Dev/sdk/compare/js/eyes-playwright@1.40.7...js/eyes-playwright@1.41.0) (2025-11-03)
4
173
 
5
174
 
@@ -4,36 +4,170 @@
4
4
  *
5
5
  * This module provides functionality to create mock iframe elements that simulate
6
6
  * the Eyes test result viewer without actually loading the full iframe. This is
7
- * useful for testing and development purposes.
7
+ * useful for testing and development purposes, including testing visual appearance
8
+ * during CSS loading phases.
8
9
  */
9
10
  Object.defineProperty(exports, "__esModule", { value: true });
10
11
  exports.createMockIframe = void 0;
12
+ /**
13
+ * CSS content that will be loaded after a 1-second delay
14
+ * This simulates the delayed loading behavior to test visual appearance during loading
15
+ */
16
+ const MOCK_CSS = `
17
+ body {
18
+ margin: 0;
19
+ padding: 20px;
20
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
21
+ transition: all 0.3s ease;
22
+ }
23
+
24
+ .mock-container {
25
+ max-width: 600px;
26
+ background: rgba(255, 255, 255, 0.1);
27
+ backdrop-filter: blur(10px);
28
+ border-radius: 12px;
29
+ padding: 30px;
30
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
31
+ }
32
+
33
+ h3 {
34
+ margin: 0 0 20px 0;
35
+ font-size: 24px;
36
+ font-weight: 600;
37
+ border-bottom: 2px solid rgba(255, 255, 255, 0.3);
38
+ padding-bottom: 10px;
39
+ }
40
+
41
+ .info-item {
42
+ margin-bottom: 12px;
43
+ padding: 8px;
44
+ background: rgba(255, 255, 255, 0.05);
45
+ border-radius: 6px;
46
+ animation: slideIn 0.3s ease forwards;
47
+ opacity: 0;
48
+ }
49
+
50
+ .info-item:nth-child(1) { animation-delay: 0.1s; }
51
+ .info-item:nth-child(2) { animation-delay: 0.2s; }
52
+ .info-item:nth-child(3) { animation-delay: 0.3s; }
53
+ .info-item:nth-child(4) { animation-delay: 0.4s; }
54
+ .info-item:nth-child(5) { animation-delay: 0.5s; }
55
+ .info-item:nth-child(6) { animation-delay: 0.6s; }
56
+ .info-item:nth-child(7) { animation-delay: 0.7s; }
57
+
58
+ @keyframes slideIn {
59
+ to {
60
+ opacity: 1;
61
+ transform: translateX(0);
62
+ }
63
+ }
64
+
65
+ strong {
66
+ opacity: 0.9;
67
+ font-weight: 600;
68
+ }
69
+
70
+ .link-container {
71
+ margin-top: 20px;
72
+ padding-top: 20px;
73
+ border-top: 1px solid rgba(255, 255, 255, 0.2);
74
+ }
75
+
76
+ a {
77
+ text-decoration: none;
78
+ padding: 10px 20px;
79
+ background: rgba(255, 255, 255, 0.2);
80
+ border-radius: 6px;
81
+ display: inline-block;
82
+ transition: all 0.2s ease;
83
+ }
84
+
85
+ a:hover {
86
+ background: rgba(255, 255, 255, 0.3);
87
+ transform: translateY(-2px);
88
+ }
89
+ `;
11
90
  /**
12
91
  * Creates a mock iframe element displaying Eyes test result information
92
+ * Uses the srcdoc attribute for inline HTML content and delays CSS loading
93
+ * to test visual appearance during loading phases
94
+ *
13
95
  * @param result - The Eyes test result to display
14
- * @returns HTML element representing a mock iframe
96
+ * @returns HTMLIFrameElement with mock content
15
97
  */
16
98
  function createMockIframe(result) {
17
- const mockIframe = document.createElement('div');
18
- mockIframe.classList.add('eyes-session-result', 'eyes-mock-iframe');
19
- mockIframe.setAttribute('value', result.id);
20
- mockIframe.innerHTML = `
21
- <div style="padding: 20px; border: 2px solid #ddd; background: #f5f5f5; font-family: monospace;">
22
- <h3 style="margin: 0 0 10px 0; color: #333;">Mock Eyes Iframe</h3>
23
- <div style="margin-bottom: 8px;"><strong>Session ID:</strong> ${result.id}</div>
24
- <div style="margin-bottom: 8px;"><strong>Status:</strong> ${result.status}</div>
25
- <div style="margin-bottom: 8px;"><strong>Browser:</strong> ${result.hostApp}</div>
26
- <div style="margin-bottom: 8px;"><strong>Viewport:</strong> ${result.hostDisplaySize.width}x${result.hostDisplaySize.height}</div>
27
- <div style="margin-bottom: 8px;"><strong>Steps:</strong> ${result.steps}</div>
28
- <div style="margin-bottom: 8px;"><strong>Is New:</strong> ${result.isNew}</div>
29
- <div style="margin-bottom: 8px;"><strong>Has Differences:</strong> ${result.isDifferent}</div>
30
- <div style="margin-top: 15px;">
31
- <a href="${result.appUrls.session}" target="_blank" style="color: #0066cc;">
32
- View in Eyes Dashboard →
33
- </a>
34
- </div>
35
- </div>
99
+ const iframe = document.createElement('iframe');
100
+ iframe.classList.add('eyes-session-result', 'eyes-mock-iframe');
101
+ iframe.setAttribute('value', result.id);
102
+ iframe.style.visibility = 'hidden';
103
+ iframe.style.opacity = '0';
104
+ // Initial HTML content without styling (to show unstyled phase)
105
+ const htmlContent = `
106
+ <!DOCTYPE html>
107
+ <html>
108
+ <head>
109
+ <meta name="color-scheme" content="light dark">
110
+ <meta charset="UTF-8">
111
+ <style id="loading-style">
112
+ body {
113
+ margin: 0;
114
+ padding: 20px;
115
+ font-family: monospace;
116
+ }
117
+ .loading-indicator {
118
+ font-size: 14px;
119
+ margin-bottom: 10px;
120
+ }
121
+ </style>
122
+ </head>
123
+ <body>
124
+ <div class="loading-indicator">Loading styles...</div>
125
+ <div class="mock-container">
126
+ <h3>Mock Eyes Iframe</h3>
127
+ <div class="info-item"><strong>Session ID:</strong> ${result.id}</div>
128
+ <div class="info-item"><strong>Status:</strong> ${result.status}</div>
129
+ <div class="info-item"><strong>Browser:</strong> ${result.hostApp}</div>
130
+ <div class="info-item"><strong>Viewport:</strong> ${result.hostDisplaySize.width}x${result.hostDisplaySize.height}</div>
131
+ <div class="info-item"><strong>Steps:</strong> ${result.steps}</div>
132
+ <div class="info-item"><strong>Is New:</strong> ${result.isNew}</div>
133
+ <div class="info-item"><strong>Has Differences:</strong> ${result.isDifferent}</div>
134
+ <div class="link-container">
135
+ <a href="${result.appUrls.session}" target="_blank">
136
+ View in Eyes Dashboard →
137
+ </a>
138
+ </div>
139
+ </div>
140
+ <script>
141
+ // Simulate CSS loading after 1 second
142
+ setTimeout(function() {
143
+ // Remove loading indicator
144
+ const loadingIndicator = document.querySelector('.loading-indicator');
145
+ if (loadingIndicator) {
146
+ loadingIndicator.remove();
147
+ }
148
+
149
+ // Remove initial loading styles
150
+ const loadingStyle = document.getElementById('loading-style');
151
+ if (loadingStyle) {
152
+ loadingStyle.remove();
153
+ }
154
+
155
+ // Add the main styles
156
+ const styleElement = document.createElement('style');
157
+ styleElement.textContent = ${JSON.stringify(MOCK_CSS)};
158
+ document.head.appendChild(styleElement);
159
+ }, 500);
160
+ </script>
161
+ </body>
162
+ </html>
36
163
  `;
37
- return mockIframe;
164
+ iframe.srcdoc = htmlContent;
165
+ iframe.onload = () => {
166
+ // Show iframe after load with a smooth transition
167
+ iframe.style.visibility = 'visible';
168
+ iframe.style.opacity = '1';
169
+ };
170
+ // Show iframe after it's loaded with a smooth transition
171
+ return iframe;
38
172
  }
39
173
  exports.createMockIframe = createMockIframe;
@@ -192,11 +192,15 @@ class TestDetailUI {
192
192
  const iframe = document.createElement('iframe');
193
193
  iframe.classList.add('eyes-session-result');
194
194
  iframe.setAttribute('value', result.id);
195
+ iframe.style.visibility = 'hidden';
196
+ iframe.style.opacity = '0';
195
197
  const url = (0, urlManager_js_1.fixEyesUrl)(result.eyesServer.eyesServerUrl);
196
198
  iframe.onload = () => {
197
199
  const iframeUrl = `${url}app/html-report/index.html`;
198
200
  iframe.contentWindow.postMessage({ call: 'sendValue', value: result }, iframeUrl);
199
201
  iframe.classList.add('ready');
202
+ iframe.style.visibility = 'visible';
203
+ iframe.style.opacity = '1';
200
204
  window.addEventListener('message', async (event) => {
201
205
  if (event.origin !== url && `${event.origin}/` !== url)
202
206
  return;