@seontechnologies/playwright-utils 3.10.0 → 3.10.1

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/README.md CHANGED
@@ -710,6 +710,7 @@ You can trigger a release directly from GitHub's web interface:
710
710
  4. Click "Run workflow"
711
711
 
712
712
  **Important**:
713
+
713
714
  - Requires `NPM_TOKEN` secret to be configured in GitHub repository settings
714
715
  - You must review and merge the PR to complete the process
715
716
 
@@ -14,17 +14,38 @@ type NetworkErrorMonitorFixture = {
14
14
  /** Automatically monitors network responses for errors */
15
15
  networkErrorMonitor: void;
16
16
  };
17
- type NetworkErrorMonitorConfig = {
17
+ /**
18
+ * Base configuration without excludePatterns - maxTestsPerError cannot be used
19
+ */
20
+ type BaseNetworkErrorMonitorConfig = {
21
+ /** Not specified - maxTestsPerError cannot be used without excludePatterns */
22
+ excludePatterns?: undefined;
23
+ /** Cannot be specified without excludePatterns */
24
+ maxTestsPerError?: never;
25
+ };
26
+ /**
27
+ * Configuration with excludePatterns - enables maxTestsPerError option
28
+ */
29
+ type NetworkErrorMonitorConfigWithPatterns = {
18
30
  /** Regex patterns for URLs to exclude from error monitoring */
19
- excludePatterns?: RegExp[];
31
+ excludePatterns: RegExp[];
20
32
  /**
21
33
  * Maximum number of tests that can fail per unique error pattern.
22
34
  * Once this limit is reached, subsequent tests just log the error without failing.
23
35
  * Default: Infinity (all tests fail)
36
+ * Requires excludePatterns to be specified.
24
37
  * @example maxTestsPerError: 1 // Only first test fails, rest just log
25
38
  */
26
39
  maxTestsPerError?: number;
27
40
  };
41
+ /**
42
+ * Configuration options for the network error monitor.
43
+ *
44
+ * Note: maxTestsPerError can only be used when excludePatterns is specified.
45
+ * This enforces a best practice where domino effect prevention is paired with
46
+ * known exclusion patterns.
47
+ */
48
+ type NetworkErrorMonitorConfig = BaseNetworkErrorMonitorConfig | NetworkErrorMonitorConfigWithPatterns;
28
49
  /**
29
50
  * Creates a network error monitoring fixture with configurable exclusion patterns and fail-fast behavior.
30
51
  *
@@ -1 +1 @@
1
- {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../../src/network-error-monitor/fixtures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAY,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAmBhE,KAAK,0BAA0B,GAAG;IAChC,0DAA0D;IAC1D,mBAAmB,EAAE,IAAI,CAAA;CAC1B,CAAA;AAED,KAAK,yBAAyB,GAAG;IAC/B,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B,CAAA;AAoMD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,GAAE,yBAA8B;sCAOtB;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,OACnB,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,YACtB,QAAQ;;;EAoFzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,eAAO,MAAM,IAAI,0QAGhB,CAAA;AAED,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../../src/network-error-monitor/fixtures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAY,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAwBhE,KAAK,0BAA0B,GAAG;IAChC,0DAA0D;IAC1D,mBAAmB,EAAE,IAAI,CAAA;CAC1B,CAAA;AAED;;GAEG;AACH,KAAK,6BAA6B,GAAG;IACnC,8EAA8E;IAC9E,eAAe,CAAC,EAAE,SAAS,CAAA;IAC3B,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,KAAK,CAAA;CACzB,CAAA;AAED;;GAEG;AACH,KAAK,qCAAqC,GAAG;IAC3C,+DAA+D;IAC/D,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED;;;;;;GAMG;AACH,KAAK,yBAAyB,GAC1B,6BAA6B,GAC7B,qCAAqC,CAAA;AAyNzC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,GAAE,yBAA8B;sCAOtB;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,OACnB,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,YACtB,QAAQ;;;EAoFzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,eAAO,MAAM,IAAI,0QAGhB,CAAA;AAED,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA"}
@@ -19,7 +19,12 @@ const log_1 = require("../log/log");
19
19
  * Global state to track how many tests have failed per error pattern.
20
20
  * This prevents domino effect where same backend issue fails hundreds of tests.
21
21
  *
22
- * Key format: `${status}:${basePath}` (e.g., "500:/api/v2/case-management")
22
+ * IMPORTANT: This state is worker-scoped and persists across test files.
23
+ * - Parallel workers have independent state (no cross-contamination)
24
+ * - Sequential tests in same worker share this state
25
+ * - State is never reset during worker lifetime
26
+ *
27
+ * Key format: `${method}:${status}:${basePath}` (e.g., "GET:500:/api/v2/case-management")
23
28
  * Value: number of tests that have already failed with this error pattern
24
29
  */
25
30
  const errorPatternFailureCount = new Map();
@@ -66,18 +71,27 @@ function extractBasePath(url) {
66
71
  return '/' + pathSegments.slice(0, 3).join('/');
67
72
  }
68
73
  catch {
74
+ // Log parsing failures to help debug issues with malformed URLs
75
+ log_1.log.warningSync(`Failed to parse URL for error pattern grouping: ${url}. Using full URL as pattern key.`);
69
76
  return url;
70
77
  }
71
78
  }
