@seontechnologies/playwright-utils 3.10.1 → 3.11.0
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 +1 -1
- package/dist/cjs/api-request/api-request-fixture.d.ts.map +1 -1
- package/dist/cjs/api-request/api-request-fixture.js +5 -0
- package/dist/cjs/api-request/api-request-fixture.js.map +1 -1
- package/dist/cjs/api-request/schema-validation/core.d.ts +9 -0
- package/dist/cjs/api-request/schema-validation/core.d.ts.map +1 -1
- package/dist/cjs/api-request/schema-validation/core.js +53 -2
- package/dist/cjs/api-request/schema-validation/core.js.map +1 -1
- package/dist/cjs/api-request/schema-validation/fixture.d.ts +4 -2
- package/dist/cjs/api-request/schema-validation/fixture.d.ts.map +1 -1
- package/dist/cjs/api-request/schema-validation/fixture.js +9 -2
- package/dist/cjs/api-request/schema-validation/fixture.js.map +1 -1
- package/dist/cjs/api-request/schema-validation/internal/response-extension.d.ts.map +1 -1
- package/dist/cjs/api-request/schema-validation/internal/response-extension.js +5 -3
- package/dist/cjs/api-request/schema-validation/internal/response-extension.js.map +1 -1
- package/dist/cjs/api-request/ui-display.d.ts.map +1 -1
- package/dist/cjs/api-request/ui-display.js +36 -17
- package/dist/cjs/api-request/ui-display.js.map +1 -1
- package/dist/cjs/internal/index.d.ts +1 -0
- package/dist/cjs/internal/index.d.ts.map +1 -1
- package/dist/cjs/internal/index.js +1 -0
- package/dist/cjs/internal/index.js.map +1 -1
- package/dist/cjs/internal/page-context.d.ts +42 -0
- package/dist/cjs/internal/page-context.d.ts.map +1 -0
- package/dist/cjs/internal/page-context.js +58 -0
- package/dist/cjs/internal/page-context.js.map +1 -0
- package/dist/esm/api-request/api-request-fixture.d.ts.map +1 -1
- package/dist/esm/api-request/api-request-fixture.js +5 -0
- package/dist/esm/api-request/api-request-fixture.js.map +1 -1
- package/dist/esm/api-request/schema-validation/core.d.ts +9 -0
- package/dist/esm/api-request/schema-validation/core.d.ts.map +1 -1
- package/dist/esm/api-request/schema-validation/core.js +53 -2
- package/dist/esm/api-request/schema-validation/core.js.map +1 -1
- package/dist/esm/api-request/schema-validation/fixture.d.ts +4 -2
- package/dist/esm/api-request/schema-validation/fixture.d.ts.map +1 -1
- package/dist/esm/api-request/schema-validation/fixture.js +9 -2
- package/dist/esm/api-request/schema-validation/fixture.js.map +1 -1
- package/dist/esm/api-request/schema-validation/internal/response-extension.d.ts.map +1 -1
- package/dist/esm/api-request/schema-validation/internal/response-extension.js +5 -3
- package/dist/esm/api-request/schema-validation/internal/response-extension.js.map +1 -1
- package/dist/esm/api-request/ui-display.d.ts.map +1 -1
- package/dist/esm/api-request/ui-display.js +36 -17
- package/dist/esm/api-request/ui-display.js.map +1 -1
- package/dist/esm/internal/index.d.ts +1 -0
- package/dist/esm/internal/index.d.ts.map +1 -1
- package/dist/esm/internal/index.js +1 -0
- package/dist/esm/internal/index.js.map +1 -1
- package/dist/esm/internal/page-context.d.ts +42 -0
- package/dist/esm/internal/page-context.d.ts.map +1 -0
- package/dist/esm/internal/page-context.js +58 -0
- package/dist/esm/internal/page-context.js.map +1 -0
- package/dist/types/api-request/api-request-fixture.d.ts.map +1 -1
- package/dist/types/api-request/schema-validation/core.d.ts +9 -0
- package/dist/types/api-request/schema-validation/core.d.ts.map +1 -1
- package/dist/types/api-request/schema-validation/fixture.d.ts +4 -2
- package/dist/types/api-request/schema-validation/fixture.d.ts.map +1 -1
- package/dist/types/api-request/schema-validation/internal/response-extension.d.ts.map +1 -1
- package/dist/types/api-request/ui-display.d.ts.map +1 -1
- package/dist/types/internal/index.d.ts +1 -0
- package/dist/types/internal/index.d.ts.map +1 -1
- package/dist/types/internal/page-context.d.ts +42 -0
- package/dist/types/internal/page-context.d.ts.map +1 -0
- package/package.json +4 -3
|
@@ -6,6 +6,46 @@ exports.validateSchema = validateSchema;
|
|
|
6
6
|
const shape_validator_1 = require("./internal/shape-validator");
|
|
7
7
|
const schema_processors_1 = require("./internal/schema-processors");
|
|
8
8
|
const result_builder_1 = require("./internal/result-builder");
|
|
9
|
+
const internal_1 = require("../../internal");
|
|
10
|
+
const ui_display_1 = require("../ui-display");
|
|
11
|
+
/** Check if validation UI should be displayed */
|
|
12
|
+
function shouldDisplayValidationUI() {
|
|
13
|
+
return process.env.API_E2E_UI_MODE === 'true';
|
|
14
|
+
}
|
|
15
|
+
/** Display validation results in UI for plain function usage */
|
|
16
|
+
async function displayValidationUI(validationResult) {
|
|
17
|
+
const page = (0, internal_1.getPageContext)();
|
|
18
|
+
if (!page || !validationResult.uiData)
|
|
19
|
+
return;
|
|
20
|
+
try {
|
|
21
|
+
const requestData = {
|
|
22
|
+
url: 'Schema Validation',
|
|
23
|
+
method: 'VALIDATE',
|
|
24
|
+
validationInfo: {
|
|
25
|
+
schemaFormat: validationResult.schemaFormat,
|
|
26
|
+
validationTime: validationResult.validationTime,
|
|
27
|
+
success: validationResult.success,
|
|
28
|
+
errorCount: validationResult.errors.length
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
const responseData = {
|
|
32
|
+
status: validationResult.success ? 200 : 400,
|
|
33
|
+
statusClass: validationResult.success ? '2xx' : '4xx',
|
|
34
|
+
statusText: validationResult.success ? 'Valid' : 'Invalid',
|
|
35
|
+
validationResult: {
|
|
36
|
+
icon: validationResult.uiData.statusIcon,
|
|
37
|
+
summary: validationResult.uiData.validationSummary,
|
|
38
|
+
schemaInfo: validationResult.uiData.schemaInfo,
|
|
39
|
+
errors: validationResult.uiData.errorDetails,
|
|
40
|
+
schema: validationResult.schema
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
await (0, ui_display_1.addApiCardToUI)(requestData, responseData, page, true);
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
await (0, internal_1.getLogger)().warning(`Failed to display validation UI: ${error instanceof Error ? error.message : String(error)}`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
9
49
|
/** Detect schema format based on input */
|
|
10
50
|
function detectSchemaFormat(schema) {
|
|
11
51
|
if (typeof schema === 'string') {
|
|
@@ -45,11 +85,22 @@ async function validateSchema(data, schema, options = {}) {
|
|
|
45
85
|
validationErrors = [...validationErrors, ...shapeErrors];
|
|
46
86
|
}
|
|
47
87
|
const validationTime = Date.now() - startTime;
|
|
48
|
-
|
|
88
|
+
const result = (0, result_builder_1.buildValidationResult)(validationErrors, schemaFormat, validationTime, schemaForResult);
|
|
89
|
+
// Display UI if enabled (via option or environment variable)
|
|
90
|
+
// Skip if _skipUI is set (used by chained API to avoid duplicate UI)
|
|
91
|
+
if (!options._skipUI && (options.uiMode || shouldDisplayValidationUI())) {
|
|
92
|
+
await displayValidationUI(result);
|
|
93
|
+
}
|
|
94
|
+
return result;
|
|
49
95
|
}
|
|
50
96
|
catch (error) {
|
|
51
97
|
const validationTime = Date.now() - startTime;
|
|
52
|
-
|
|
98
|
+
const result = (0, result_builder_1.buildErrorResult)(error, detectSchemaFormat(schema), validationTime);
|
|
99
|
+
// Display UI for errors too (skip if _skipUI is set)
|
|
100
|
+
if (!options._skipUI && (options.uiMode || shouldDisplayValidationUI())) {
|
|
101
|
+
await displayValidationUI(result);
|
|
102
|
+
}
|
|
103
|
+
return result;
|
|
53
104
|
}
|
|
54
105
|
}
|
|
55
106
|
//# sourceMappingURL=core.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../src/api-request/schema-validation/core.ts"],"names":[],"mappings":";AAAA,oCAAoC;;
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../src/api-request/schema-validation/core.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type { SupportedSchema, ValidateSchemaOptions, ValidationResult } from './types';
|
|
2
2
|
/**
|
|
3
|
-
* Fixture that provides the validateSchema function for schema validation
|
|
3
|
+
* Fixture that provides the validateSchema function for schema validation.
|
|
4
|
+
* Displays validation results in Playwright UI when API_E2E_UI_MODE=true.
|
|
4
5
|
*/
|
|
5
6
|
export declare const test: import("@playwright/test").TestType<import("@playwright/test").PlaywrightTestArgs & import("@playwright/test").PlaywrightTestOptions & {
|
|
6
7
|
/**
|
|
7
|
-
* Validates data against a schema with optional shape assertions
|
|
8
|
+
* Validates data against a schema with optional shape assertions.
|
|
9
|
+
* Displays validation results in Playwright UI when API_E2E_UI_MODE=true.
|
|
8
10
|
*
|
|
9
11
|
* @example
|
|
10
12
|
* test('validate response schema', async ({ validateSchema }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixture.d.ts","sourceRoot":"","sources":["../../../../src/api-request/schema-validation/fixture.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fixture.d.ts","sourceRoot":"","sources":["../../../../src/api-request/schema-validation/fixture.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,SAAS,CAAA;AAEhB;;;GAGG;AACH,eAAO,MAAM,IAAI;IACf;;;;;;;;;;;;OAYG;oBACa,CACd,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,OAAO,EACb,OAAO,CAAC,EAAE,qBAAqB,KAC5B,OAAO,CAAC,gBAAgB,CAAC;wGAoB9B,CAAA"}
|
|
@@ -3,15 +3,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.test = void 0;
|
|
4
4
|
const test_1 = require("@playwright/test");
|
|
5
5
|
const core_1 = require("./core");
|
|
6
|
+
const page_context_1 = require("../../internal/page-context");
|
|
6
7
|
/**
|
|
7
|
-
* Fixture that provides the validateSchema function for schema validation
|
|
8
|
+
* Fixture that provides the validateSchema function for schema validation.
|
|
9
|
+
* Displays validation results in Playwright UI when API_E2E_UI_MODE=true.
|
|
8
10
|
*/
|
|
9
11
|
exports.test = test_1.test.extend({
|
|
10
|
-
validateSchema: async ({}, use) => {
|
|
12
|
+
validateSchema: async ({ page }, use) => {
|
|
13
|
+
// Capture page context for UI display support
|
|
14
|
+
(0, page_context_1.capturePageContext)(page);
|
|
11
15
|
const validateSchema = async (schema, data, options) => {
|
|
16
|
+
// Core function handles UI display via captured page context
|
|
12
17
|
return await (0, core_1.validateSchema)(data, schema, options);
|
|
13
18
|
};
|
|
14
19
|
await use(validateSchema);
|
|
20
|
+
// Clear page context to avoid stale references between tests
|
|
21
|
+
(0, page_context_1.clearPageContext)();
|
|
15
22
|
}
|
|
16
23
|
});
|
|
17
24
|
//# sourceMappingURL=fixture.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixture.js","sourceRoot":"","sources":["../../../../src/api-request/schema-validation/fixture.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,iCAAiE;
|
|
1
|
+
{"version":3,"file":"fixture.js","sourceRoot":"","sources":["../../../../src/api-request/schema-validation/fixture.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,iCAAiE;AACjE,8DAGoC;AAOpC;;;GAGG;AACU,QAAA,IAAI,GAAG,WAAI,CAAC,MAAM,CAmB5B;IACD,cAAc,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;QACtC,8CAA8C;QAC9C,IAAA,iCAAkB,EAAC,IAAI,CAAC,CAAA;QAExB,MAAM,cAAc,GAAG,KAAK,EAC1B,MAAuB,EACvB,IAAa,EACb,OAA+B,EACJ,EAAE;YAC7B,6DAA6D;YAC7D,OAAO,MAAM,IAAA,qBAAsB,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAC5D,CAAC,CAAA;QAED,MAAM,GAAG,CAAC,cAAc,CAAC,CAAA;QAEzB,6DAA6D;QAC7D,IAAA,+BAAgB,GAAE,CAAA;IACpB,CAAC;CACF,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-extension.d.ts","sourceRoot":"","sources":["../../../../../src/api-request/schema-validation/internal/response-extension.ts"],"names":[],"mappings":"AAAA,oDAAoD;AAWpD,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EAErB,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAM3D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAqB5C,uDAAuD;AACvD,MAAM,WAAW,mBAAmB,CAAC,CAAC,GAAG,OAAO,CAC9C,SAAQ,kBAAkB,CAAC,CAAC,CAAC;IAC7B,cAAc,CAAC,UAAU,GAAG,CAAC,EAC3B,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAA;CAC7C;AAmID,0DAA0D;AAC1D,wBAAgB,sBAAsB,CAAC,CAAC,EACtC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC,CAAC,EACvC,cAAc,CAAC,EAAE;IACf,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,GACA,mBAAmB,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"response-extension.d.ts","sourceRoot":"","sources":["../../../../../src/api-request/schema-validation/internal/response-extension.ts"],"names":[],"mappings":"AAAA,oDAAoD;AAWpD,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EAErB,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAM3D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAqB5C,uDAAuD;AACvD,MAAM,WAAW,mBAAmB,CAAC,CAAC,GAAG,OAAO,CAC9C,SAAQ,kBAAkB,CAAC,CAAC,CAAC;IAC7B,cAAc,CAAC,UAAU,GAAG,CAAC,EAC3B,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAA;CAC7C;AAmID,0DAA0D;AAC1D,wBAAgB,sBAAsB,CAAC,CAAC,EACtC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC,CAAC,EACvC,cAAc,CAAC,EAAE;IACf,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,GACA,mBAAmB,CAAC,CAAC,CAAC,CAsFxB"}
|
|
@@ -96,13 +96,15 @@ function createEnhancedResponse(originalResponse, requestContext) {
|
|
|
96
96
|
validateSchema: async (schema, options = {}) => {
|
|
97
97
|
const startTime = Date.now();
|
|
98
98
|
try {
|
|
99
|
-
// Run core validation
|
|
99
|
+
// Run core validation (skip UI - we handle it here to avoid duplicates)
|
|
100
100
|
const validationResult = await (0, core_1.validateSchema)(originalResponse.body, schema, {
|
|
101
101
|
shape: options.shape,
|
|
102
102
|
path: options.path,
|
|
103
103
|
endpoint: options.endpoint,
|
|
104
104
|
method: options.method,
|
|
105
|
-
status: options.status
|
|
105
|
+
status: options.status,
|
|
106
|
+
mode: options.mode,
|
|
107
|
+
_skipUI: true // Prevent core from displaying UI - we handle it below
|
|
106
108
|
});
|
|
107
109
|
// Display validation results in UI if enabled
|
|
108
110
|
if (options.uiMode ||
|
|
@@ -206,7 +208,7 @@ async function displayValidationUI(params) {
|
|
|
206
208
|
}
|
|
207
209
|
catch (error) {
|
|
208
210
|
// Silent failure for UI display issues
|
|
209
|
-
await (0, internal_1.getLogger)().
|
|
211
|
+
await (0, internal_1.getLogger)().warning(`Failed to display validation UI: ${error instanceof Error ? error.message : String(error)}`);
|
|
210
212
|
}
|
|
211
213
|
}
|
|
212
214
|
//# sourceMappingURL=response-extension.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-extension.js","sourceRoot":"","sources":["../../../../../src/api-request/schema-validation/internal/response-extension.ts"],"names":[],"mappings":";AAAA,oDAAoD;;AAuLpD,
|
|
1
|
+
{"version":3,"file":"response-extension.js","sourceRoot":"","sources":["../../../../../src/api-request/schema-validation/internal/response-extension.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-display.d.ts","sourceRoot":"","sources":["../../../src/api-request/ui-display.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAQ,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAGlD,4CAA4C;AAC5C,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE;QACf,YAAY,EAAE,MAAM,CAAA;QACpB,cAAc,EAAE,MAAM,CAAA;QACtB,OAAO,EAAE,OAAO,CAAA;QAChB,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;CACF;AAED,6CAA6C;AAC7C,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE;QACjB,IAAI,EAAE,GAAG,GAAG,GAAG,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;QACf,UAAU,EAAE,MAAM,CAAA;QAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;QACjB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,GACzB,aAAa,oBAAoB,EACjC,cAAc,qBAAqB,EACnC,OAAO,IAAI,EACX,SAAS,OAAO,KACf,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"ui-display.d.ts","sourceRoot":"","sources":["../../../src/api-request/ui-display.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAQ,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAGlD,4CAA4C;AAC5C,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE;QACf,YAAY,EAAE,MAAM,CAAA;QACpB,cAAc,EAAE,MAAM,CAAA;QACtB,OAAO,EAAE,OAAO,CAAA;QAChB,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;CACF;AAED,6CAA6C;AAC7C,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE;QACjB,IAAI,EAAE,GAAG,GAAG,GAAG,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;QACf,UAAU,EAAE,MAAM,CAAA;QAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;QACjB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,GACzB,aAAa,oBAAoB,EACjC,cAAc,qBAAqB,EACnC,OAAO,IAAI,EACX,SAAS,OAAO,KACf,OAAO,CAAC,IAAI,CAmCd,CAAA"}
|
|
@@ -22,11 +22,14 @@ const addApiCardToUI = async (requestData, responseData, page, uiMode) => {
|
|
|
22
22
|
const html = await createPageHtml(apiCallHtml);
|
|
23
23
|
// Open validation results in a new tab if this is a validation request
|
|
24
24
|
if (requestData.validationInfo) {
|
|
25
|
-
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
const { schemaFormat = 'Unknown', success } = requestData.validationInfo;
|
|
26
|
+
const statusIcon = success ? '✅' : '❌';
|
|
27
|
+
const stepName = `${statusIcon} Schema Validation (${schemaFormat})`;
|
|
28
|
+
await test_1.test.step(stepName, async () => {
|
|
29
|
+
const newPage = await page.context().newPage();
|
|
30
|
+
await newPage.setContent(html);
|
|
31
|
+
await newPage.bringToFront();
|
|
32
|
+
});
|
|
30
33
|
}
|
|
31
34
|
else {
|
|
32
35
|
// For non-validation requests, use the original behavior
|
|
@@ -257,21 +260,37 @@ const formatJson = (jsonObject) => {
|
|
|
257
260
|
* Inline CSS styles for the API display
|
|
258
261
|
*/
|
|
259
262
|
const inlineStyles = `<style>
|
|
260
|
-
body {
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
263
|
+
html, body {
|
|
264
|
+
height: 100%;
|
|
265
|
+
margin: 0;
|
|
266
|
+
padding: 0;
|
|
267
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
268
|
+
}
|
|
269
|
+
.pw-card {
|
|
270
|
+
box-shadow: 0 4px 8px 0 rgba(0,0,0,0.1);
|
|
271
|
+
transition: 0.3s;
|
|
272
|
+
border-radius: 0;
|
|
265
273
|
overflow: hidden;
|
|
274
|
+
height: 100%;
|
|
275
|
+
box-sizing: border-box;
|
|
266
276
|
}
|
|
267
277
|
.pw-card:hover { box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2); }
|
|
268
|
-
.pw-api-container {
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
margin:
|
|
273
|
-
|
|
274
|
-
|
|
278
|
+
.pw-api-container {
|
|
279
|
+
color: rgb(40, 40, 40);
|
|
280
|
+
width: 100%;
|
|
281
|
+
height: 100%;
|
|
282
|
+
margin: 0;
|
|
283
|
+
box-sizing: border-box;
|
|
284
|
+
}
|
|
285
|
+
.pw-api-call {
|
|
286
|
+
background-color: rgb(248, 250, 252);
|
|
287
|
+
border: none;
|
|
288
|
+
margin: 0;
|
|
289
|
+
padding: 20px;
|
|
290
|
+
font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
|
|
291
|
+
min-height: 100%;
|
|
292
|
+
box-sizing: border-box;
|
|
293
|
+
overflow-y: auto;
|
|
275
294
|
}
|
|
276
295
|
.pw-api-request, .pw-api-response { margin-bottom: 20px; }
|
|
277
296
|
.title {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-display.js","sourceRoot":"","sources":["../../../src/api-request/ui-display.ts"],"names":[],"mappings":";AAAA,uDAAuD;AACvD;;;GAGG;;;AAEH,2CAAkD;AAClD,0CAAuC;AAmCvC;;;GAGG;AACI,MAAM,cAAc,GAAG,KAAK,EACjC,WAAiC,EACjC,YAAmC,EACnC,IAAW,EACX,MAAgB,EACD,EAAE;IACjB,uGAAuG;IACvG,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,MAAM,IAAI,kBAAkB,EAAE,CAAC,CAAA;IAE7D,IAAI,CAAC,YAAY;QAAE,OAAM;IAEzB,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;QACtE,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,CAAA;QAE9C,uEAAuE;QACvE,IAAI,WAAW,CAAC,cAAc,EAAE,CAAC;YAC/B
|
|
1
|
+
{"version":3,"file":"ui-display.js","sourceRoot":"","sources":["../../../src/api-request/ui-display.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internal/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internal/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA"}
|
|
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./logger"), exports);
|
|
18
|
+
__exportStar(require("./page-context"), exports);
|
|
18
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internal/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internal/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,iDAA8B"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Page Context Management for Schema Validation UI
|
|
3
|
+
*
|
|
4
|
+
* This module provides a way to capture and retrieve the Playwright page context
|
|
5
|
+
* for use in standalone functions that need UI display capabilities.
|
|
6
|
+
*
|
|
7
|
+
* Similar to captureTestContext, this allows the plain validateSchema function
|
|
8
|
+
* to display validation results in the Playwright UI.
|
|
9
|
+
*
|
|
10
|
+
* @note Test Isolation: Playwright runs parallel tests in separate worker processes,
|
|
11
|
+
* so global state is isolated per-worker. Serial tests in the same worker are handled
|
|
12
|
+
* by the fixtures which call clearPageContext() after each test. For manual usage
|
|
13
|
+
* outside of fixtures, ensure you're in an isolated test context.
|
|
14
|
+
*/
|
|
15
|
+
import type { Page } from '@playwright/test';
|
|
16
|
+
/**
|
|
17
|
+
* Capture the current page context for use by standalone functions.
|
|
18
|
+
* Call this in your beforeEach hook alongside captureTestContext.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* import { test } from '@playwright/test'
|
|
23
|
+
* import { captureTestContext, capturePageContext } from '@seontechnologies/playwright-utils'
|
|
24
|
+
*
|
|
25
|
+
* test.beforeEach(async ({ page }, testInfo) => {
|
|
26
|
+
* captureTestContext(testInfo)
|
|
27
|
+
* capturePageContext(page)
|
|
28
|
+
* })
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare function capturePageContext(page: Page): void;
|
|
32
|
+
/**
|
|
33
|
+
* Get the currently captured page context.
|
|
34
|
+
* Returns null if no page has been captured or if the page has been closed.
|
|
35
|
+
*/
|
|
36
|
+
export declare function getPageContext(): Page | null;
|
|
37
|
+
/**
|
|
38
|
+
* Clear the page context. Called automatically between tests
|
|
39
|
+
* but can be called manually if needed.
|
|
40
|
+
*/
|
|
41
|
+
export declare function clearPageContext(): void;
|
|
42
|
+
//# sourceMappingURL=page-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-context.d.ts","sourceRoot":"","sources":["../../../src/internal/page-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAK5C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAEnD;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,IAAI,GAAG,IAAI,CAM5C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Page Context Management for Schema Validation UI
|
|
4
|
+
*
|
|
5
|
+
* This module provides a way to capture and retrieve the Playwright page context
|
|
6
|
+
* for use in standalone functions that need UI display capabilities.
|
|
7
|
+
*
|
|
8
|
+
* Similar to captureTestContext, this allows the plain validateSchema function
|
|
9
|
+
* to display validation results in the Playwright UI.
|
|
10
|
+
*
|
|
11
|
+
* @note Test Isolation: Playwright runs parallel tests in separate worker processes,
|
|
12
|
+
* so global state is isolated per-worker. Serial tests in the same worker are handled
|
|
13
|
+
* by the fixtures which call clearPageContext() after each test. For manual usage
|
|
14
|
+
* outside of fixtures, ensure you're in an isolated test context.
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.capturePageContext = capturePageContext;
|
|
18
|
+
exports.getPageContext = getPageContext;
|
|
19
|
+
exports.clearPageContext = clearPageContext;
|
|
20
|
+
/** Current page context - captured per test */
|
|
21
|
+
let currentPage = null;
|
|
22
|
+
/**
|
|
23
|
+
* Capture the current page context for use by standalone functions.
|
|
24
|
+
* Call this in your beforeEach hook alongside captureTestContext.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* import { test } from '@playwright/test'
|
|
29
|
+
* import { captureTestContext, capturePageContext } from '@seontechnologies/playwright-utils'
|
|
30
|
+
*
|
|
31
|
+
* test.beforeEach(async ({ page }, testInfo) => {
|
|
32
|
+
* captureTestContext(testInfo)
|
|
33
|
+
* capturePageContext(page)
|
|
34
|
+
* })
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
function capturePageContext(page) {
|
|
38
|
+
currentPage = page;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Get the currently captured page context.
|
|
42
|
+
* Returns null if no page has been captured or if the page has been closed.
|
|
43
|
+
*/
|
|
44
|
+
function getPageContext() {
|
|
45
|
+
// Defensive check: clear stale reference if page was closed
|
|
46
|
+
if (currentPage && currentPage.isClosed()) {
|
|
47
|
+
currentPage = null;
|
|
48
|
+
}
|
|
49
|
+
return currentPage;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Clear the page context. Called automatically between tests
|
|
53
|
+
* but can be called manually if needed.
|
|
54
|
+
*/
|
|
55
|
+
function clearPageContext() {
|
|
56
|
+
currentPage = null;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=page-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-context.js","sourceRoot":"","sources":["../../../src/internal/page-context.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;AAsBH,gDAEC;AAMD,wCAMC;AAMD,4CAEC;AAxCD,+CAA+C;AAC/C,IAAI,WAAW,GAAgB,IAAI,CAAA;AAEnC;;;;;;;;;;;;;;GAcG;AACH,SAAgB,kBAAkB,CAAC,IAAU;IAC3C,WAAW,GAAG,IAAI,CAAA;AACpB,CAAC;AAED;;;GAGG;AACH,SAAgB,cAAc;IAC5B,4DAA4D;IAC5D,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC1C,WAAW,GAAG,IAAI,CAAA;IACpB,CAAC;IACD,OAAO,WAAW,CAAA;AACpB,CAAC;AAED;;;GAGG;AACH,SAAgB,gBAAgB;IAC9B,WAAW,GAAG,IAAI,CAAA;AACpB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-request-fixture.d.ts","sourceRoot":"","sources":["../../../src/api-request/api-request-fixture.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAA;
|
|
1
|
+
{"version":3,"file":"api-request-fixture.d.ts","sourceRoot":"","sources":["../../../src/api-request/api-request-fixture.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAA;AAGxF;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAA;AAEvE,eAAO,MAAM,IAAI;IACf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;gBACS,CAAC,CAAC,GAAG,OAAO,EACtB,MAAM,EAAE,uBAAuB,KAC5B,kBAAkB,CAAC,CAAC,CAAC;wGAqC1B,CAAA"}
|
|
@@ -9,5 +9,14 @@ export declare function validateSchema(data: unknown, schema: SupportedSchema, o
|
|
|
9
9
|
endpoint?: string;
|
|
10
10
|
method?: string;
|
|
11
11
|
status?: number;
|
|
12
|
+
/** Enable UI display for this validation (or set API_E2E_UI_MODE=true) */
|
|
13
|
+
uiMode?: boolean;
|
|
14
|
+
/** Validation mode - 'throw' (default) or 'return' */
|
|
15
|
+
mode?: 'throw' | 'return';
|
|
16
|
+
/**
|
|
17
|
+
* Internal flag to skip UI display (used by chained API to avoid duplicates).
|
|
18
|
+
* @internal Do not use directly; automatically set by response-extension.ts
|
|
19
|
+
*/
|
|
20
|
+
_skipUI?: boolean;
|
|
12
21
|
}): Promise<ValidationResult>;
|
|
13
22
|
//# sourceMappingURL=core.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../src/api-request/schema-validation/core.ts"],"names":[],"mappings":"AAAA,oCAAoC;AAGpC,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../src/api-request/schema-validation/core.ts"],"names":[],"mappings":"AAAA,oCAAoC;AAGpC,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AA2DhF,0CAA0C;AAC1C,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,eAAe,GACtB,gBAAgB,CAAC,cAAc,CAAC,CA8BlC;AAED,sDAAsD;AACtD,wBAAsB,cAAc,CAClC,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,eAAe,EACvB,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,cAAc,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,0EAA0E;IAC1E,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,sDAAsD;IACtD,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;IACzB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CACb,GACL,OAAO,CAAC,gBAAgB,CAAC,CAsD3B"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type { SupportedSchema, ValidateSchemaOptions, ValidationResult } from './types';
|
|
2
2
|
/**
|
|
3
|
-
* Fixture that provides the validateSchema function for schema validation
|
|
3
|
+
* Fixture that provides the validateSchema function for schema validation.
|
|
4
|
+
* Displays validation results in Playwright UI when API_E2E_UI_MODE=true.
|
|
4
5
|
*/
|
|
5
6
|
export declare const test: import("@playwright/test").TestType<import("@playwright/test").PlaywrightTestArgs & import("@playwright/test").PlaywrightTestOptions & {
|
|
6
7
|
/**
|
|
7
|
-
* Validates data against a schema with optional shape assertions
|
|
8
|
+
* Validates data against a schema with optional shape assertions.
|
|
9
|
+
* Displays validation results in Playwright UI when API_E2E_UI_MODE=true.
|
|
8
10
|
*
|
|
9
11
|
* @example
|
|
10
12
|
* test('validate response schema', async ({ validateSchema }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixture.d.ts","sourceRoot":"","sources":["../../../../src/api-request/schema-validation/fixture.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fixture.d.ts","sourceRoot":"","sources":["../../../../src/api-request/schema-validation/fixture.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,SAAS,CAAA;AAEhB;;;GAGG;AACH,eAAO,MAAM,IAAI;IACf;;;;;;;;;;;;OAYG;oBACa,CACd,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,OAAO,EACb,OAAO,CAAC,EAAE,qBAAqB,KAC5B,OAAO,CAAC,gBAAgB,CAAC;wGAoB9B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-extension.d.ts","sourceRoot":"","sources":["../../../../../src/api-request/schema-validation/internal/response-extension.ts"],"names":[],"mappings":"AAAA,oDAAoD;AAWpD,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EAErB,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAM3D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAqB5C,uDAAuD;AACvD,MAAM,WAAW,mBAAmB,CAAC,CAAC,GAAG,OAAO,CAC9C,SAAQ,kBAAkB,CAAC,CAAC,CAAC;IAC7B,cAAc,CAAC,UAAU,GAAG,CAAC,EAC3B,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAA;CAC7C;AAmID,0DAA0D;AAC1D,wBAAgB,sBAAsB,CAAC,CAAC,EACtC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC,CAAC,EACvC,cAAc,CAAC,EAAE;IACf,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,GACA,mBAAmB,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"response-extension.d.ts","sourceRoot":"","sources":["../../../../../src/api-request/schema-validation/internal/response-extension.ts"],"names":[],"mappings":"AAAA,oDAAoD;AAWpD,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EAErB,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAM3D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAqB5C,uDAAuD;AACvD,MAAM,WAAW,mBAAmB,CAAC,CAAC,GAAG,OAAO,CAC9C,SAAQ,kBAAkB,CAAC,CAAC,CAAC;IAC7B,cAAc,CAAC,UAAU,GAAG,CAAC,EAC3B,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAA;CAC7C;AAmID,0DAA0D;AAC1D,wBAAgB,sBAAsB,CAAC,CAAC,EACtC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC,CAAC,EACvC,cAAc,CAAC,EAAE;IACf,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,GACA,mBAAmB,CAAC,CAAC,CAAC,CAsFxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-display.d.ts","sourceRoot":"","sources":["../../../src/api-request/ui-display.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAQ,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAGlD,4CAA4C;AAC5C,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE;QACf,YAAY,EAAE,MAAM,CAAA;QACpB,cAAc,EAAE,MAAM,CAAA;QACtB,OAAO,EAAE,OAAO,CAAA;QAChB,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;CACF;AAED,6CAA6C;AAC7C,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE;QACjB,IAAI,EAAE,GAAG,GAAG,GAAG,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;QACf,UAAU,EAAE,MAAM,CAAA;QAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;QACjB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,GACzB,aAAa,oBAAoB,EACjC,cAAc,qBAAqB,EACnC,OAAO,IAAI,EACX,SAAS,OAAO,KACf,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"ui-display.d.ts","sourceRoot":"","sources":["../../../src/api-request/ui-display.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAQ,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAGlD,4CAA4C;AAC5C,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE;QACf,YAAY,EAAE,MAAM,CAAA;QACpB,cAAc,EAAE,MAAM,CAAA;QACtB,OAAO,EAAE,OAAO,CAAA;QAChB,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;CACF;AAED,6CAA6C;AAC7C,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE;QACjB,IAAI,EAAE,GAAG,GAAG,GAAG,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;QACf,UAAU,EAAE,MAAM,CAAA;QAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;QACjB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,GACzB,aAAa,oBAAoB,EACjC,cAAc,qBAAqB,EACnC,OAAO,IAAI,EACX,SAAS,OAAO,KACf,OAAO,CAAC,IAAI,CAmCd,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internal/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internal/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Page Context Management for Schema Validation UI
|
|
3
|
+
*
|
|
4
|
+
* This module provides a way to capture and retrieve the Playwright page context
|
|
5
|
+
* for use in standalone functions that need UI display capabilities.
|
|
6
|
+
*
|
|
7
|
+
* Similar to captureTestContext, this allows the plain validateSchema function
|
|
8
|
+
* to display validation results in the Playwright UI.
|
|
9
|
+
*
|
|
10
|
+
* @note Test Isolation: Playwright runs parallel tests in separate worker processes,
|
|
11
|
+
* so global state is isolated per-worker. Serial tests in the same worker are handled
|
|
12
|
+
* by the fixtures which call clearPageContext() after each test. For manual usage
|
|
13
|
+
* outside of fixtures, ensure you're in an isolated test context.
|
|
14
|
+
*/
|
|
15
|
+
import type { Page } from '@playwright/test';
|
|
16
|
+
/**
|
|
17
|
+
* Capture the current page context for use by standalone functions.
|
|
18
|
+
* Call this in your beforeEach hook alongside captureTestContext.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* import { test } from '@playwright/test'
|
|
23
|
+
* import { captureTestContext, capturePageContext } from '@seontechnologies/playwright-utils'
|
|
24
|
+
*
|
|
25
|
+
* test.beforeEach(async ({ page }, testInfo) => {
|
|
26
|
+
* captureTestContext(testInfo)
|
|
27
|
+
* capturePageContext(page)
|
|
28
|
+
* })
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare function capturePageContext(page: Page): void;
|
|
32
|
+
/**
|
|
33
|
+
* Get the currently captured page context.
|
|
34
|
+
* Returns null if no page has been captured or if the page has been closed.
|
|
35
|
+
*/
|
|
36
|
+
export declare function getPageContext(): Page | null;
|
|
37
|
+
/**
|
|
38
|
+
* Clear the page context. Called automatically between tests
|
|
39
|
+
* but can be called manually if needed.
|
|
40
|
+
*/
|
|
41
|
+
export declare function clearPageContext(): void;
|
|
42
|
+
//# sourceMappingURL=page-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-context.d.ts","sourceRoot":"","sources":["../../../src/internal/page-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAK5C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAEnD;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,IAAI,GAAG,IAAI,CAM5C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seontechnologies/playwright-utils",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.11.0",
|
|
4
4
|
"description": "A collection of utilities for Playwright.",
|
|
5
5
|
"workspaces": [
|
|
6
6
|
"sample-app/*"
|
|
@@ -145,7 +145,7 @@
|
|
|
145
145
|
"start:frontend": "cd sample-app/frontend && npm start",
|
|
146
146
|
"start:backend": "cd sample-app/backend && npm start",
|
|
147
147
|
"prepare": "npm run build",
|
|
148
|
-
"postinstall": "git submodule update --init --recursive --force",
|
|
148
|
+
"postinstall": "[ -z \"$CI\" ] && git submodule update --init --recursive --force || true",
|
|
149
149
|
"publish:local": "./scripts/publish.sh",
|
|
150
150
|
"build": "npm run clean && npm run build:types && npm run build:cjs && npm run build:esm",
|
|
151
151
|
"clean": "rm -rf dist",
|
|
@@ -165,7 +165,8 @@
|
|
|
165
165
|
"test:pw-ui": "TEST_ENV=local npx playwright test --ui",
|
|
166
166
|
"test:pw:burn-in": "PW_BURN_IN=true npx playwright test --repeat-each=3 --retries=0",
|
|
167
167
|
"test:pw:burn-in-changed-classic": "PW_BURN_IN=true npx playwright test --only-changed=main --repeat-each=3 --retries=0",
|
|
168
|
-
"test:pw:burn-in-changed": "tsx playwright/scripts/burn-in-changed.ts"
|
|
168
|
+
"test:pw:burn-in-changed": "tsx playwright/scripts/burn-in-changed.ts",
|
|
169
|
+
"show:report": "npx playwright show-report --port 9324"
|
|
169
170
|
},
|
|
170
171
|
"peerDependencies": {
|
|
171
172
|
"@playwright/test": ">=1.54.1",
|