72
79
  /**
73
80
  * Create error pattern key for tracking failures across tests.
81
+ * Includes HTTP method to distinguish between different error types on same endpoint.
74
82
  *
75
83
  * @example
76
- * GET 500 /api/v2/case-management/cases/123 → "500:/api/v2/case-management"
84
+ * GET 500 /api/v2/case-management/cases/123 → "GET:500:/api/v2/case-management"
85
+ * POST 404 /api/v2/users → "POST:404:/api/v2/users"
86
+ *
87
+ * @rationale
88
+ * A GET 404 vs POST 404 on same endpoint might represent different issues:
89
+ * - GET 404 /api/users/123 → User not found (expected in some tests)
90
+ * - POST 404 /api/users → Endpoint doesn't exist (critical error)
77
91
  */
78
92
  function createErrorPatternKey(error) {
79
93
  const basePath = extractBasePath(error.url);
80
- return `${error.status}:${basePath}`;
94
+ return `${error.method}:${error.status}:${basePath}`;
81
95
  }
82
96
  /**
83
97
  * Check if we've already failed enough tests for this error pattern.
@@ -88,9 +102,9 @@ function createErrorPatternKey(error) {
88
102
  *
89
103
  * @example
90
104
  * Test encounters 3 errors:
91
- * - 500:/api/v2/cases (count: 1, limit: 1) → at limit
92
- * - 404:/api/v2/users (count: 0, limit: 1) → NEW pattern
93
- * - 503:/api/v2/metrics (count: 0, limit: 1) → NEW pattern
105
+ * - GET:500:/api/v2/cases (count: 1, limit: 1) → at limit
106
+ * - POST:404:/api/v2/users (count: 0, limit: 1) → NEW pattern
107
+ * - GET:503:/api/v2/metrics (count: 0, limit: 1) → NEW pattern
94
108
  * Result: false (test should fail because 2 patterns are new)
95
109
  */
96
110
  function shouldSkipFailureForErrorPattern(errorData, maxTestsPerError) {
@@ -115,9 +129,9 @@ function shouldSkipFailureForErrorPattern(errorData, maxTestsPerError) {
115
129
  *
116
130
  * @example
117
131
  * Test encounters 3 errors with maxTestsPerError: 1
118
- * - 500:/api/v2/old (count: 1, limit: 1) → at limit, DON'T increment
119
- * - 404:/api/v2/new (count: 0, limit: 1) → new pattern, increment to 1
120
- * - 503:/api/v2/other (count: 0, limit: 1) → new pattern, increment to 1
132
+ * - GET:500:/api/v2/old (count: 1, limit: 1) → at limit, DON'T increment
133
+ * - POST:404:/api/v2/new (count: 0, limit: 1) → new pattern, increment to 1
134
+ * - GET:503:/api/v2/other (count: 0, limit: 1) → new pattern, increment to 1
121
135
  */
122
136
  function incrementErrorPatternCounts(errorData, maxTestsPerError) {
123
137
  for (const error of errorData) {
@@ -126,7 +140,13 @@ function incrementErrorPatternCounts(errorData, maxTestsPerError) {
126
140
  // Only increment if this pattern contributed to the test failing
127
141
  // (i.e., it was below the limit and thus caused the failure)
128
142
  if (currentCount < maxTestsPerError) {
129
- errorPatternFailureCount.set(patternKey, currentCount + 1);
143
+ const newCount = currentCount + 1;
144
+ errorPatternFailureCount.set(patternKey, newCount);
145
+ // Debug logging to help developers track pattern counts
146
+ log_1.log.debugSync(`Pattern ${patternKey} count incremented: ${currentCount} -> ${newCount} (limit: ${maxTestsPerError})`);
147
+ }
148
+ else {
149
+ log_1.log.debugSync(`Pattern ${patternKey} already at limit: ${currentCount}/${maxTestsPerError} - not incrementing`);
130
150
  }
131
151
  }
132
152
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../../src/network-error-monitor/fixtures.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../../src/network-error-monitor/fixtures.ts"],"names":[],"mappings":"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"}
@@ -14,17 +14,38 @@ type NetworkErrorMonitorFixture = {
14
14
  /** Automatically monitors network responses for errors */
15
15
  networkErrorMonitor: void;
16
16
  };
17
- type NetworkErrorMonitorConfig = {
17
+ /**
18
+ * Base configuration without excludePatterns - maxTestsPerError cannot be used
19
+ */
20
+ type BaseNetworkErrorMonitorConfig = {
21
+ /** Not specified - maxTestsPerError cannot be used without excludePatterns */
22
+ excludePatterns?: undefined;
23
+ /** Cannot be specified without excludePatterns */
24
+ maxTestsPerError?: never;
25
+ };
26
+ /**
27
+ * Configuration with excludePatterns - enables maxTestsPerError option
28
+ */
29
+ type NetworkErrorMonitorConfigWithPatterns = {
18
30
  /** Regex patterns for URLs to exclude from error monitoring */
19
- excludePatterns?: RegExp[];
31
+ excludePatterns: RegExp[];
20
32
  /**
21
33
  * Maximum number of tests that can fail per unique error pattern.
22
34
  * Once this limit is reached, subsequent tests just log the error without failing.
23
35
  * Default: Infinity (all tests fail)
36
+ * Requires excludePatterns to be specified.
24
37
  * @example maxTestsPerError: 1 // Only first test fails, rest just log
25
38
  */
26
39
  maxTestsPerError?: number;
27
40
  };
41
+ /**
42
+ * Configuration options for the network error monitor.
43
+ *
44
+ * Note: maxTestsPerError can only be used when excludePatterns is specified.
45
+ * This enforces a best practice where domino effect prevention is paired with
46
+ * known exclusion patterns.
47
+ */
48
+ type NetworkErrorMonitorConfig = BaseNetworkErrorMonitorConfig | NetworkErrorMonitorConfigWithPatterns;
28
49
  /**
29
50
  * Creates a network error monitoring fixture with configurable exclusion patterns and fail-fast behavior.
30
51
  *
@@ -1 +1 @@
1
- {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../../src/network-error-monitor/fixtures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAY,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAmBhE,KAAK,0BAA0B,GAAG;IAChC,0DAA0D;IAC1D,mBAAmB,EAAE,IAAI,CAAA;CAC1B,CAAA;AAED,KAAK,yBAAyB,GAAG;IAC/B,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B,CAAA;AAoMD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,GAAE,yBAA8B;sCAOtB;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,OACnB,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,YACtB,QAAQ;;;EAoFzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,eAAO,MAAM,IAAI,0QAGhB,CAAA;AAED,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../../src/network-error-monitor/fixtures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAY,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAwBhE,KAAK,0BAA0B,GAAG;IAChC,0DAA0D;IAC1D,mBAAmB,EAAE,IAAI,CAAA;CAC1B,CAAA;AAED;;GAEG;AACH,KAAK,6BAA6B,GAAG;IACnC,8EAA8E;IAC9E,eAAe,CAAC,EAAE,SAAS,CAAA;IAC3B,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,KAAK,CAAA;CACzB,CAAA;AAED;;GAEG;AACH,KAAK,qCAAqC,GAAG;IAC3C,+DAA+D;IAC/D,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED;;;;;;GAMG;AACH,KAAK,yBAAyB,GAC1B,6BAA6B,GAC7B,qCAAqC,CAAA;AAyNzC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,GAAE,yBAA8B;sCAOtB;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,OACnB,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,YACtB,QAAQ;;;EAoFzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,eAAO,MAAM,IAAI,0QAGhB,CAAA;AAED,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA"}
@@ -19,7 +19,12 @@ const log_1 = require("../log/log");
19
19
  * Global state to track how many tests have failed per error pattern.
20
20
  * This prevents domino effect where same backend issue fails hundreds of tests.
21
21
  *
22
- * Key format: `${status}:${basePath}` (e.g., "500:/api/v2/case-management")
22
+ * IMPORTANT: This state is worker-scoped and persists across test files.
23
+ * - Parallel workers have independent state (no cross-contamination)
24
+ * - Sequential tests in same worker share this state
25
+ * - State is never reset during worker lifetime
26
+ *
27
+ * Key format: `${method}:${status}:${basePath}` (e.g., "GET:500:/api/v2/case-management")
23
28
  * Value: number of tests that have already failed with this error pattern
24
29
  */
25
30
  const errorPatternFailureCount = new Map();
@@ -66,18 +71,27 @@ function extractBasePath(url) {
66
71
  return '/' + pathSegments.slice(0, 3).join('/');
67
72
  }
68
73
  catch {
74
+ // Log parsing failures to help debug issues with malformed URLs
75
+ log_1.log.warningSync(`Failed to parse URL for error pattern grouping: ${url}. Using full URL as pattern key.`);
69
76
  return url;
70
77
  }
71
78
  }
72
79
  /**
73
80
  * Create error pattern key for tracking failures across tests.
81
+ * Includes HTTP method to distinguish between different error types on same endpoint.
74
82
  *
75
83
  * @example
76
- * GET 500 /api/v2/case-management/cases/123 → "500:/api/v2/case-management"
84
+ * GET 500 /api/v2/case-management/cases/123 → "GET:500:/api/v2/case-management"
85
+ * POST 404 /api/v2/users → "POST:404:/api/v2/users"
86
+ *
87
+ * @rationale
88
+ * A GET 404 vs POST 404 on same endpoint might represent different issues:
89
+ * - GET 404 /api/users/123 → User not found (expected in some tests)
90
+ * - POST 404 /api/users → Endpoint doesn't exist (critical error)
77
91
  */
78
92
  function createErrorPatternKey(error) {
79
93
  const basePath = extractBasePath(error.url);
80
- return `${error.status}:${basePath}`;
94
+ return `${error.method}:${error.status}:${basePath}`;
81
95
  }
82
96
  /**
83
97
  * Check if we've already failed enough tests for this error pattern.
@@ -88,9 +102,9 @@ function createErrorPatternKey(error) {
88
102
  *
89
103
  * @example
90
104
  * Test encounters 3 errors:
91
- * - 500:/api/v2/cases (count: 1, limit: 1) → at limit
92
- * - 404:/api/v2/users (count: 0, limit: 1) → NEW pattern
93
- * - 503:/api/v2/metrics (count: 0, limit: 1) → NEW pattern
105
+ * - GET:500:/api/v2/cases (count: 1, limit: 1) → at limit
106
+ * - POST:404:/api/v2/users (count: 0, limit: 1) → NEW pattern
107
+ * - GET:503:/api/v2/metrics (count: 0, limit: 1) → NEW pattern
94
108
  * Result: false (test should fail because 2 patterns are new)
95
109
  */
96
110
  function shouldSkipFailureForErrorPattern(errorData, maxTestsPerError) {
@@ -115,9 +129,9 @@ function shouldSkipFailureForErrorPattern(errorData, maxTestsPerError) {
115
129
  *
116
130
  * @example
117
131
  * Test encounters 3 errors with maxTestsPerError: 1
118
- * - 500:/api/v2/old (count: 1, limit: 1) → at limit, DON'T increment
119
- * - 404:/api/v2/new (count: 0, limit: 1) → new pattern, increment to 1
120
- * - 503:/api/v2/other (count: 0, limit: 1) → new pattern, increment to 1
132
+ * - GET:500:/api/v2/old (count: 1, limit: 1) → at limit, DON'T increment
133
+ * - POST:404:/api/v2/new (count: 0, limit: 1) → new pattern, increment to 1
134
+ * - GET:503:/api/v2/other (count: 0, limit: 1) → new pattern, increment to 1
121
135
  */
122
136
  function incrementErrorPatternCounts(errorData, maxTestsPerError) {
123
137
  for (const error of errorData) {
@@ -126,7 +140,13 @@ function incrementErrorPatternCounts(errorData, maxTestsPerError) {
126
140
  // Only increment if this pattern contributed to the test failing
127
141
  // (i.e., it was below the limit and thus caused the failure)
128
142
  if (currentCount < maxTestsPerError) {
129
- errorPatternFailureCount.set(patternKey, currentCount + 1);
143
+ const newCount = currentCount + 1;
144
+ errorPatternFailureCount.set(patternKey, newCount);
145
+ // Debug logging to help developers track pattern counts
146
+ log_1.log.debugSync(`Pattern ${patternKey} count incremented: ${currentCount} -> ${newCount} (limit: ${maxTestsPerError})`);
147
+ }
148
+ else {
149
+ log_1.log.debugSync(`Pattern ${patternKey} already at limit: ${currentCount}/${maxTestsPerError} - not incrementing`);
130
150
  }
131
151
  }
132
152
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../../src/network-error-monitor/fixtures.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../../src/network-error-monitor/fixtures.ts"],"names":[],"mappings":"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"}
@@ -14,17 +14,38 @@ type NetworkErrorMonitorFixture = {
14
14
  /** Automatically monitors network responses for errors */
15
15
  networkErrorMonitor: void;
16
16
  };
17
- type NetworkErrorMonitorConfig = {
17
+ /**
18
+ * Base configuration without excludePatterns - maxTestsPerError cannot be used
19
+ */
20
+ type BaseNetworkErrorMonitorConfig = {
21
+ /** Not specified - maxTestsPerError cannot be used without excludePatterns */
22
+ excludePatterns?: undefined;
23
+ /** Cannot be specified without excludePatterns */
24
+ maxTestsPerError?: never;
25
+ };
26
+ /**
27
+ * Configuration with excludePatterns - enables maxTestsPerError option
28
+ */
29
+ type NetworkErrorMonitorConfigWithPatterns = {
18
30
  /** Regex patterns for URLs to exclude from error monitoring */
19
- excludePatterns?: RegExp[];
31
+ excludePatterns: RegExp[];
20
32
  /**
21
33
  * Maximum number of tests that can fail per unique error pattern.
22
34
  * Once this limit is reached, subsequent tests just log the error without failing.
23
35
  * Default: Infinity (all tests fail)
36
+ * Requires excludePatterns to be specified.
24
37
  * @example maxTestsPerError: 1 // Only first test fails, rest just log
25
38
  */
26
39
  maxTestsPerError?: number;
27
40
  };
41
+ /**
42
+ * Configuration options for the network error monitor.
43
+ *
44
+ * Note: maxTestsPerError can only be used when excludePatterns is specified.
45
+ * This enforces a best practice where domino effect prevention is paired with
46
+ * known exclusion patterns.
47
+ */
48
+ type NetworkErrorMonitorConfig = BaseNetworkErrorMonitorConfig | NetworkErrorMonitorConfigWithPatterns;
28
49
  /**
29
50
  * Creates a network error monitoring fixture with configurable exclusion patterns and fail-fast behavior.
30
51
  *
@@ -1 +1 @@
1
- {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../../src/network-error-monitor/fixtures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAY,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAmBhE,KAAK,0BAA0B,GAAG;IAChC,0DAA0D;IAC1D,mBAAmB,EAAE,IAAI,CAAA;CAC1B,CAAA;AAED,KAAK,yBAAyB,GAAG;IAC/B,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B,CAAA;AAoMD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,GAAE,yBAA8B;sCAOtB;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,OACnB,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,YACtB,QAAQ;;;EAoFzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,eAAO,MAAM,IAAI,0QAGhB,CAAA;AAED,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../../src/network-error-monitor/fixtures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAY,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAwBhE,KAAK,0BAA0B,GAAG;IAChC,0DAA0D;IAC1D,mBAAmB,EAAE,IAAI,CAAA;CAC1B,CAAA;AAED;;GAEG;AACH,KAAK,6BAA6B,GAAG;IACnC,8EAA8E;IAC9E,eAAe,CAAC,EAAE,SAAS,CAAA;IAC3B,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,KAAK,CAAA;CACzB,CAAA;AAED;;GAEG;AACH,KAAK,qCAAqC,GAAG;IAC3C,+DAA+D;IAC/D,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED;;;;;;GAMG;AACH,KAAK,yBAAyB,GAC1B,6BAA6B,GAC7B,qCAAqC,CAAA;AAyNzC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,GAAE,yBAA8B;sCAOtB;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,OACnB,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,YACtB,QAAQ;;;EAoFzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,eAAO,MAAM,IAAI,0QAGhB,CAAA;AAED,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seontechnologies/playwright-utils",
3
- "version": "3.10.0",
3
+ "version": "3.10.1",
4
4
  "description": "A collection of utilities for Playwright.",
5
5
  "workspaces": [
6
6
  "sample-app/*"