@gooddata/sdk-e2e-utils 11.60.0-alpha.3 → 11.60.0-alpha.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.
Files changed (89) hide show
  1. package/esm/create-test/feature-hub/mock.d.ts +5 -0
  2. package/esm/create-test/feature-hub/mock.d.ts.map +1 -0
  3. package/esm/create-test/feature-hub/mock.js +15 -0
  4. package/esm/create-test/feature-hub/types.d.ts +21 -0
  5. package/esm/create-test/feature-hub/types.d.ts.map +1 -0
  6. package/esm/create-test/feature-hub/types.js +2 -0
  7. package/esm/create-test/goodmock/admin.d.ts +34 -0
  8. package/esm/create-test/goodmock/admin.d.ts.map +1 -0
  9. package/esm/create-test/goodmock/admin.js +99 -0
  10. package/esm/create-test/goodmock/mode.d.ts +14 -0
  11. package/esm/create-test/goodmock/mode.d.ts.map +1 -0
  12. package/esm/create-test/goodmock/mode.js +17 -0
  13. package/esm/create-test/goodmock/playwright.d.ts +5 -0
  14. package/esm/create-test/goodmock/playwright.d.ts.map +1 -0
  15. package/esm/create-test/goodmock/playwright.js +37 -0
  16. package/esm/create-test/goodmock/snapshot/assert-no-leak-patterns.d.ts +9 -0
  17. package/esm/create-test/goodmock/snapshot/assert-no-leak-patterns.d.ts.map +1 -0
  18. package/esm/create-test/goodmock/snapshot/assert-no-leak-patterns.js +20 -0
  19. package/esm/create-test/goodmock/snapshot/assert-no-secret-leaks.d.ts +4 -0
  20. package/esm/create-test/goodmock/snapshot/assert-no-secret-leaks.d.ts.map +1 -0
  21. package/esm/create-test/goodmock/snapshot/assert-no-secret-leaks.js +14 -0
  22. package/esm/create-test/goodmock/snapshot/build-masked-form-pattern.d.ts +2 -0
  23. package/esm/create-test/goodmock/snapshot/build-masked-form-pattern.d.ts.map +1 -0
  24. package/esm/create-test/goodmock/snapshot/build-masked-form-pattern.js +17 -0
  25. package/esm/create-test/goodmock/snapshot/get-effective-secret-mappings.d.ts +3 -0
  26. package/esm/create-test/goodmock/snapshot/get-effective-secret-mappings.d.ts.map +1 -0
  27. package/esm/create-test/goodmock/snapshot/get-effective-secret-mappings.js +2 -0
  28. package/esm/create-test/goodmock/snapshot/replace-secrets.d.ts +10 -0
  29. package/esm/create-test/goodmock/snapshot/replace-secrets.d.ts.map +1 -0
  30. package/esm/create-test/goodmock/snapshot/replace-secrets.js +23 -0
  31. package/esm/create-test/goodmock/snapshot/sanitize-credentials.d.ts +4 -0
  32. package/esm/create-test/goodmock/snapshot/sanitize-credentials.d.ts.map +1 -0
  33. package/esm/create-test/goodmock/snapshot/sanitize-credentials.js +41 -0
  34. package/esm/create-test/goodmock/snapshot/sanitize-workspace-ids.d.ts +4 -0
  35. package/esm/create-test/goodmock/snapshot/sanitize-workspace-ids.d.ts.map +1 -0
  36. package/esm/create-test/goodmock/snapshot/sanitize-workspace-ids.js +21 -0
  37. package/esm/create-test/goodmock/snapshot/snapshot-and-save-recording.d.ts +50 -0
  38. package/esm/create-test/goodmock/snapshot/snapshot-and-save-recording.d.ts.map +1 -0
  39. package/esm/create-test/goodmock/snapshot/snapshot-and-save-recording.js +64 -0
  40. package/esm/create-test/goodmock/snapshot/snapshot-param.d.ts +11 -0
  41. package/esm/create-test/goodmock/snapshot/snapshot-param.d.ts.map +1 -0
  42. package/esm/create-test/goodmock/snapshot/snapshot-param.js +9 -0
  43. package/esm/create-test/goodmock/types.d.ts +60 -0
  44. package/esm/create-test/goodmock/types.d.ts.map +1 -0
  45. package/esm/create-test/goodmock/types.js +2 -0
  46. package/esm/create-test/playwright/call-original-fn.d.ts +17 -0
  47. package/esm/create-test/playwright/call-original-fn.d.ts.map +1 -0
  48. package/esm/create-test/playwright/call-original-fn.js +25 -0
  49. package/esm/create-test/playwright/describe/factory.d.ts +27 -0
  50. package/esm/create-test/playwright/describe/factory.d.ts.map +1 -0
  51. package/esm/create-test/playwright/describe/factory.js +18 -0
  52. package/esm/create-test/playwright/fixtures.d.ts +7 -0
  53. package/esm/create-test/playwright/fixtures.d.ts.map +1 -0
  54. package/esm/create-test/playwright/fixtures.js +2 -0
  55. package/esm/create-test/playwright/playwright-types.d.ts +42 -0
  56. package/esm/create-test/playwright/playwright-types.d.ts.map +1 -0
  57. package/esm/create-test/playwright/playwright-types.js +2 -0
  58. package/esm/create-test/playwright/test/factory.d.ts +7 -0
  59. package/esm/create-test/playwright/test/factory.d.ts.map +1 -0
  60. package/esm/create-test/playwright/test/factory.js +42 -0
  61. package/esm/create-test/playwright/test/types.d.ts +27 -0
  62. package/esm/create-test/playwright/test/types.d.ts.map +1 -0
  63. package/esm/create-test/playwright/test/types.js +2 -0
  64. package/esm/create-test/playwright/top-level-describe/build-suite-callback.d.ts +9 -0
  65. package/esm/create-test/playwright/top-level-describe/build-suite-callback.d.ts.map +1 -0
  66. package/esm/create-test/playwright/top-level-describe/build-suite-callback.js +17 -0
  67. package/esm/create-test/playwright/top-level-describe/factory.d.ts +8 -0
  68. package/esm/create-test/playwright/top-level-describe/factory.d.ts.map +1 -0
  69. package/esm/create-test/playwright/top-level-describe/factory.js +12 -0
  70. package/esm/create-test/playwright/top-level-describe/types.d.ts +17 -0
  71. package/esm/create-test/playwright/top-level-describe/types.d.ts.map +1 -0
  72. package/esm/create-test/playwright/top-level-describe/types.js +2 -0
  73. package/esm/create-test/playwright/types.d.ts +17 -0
  74. package/esm/create-test/playwright/types.d.ts.map +1 -0
  75. package/esm/create-test/playwright/types.js +2 -0
  76. package/esm/create-test/playwright/with-describe-details.d.ts +6 -0
  77. package/esm/create-test/playwright/with-describe-details.d.ts.map +1 -0
  78. package/esm/create-test/playwright/with-describe-details.js +39 -0
  79. package/esm/index.d.ts +14 -3
  80. package/esm/index.d.ts.map +1 -1
  81. package/esm/index.js +8 -3
  82. package/esm/sdk-e2e-utils.d.ts +112 -38
  83. package/package.json +3 -3
  84. package/esm/goodmock.d.ts +0 -138
  85. package/esm/goodmock.d.ts.map +0 -1
  86. package/esm/goodmock.js +0 -284
  87. package/esm/playwright.d.ts +0 -97
  88. package/esm/playwright.d.ts.map +0 -1
  89. package/esm/playwright.js +0 -189
@@ -0,0 +1,11 @@
1
+ export declare const snapshotParams: {
2
+ captureHeaders: {
3
+ "X-GDC-TEST-NAME": {};
4
+ };
5
+ requestBodyPattern: {
6
+ matcher: string;
7
+ ignoreArrayOrder: boolean;
8
+ ignoreExtraElements: boolean;
9
+ };
10
+ };
11
+ //# sourceMappingURL=snapshot-param.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot-param.d.ts","sourceRoot":"","sources":["../../../../src/create-test/goodmock/snapshot/snapshot-param.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc;IACvB,cAAc;QAAI,iBAAiB;;IACnC,kBAAkB;QACd,OAAO;QACP,gBAAgB;QAChB,mBAAmB;;CAE1B,CAAC"}
@@ -0,0 +1,9 @@
1
+ // (C) 2026 GoodData Corporation
2
+ export const snapshotParams = {
3
+ captureHeaders: { "X-GDC-TEST-NAME": {} },
4
+ requestBodyPattern: {
5
+ matcher: "equalToJson",
6
+ ignoreArrayOrder: false,
7
+ ignoreExtraElements: false,
8
+ },
9
+ };
@@ -0,0 +1,60 @@
1
+ /**
2
+ * @internal
3
+ */
4
+ export interface IGoodmockMapping {
5
+ request: {
6
+ url?: string;
7
+ urlPath?: string;
8
+ bodyPatterns?: unknown;
9
+ };
10
+ response: {
11
+ headers?: Record<string, string>;
12
+ jsonBody?: unknown;
13
+ body?: string;
14
+ };
15
+ }
16
+ /**
17
+ * @internal
18
+ */
19
+ export interface IWorkspaceIdMapping {
20
+ sourceWorkspaceId: string;
21
+ targetWorkspaceId: string;
22
+ }
23
+ /**
24
+ * @internal
25
+ * Rewrite of a secret value in saved recordings. Every occurrence of `secret` (request bodies,
26
+ * response bodies, URLs) is replaced with `placeholder`, so tests can type the placeholder at
27
+ * replay time and still match the recorded request exactly.
28
+ */
29
+ export interface ISecretMapping {
30
+ secret: string;
31
+ placeholder: string;
32
+ }
33
+ /**
34
+ * @internal
35
+ * A credential shape that must never appear in a saved recording (checked against the fully
36
+ * serialized output). Provide domain-specific shapes (e.g. a provider's API key format) via
37
+ * {@link ISnapshotAndSaveRecordingOptions.leakPatterns} — this module has no built-in patterns of
38
+ * its own, since it has no knowledge of what a given consumer's traffic considers a secret.
39
+ */
40
+ export interface ILeakPattern {
41
+ label: string;
42
+ pattern: RegExp;
43
+ }
44
+ /**
45
+ * @internal
46
+ */
47
+ export interface IGoodmockOptions {
48
+ host: string;
49
+ backendHost: string;
50
+ getMappingPath: (specFile: string) => string;
51
+ workspaceIdMappings?: IWorkspaceIdMapping | IWorkspaceIdMapping[];
52
+ baseUrl?: string;
53
+ /** Secret values replaced by placeholders in saved recordings (see {@link ISecretMapping}). */
54
+ secretMappings?: ISecretMapping[];
55
+ /** Credential-shaped patterns that must never appear in saved recordings (see {@link ILeakPattern}). */
56
+ leakPatterns?: ILeakPattern[];
57
+ /** Consumer-supplied redaction hook for domain-specific secrets (see snapshotAndSaveRecording). */
58
+ sanitizeMappings?: (mappings: IGoodmockMapping[]) => IGoodmockMapping[];
59
+ }
60
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/create-test/goodmock/types.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACpE,QAAQ,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACrF;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7C,mBAAmB,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,EAAE,CAAC;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+FAA+F;IAC/F,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;IAClC,wGAAwG;IACxG,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;IAC9B,mGAAmG;IACnG,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,CAAC;CAC3E"}
@@ -0,0 +1,2 @@
1
+ // (C) 2026 GoodData Corporation
2
+ export {};
@@ -0,0 +1,17 @@
1
+ import type { TestDetails } from "@playwright/test";
2
+ import type { Describe, DescribeFixme, DescribeOnly, DescribeSkip } from "./playwright-types.js";
3
+ import type { ITestDetails } from "./types.js";
4
+ /**
5
+ * @internal
6
+ */
7
+ export type Callback = () => void;
8
+ export type OriginalFn = Describe | DescribeFixme | DescribeOnly | DescribeSkip;
9
+ /** Call a Playwright describe function, passing details only when there are any. */
10
+ export declare function callOriginalFn(originalFn: OriginalFn, title: string, pwDetails: TestDetails | undefined, callback: Callback): void;
11
+ /** Strip custom fields before passing details to Playwright. */
12
+ export declare function toPlaywrightDetails(details: ITestDetails | undefined): TestDetails | undefined;
13
+ export declare function parseArgs(detailsOrFn: ITestDetails | Callback, func?: Callback): {
14
+ details: ITestDetails | undefined;
15
+ fn: Callback;
16
+ };
17
+ //# sourceMappingURL=call-original-fn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call-original-fn.d.ts","sourceRoot":"","sources":["../../../src/create-test/playwright/call-original-fn.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACjG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC;AAElC,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,aAAa,GAAG,YAAY,GAAG,YAAY,CAAC;AAEhF,oFAAoF;AACpF,wBAAgB,cAAc,CAC1B,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,WAAW,GAAG,SAAS,EAClC,QAAQ,EAAE,QAAQ,GACnB,IAAI,CAMN;AAED,gEAAgE;AAChE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAK9F;AAED,wBAAgB,SAAS,CACrB,WAAW,EAAE,YAAY,GAAG,QAAQ,EACpC,IAAI,CAAC,EAAE,QAAQ,GAChB;IAAE,OAAO,EAAE,YAAY,GAAG,SAAS,CAAC;IAAC,EAAE,EAAE,QAAQ,CAAA;CAAE,CAMrD"}
@@ -0,0 +1,25 @@
1
+ // (C) 2026 GoodData Corporation
2
+ /** Call a Playwright describe function, passing details only when there are any. */
3
+ export function callOriginalFn(originalFn, title, pwDetails, callback) {
4
+ if (pwDetails) {
5
+ originalFn(title, pwDetails, callback);
6
+ }
7
+ else {
8
+ originalFn(title, callback);
9
+ }
10
+ }
11
+ /** Strip custom fields before passing details to Playwright. */
12
+ export function toPlaywrightDetails(details) {
13
+ if (!details)
14
+ return undefined;
15
+ // oxlint-disable-next-line @typescript-eslint/no-unused-vars
16
+ const { workspaceSettings: _ws, additionalWindowProperties: _awp, ...rest } = details;
17
+ return Object.keys(rest).length > 0 ? rest : undefined;
18
+ }
19
+ export function parseArgs(detailsOrFn, func) {
20
+ const hasDetails = typeof detailsOrFn !== "function";
21
+ return {
22
+ details: hasDetails ? detailsOrFn : undefined,
23
+ fn: hasDetails ? func : detailsOrFn,
24
+ };
25
+ }
@@ -0,0 +1,27 @@
1
+ import { type Callback, type OriginalFn } from "../call-original-fn.js";
2
+ import type { DescribeConfigure, DescribeFixme, DescribeOnly, DescribeParallel, DescribeSerial, Test } from "../playwright-types.js";
3
+ import type { ITestDetails, WindowProperties, WorkspaceSettings } from "../types.js";
4
+ export interface IGetInsideTopLevelDescribe {
5
+ (): boolean;
6
+ }
7
+ /**
8
+ * @internal
9
+ * Call signatures of the overridden `test.describe` and `test.describe.skip`.
10
+ */
11
+ export interface IDescribeFunction {
12
+ (title: string, callback: Callback): void;
13
+ (title: string, details: ITestDetails, callback: Callback): void;
14
+ }
15
+ /**
16
+ * @internal
17
+ */
18
+ export interface IDescribe extends IDescribeFunction {
19
+ skip: IDescribeFunction;
20
+ only: DescribeOnly;
21
+ configure: DescribeConfigure;
22
+ fixme: DescribeFixme;
23
+ serial: DescribeSerial;
24
+ parallel: DescribeParallel;
25
+ }
26
+ export declare function makeDescribeFunction(originalFn: OriginalFn, testInstance: Test, settingsStack: WorkspaceSettings[], awpStack: WindowProperties[], getInsideTopLevelDescribe: IGetInsideTopLevelDescribe): IDescribeFunction;
27
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/create-test/playwright/describe/factory.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,QAAQ,EACb,KAAK,UAAU,EAIlB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EACR,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,IAAI,EACP,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrF,MAAM,WAAW,0BAA0B;IACvC,IAAI,OAAO,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAC9B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1C,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;CACpE;AAED;;GAEG;AACH,MAAM,WAAW,SAAU,SAAQ,iBAAiB;IAChD,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE,gBAAgB,CAAC;CAC9B;AAaD,wBAAgB,oBAAoB,CAChC,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,IAAI,EAClB,aAAa,EAAE,iBAAiB,EAAE,EAClC,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,yBAAyB,EAAE,0BAA0B,GACtD,iBAAiB,CAanB"}
@@ -0,0 +1,18 @@
1
+ // (C) 2026 GoodData Corporation
2
+ import { callOriginalFn, parseArgs, toPlaywrightDetails, } from "../call-original-fn.js";
3
+ import { withDescribeDetails } from "../with-describe-details.js";
4
+ /** Normalize the three describe overloads: `(title, cb)` and `(title, details, cb)`. */
5
+ function parseDescribeArgs(detailsOrCb, cb) {
6
+ const { details, fn } = parseArgs(detailsOrCb, cb);
7
+ return { details, callback: fn };
8
+ }
9
+ export function makeDescribeFunction(originalFn, testInstance, settingsStack, awpStack, getInsideTopLevelDescribe) {
10
+ return (title, detailsOrCb, cb) => {
11
+ const { details, callback } = parseDescribeArgs(detailsOrCb, cb);
12
+ if (!getInsideTopLevelDescribe()) {
13
+ const call = title === undefined ? "test.describe()" : `test.describe("${title}")`;
14
+ throw new Error(`${call} must be nested inside a test.topLevelDescribe() block.`);
15
+ }
16
+ callOriginalFn(originalFn, title, toPlaywrightDetails(details), () => withDescribeDetails(testInstance, settingsStack, awpStack, details, callback));
17
+ };
18
+ }
@@ -0,0 +1,7 @@
1
+ import type { Fixtures as PlaywrightFixtures } from "@playwright/test";
2
+ import { type BaseTestArgs, type BaseWorkerArgs } from "./playwright-types.js";
3
+ /**
4
+ * @internal
5
+ */
6
+ export type Fixtures<T extends {} = {}, W extends {} = {}> = PlaywrightFixtures<T, W, BaseTestArgs, BaseWorkerArgs>;
7
+ //# sourceMappingURL=fixtures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../../src/create-test/playwright/fixtures.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEvE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE/E;;GAEG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,kBAAkB,CAC3E,CAAC,EACD,CAAC,EACD,YAAY,EACZ,cAAc,CACjB,CAAC"}
@@ -0,0 +1,2 @@
1
+ // (C) 2026 GoodData Corporation
2
+ export {};
@@ -0,0 +1,42 @@
1
+ import type { PlaywrightTestArgs, PlaywrightTestOptions, PlaywrightWorkerArgs, PlaywrightWorkerOptions, test } from "@playwright/test";
2
+ /**
3
+ * @internal
4
+ */
5
+ export type BaseTestArgs = PlaywrightTestArgs & PlaywrightTestOptions;
6
+ /**
7
+ * @internal
8
+ */
9
+ export type BaseWorkerArgs = PlaywrightWorkerArgs & PlaywrightWorkerOptions;
10
+ /**
11
+ * @internal
12
+ */
13
+ export type Test = typeof test;
14
+ /**
15
+ * @internal
16
+ */
17
+ export type Describe = typeof test.describe;
18
+ /**
19
+ * @internal
20
+ */
21
+ export type DescribeOnly = typeof test.describe.only;
22
+ /**
23
+ * @internal
24
+ */
25
+ export type DescribeConfigure = typeof test.describe.configure;
26
+ /**
27
+ * @internal
28
+ */
29
+ export type DescribeFixme = typeof test.describe.fixme;
30
+ /**
31
+ * @internal
32
+ */
33
+ export type DescribeSerial = typeof test.describe.serial;
34
+ /**
35
+ * @internal
36
+ */
37
+ export type DescribeParallel = typeof test.describe.parallel;
38
+ /**
39
+ * @internal
40
+ */
41
+ export type DescribeSkip = typeof test.describe.skip;
42
+ //# sourceMappingURL=playwright-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playwright-types.d.ts","sourceRoot":"","sources":["../../../src/create-test/playwright/playwright-types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,IAAI,EACP,MAAM,kBAAkB,CAAC;AAE1B;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG,qBAAqB,CAAC;AAEtE;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,uBAAuB,CAAC;AAE5E;;GAEG;AACH,MAAM,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC;AAE/B;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,QAAQ,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAEvD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAE7D;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC"}
@@ -0,0 +1,2 @@
1
+ // (C) 2026 GoodData Corporation
2
+ export {};
@@ -0,0 +1,7 @@
1
+ import type { ICreateTestOptions, ITest } from "./types.js";
2
+ /**
3
+ * @internal
4
+ * @param options -
5
+ */
6
+ export declare function createTest<T extends {} = {}, W extends {} = {}>(options: ICreateTestOptions<T, W>): ITest;
7
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/create-test/playwright/test/factory.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAE5D;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAyDzG"}
@@ -0,0 +1,42 @@
1
+ // (C) 2026 GoodData Corporation
2
+ // oxlint-disable typescript-eslint/no-empty-object-type
3
+ import { test } from "@playwright/test";
4
+ import { makeDescribeFunction } from "../describe/factory.js";
5
+ import { makeTopLevelDescribeFunction } from "../top-level-describe/factory.js";
6
+ /**
7
+ * @internal
8
+ * @param options -
9
+ */
10
+ export function createTest(options) {
11
+ // Tracks whether we're inside a topLevelDescribe during synchronous registration.
12
+ let insideTopLevelDescribe = false;
13
+ function getInsideTopLevelDescribe() {
14
+ return insideTopLevelDescribe;
15
+ }
16
+ function setInsideTopLevelDescribe(value) {
17
+ insideTopLevelDescribe = value;
18
+ }
19
+ // Stacks track workspace settings / additionalWindowProperties hierarchy during
20
+ // synchronous describe registration. Each level merges on top of the parent's.
21
+ // The beforeEach at each level captures the fully-merged snapshot, so the
22
+ // innermost beforeEach (which runs last) wins.
23
+ const settingsStack = [];
24
+ const awpStack = [];
25
+ const testInstance = options.fixtures ? test.extend(options.fixtures) : test;
26
+ const makeDescribeWrapper = (originalFn) => makeDescribeFunction(originalFn, testInstance, settingsStack, awpStack, getInsideTopLevelDescribe);
27
+ const makeTopLevelDescribeWrapper = (originalFn) => makeTopLevelDescribeFunction(originalFn, testInstance, options, settingsStack, awpStack, setInsideTopLevelDescribe);
28
+ const describe = Object.assign(makeDescribeWrapper(testInstance.describe), testInstance.describe, {
29
+ only: makeDescribeWrapper(testInstance.describe.only),
30
+ fixme: makeDescribeWrapper(testInstance.describe.fixme),
31
+ skip: makeDescribeWrapper(testInstance.describe.skip),
32
+ });
33
+ const topLevelDescribe = Object.assign(makeTopLevelDescribeWrapper(testInstance.describe), {
34
+ skip: makeTopLevelDescribeWrapper(testInstance.describe.skip),
35
+ });
36
+ return Object.assign(testInstance.bind(undefined), testInstance, {
37
+ /** Build the overridden `test.describe` (with its `.skip`, `.only`, `.fixme`) for a single `createTest` instance. */
38
+ describe,
39
+ /** Build `test.topLevelDescribe` (with its `.skip`) for a single `createTest` instance. */
40
+ topLevelDescribe,
41
+ });
42
+ }
@@ -0,0 +1,27 @@
1
+ import type { IFeatureHubEnvironment } from "../../feature-hub/types.js";
2
+ import type { IGoodmockOptions } from "../../goodmock/types.js";
3
+ import type { IDescribe } from "../describe/factory.js";
4
+ import type { Fixtures } from "../fixtures.js";
5
+ import type { Test } from "../playwright-types.js";
6
+ import type { ITopLevelDescribe } from "../top-level-describe/types.js";
7
+ /**
8
+ * @internal
9
+ */
10
+ export interface ICustomCreateTestOptions {
11
+ featureHubResponse: IFeatureHubEnvironment[];
12
+ goodmock?: IGoodmockOptions;
13
+ }
14
+ /**
15
+ * @internal
16
+ */
17
+ export interface ICreateTestOptions<T extends {} = {}, W extends {} = {}> extends ICustomCreateTestOptions {
18
+ fixtures?: Fixtures<T, W>;
19
+ }
20
+ /**
21
+ * @internal
22
+ */
23
+ export type ITest = Test & {
24
+ topLevelDescribe: ITopLevelDescribe;
25
+ describe: IDescribe;
26
+ };
27
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/create-test/playwright/test/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACrC,kBAAkB,EAAE,sBAAsB,EAAE,CAAC;IAC7C,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAE,SAAQ,wBAAwB;IACtG,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG,IAAI,GAAG;IACvB,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,QAAQ,EAAE,SAAS,CAAC;CACvB,CAAC"}
@@ -0,0 +1,2 @@
1
+ // (C) 2026 GoodData Corporation
2
+ export {};
@@ -0,0 +1,9 @@
1
+ import type { Callback } from "../call-original-fn.js";
2
+ import type { Test } from "../playwright-types.js";
3
+ import type { ICustomCreateTestOptions } from "../test/types.js";
4
+ import type { ITestDetails, WindowProperties, WorkspaceSettings } from "../types.js";
5
+ export interface ISetInsideTopLevelDescribe {
6
+ (value: boolean): void;
7
+ }
8
+ export declare function buildSuiteCallback(testInstance: Test, options: ICustomCreateTestOptions, settingsStack: WorkspaceSettings[], awpStack: WindowProperties[], setInsideTopLevelDescribe: ISetInsideTopLevelDescribe, specName: string, details: ITestDetails | undefined, fn: Callback): Callback;
9
+ //# sourceMappingURL=build-suite-callback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-suite-callback.d.ts","sourceRoot":"","sources":["../../../../src/create-test/playwright/top-level-describe/build-suite-callback.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrF,MAAM,WAAW,0BAA0B;IACvC,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAC9B,YAAY,EAAE,IAAI,EAClB,OAAO,EAAE,wBAAwB,EACjC,aAAa,EAAE,iBAAiB,EAAE,EAClC,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,yBAAyB,EAAE,0BAA0B,EACrD,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,YAAY,GAAG,SAAS,EACjC,EAAE,EAAE,QAAQ,GACb,QAAQ,CAcV"}
@@ -0,0 +1,17 @@
1
+ // (C) 2026 GoodData Corporation
2
+ import { registerFeatureHubMock } from "../../feature-hub/mock.js";
3
+ import { registerGoodmockHooks } from "../../goodmock/playwright.js";
4
+ import { withDescribeDetails } from "../with-describe-details.js";
5
+ export function buildSuiteCallback(testInstance, options, settingsStack, awpStack, setInsideTopLevelDescribe, specName, details, fn) {
6
+ return () => {
7
+ registerFeatureHubMock(testInstance, options.featureHubResponse);
8
+ if (options.goodmock?.host) {
9
+ registerGoodmockHooks(testInstance, options.goodmock, specName);
10
+ }
11
+ // Workspace settings + additional window properties — merge with parent
12
+ // stack and inject beforeEach. Wraps fn() so nested describes inherit.
13
+ setInsideTopLevelDescribe(true);
14
+ withDescribeDetails(testInstance, settingsStack, awpStack, details, fn);
15
+ setInsideTopLevelDescribe(false);
16
+ };
17
+ }
@@ -0,0 +1,8 @@
1
+ import { type OriginalFn } from "../call-original-fn.js";
2
+ import type { Test } from "../playwright-types.js";
3
+ import type { ICreateTestOptions } from "../test/types.js";
4
+ import type { WorkspaceSettings } from "../types.js";
5
+ import { type ISetInsideTopLevelDescribe } from "./build-suite-callback.js";
6
+ import type { ITopLevelDescribeFunction } from "./types.js";
7
+ export declare function makeTopLevelDescribeFunction<T extends {} = {}, W extends {} = {}>(originalFn: OriginalFn, testInstance: Test, options: ICreateTestOptions<T, W>, settingsStack: WorkspaceSettings[], awpStack: WorkspaceSettings[], setInsideTopLevelDescribe: ISetInsideTopLevelDescribe): ITopLevelDescribeFunction;
8
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/create-test/playwright/top-level-describe/factory.ts"],"names":[],"mappings":"AAIA,OAAO,EAEH,KAAK,UAAU,EAIlB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAgB,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEnE,OAAO,EAAE,KAAK,0BAA0B,EAAsB,MAAM,2BAA2B,CAAC;AAChG,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAE5D,wBAAgB,4BAA4B,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,EAC7E,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,IAAI,EAClB,OAAO,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EACjC,aAAa,EAAE,iBAAiB,EAAE,EAClC,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,yBAAyB,EAAE,0BAA0B,GACtD,yBAAyB,CAiB3B"}
@@ -0,0 +1,12 @@
1
+ // (C) 2026 GoodData Corporation
2
+ // oxlint-disable typescript/no-empty-object-type
3
+ import { callOriginalFn, parseArgs, toPlaywrightDetails, } from "../call-original-fn.js";
4
+ import { buildSuiteCallback } from "./build-suite-callback.js";
5
+ export function makeTopLevelDescribeFunction(originalFn, testInstance, options, settingsStack, awpStack, setInsideTopLevelDescribe) {
6
+ return (suiteName, specName, detailsOrFn, func) => {
7
+ const { details, fn } = parseArgs(detailsOrFn, func);
8
+ const suite = buildSuiteCallback(testInstance, options, settingsStack, awpStack, setInsideTopLevelDescribe, specName, details, fn);
9
+ const pwDetails = toPlaywrightDetails(details);
10
+ callOriginalFn(originalFn, suiteName, pwDetails, suite);
11
+ };
12
+ }
@@ -0,0 +1,17 @@
1
+ import type { Callback } from "../call-original-fn.js";
2
+ import type { ITestDetails } from "../types.js";
3
+ /**
4
+ * @internal
5
+ * Call signatures of the overridden `test.describe` and `test.describe.skip`.
6
+ */
7
+ export interface ITopLevelDescribeFunction {
8
+ (suiteName: string, specName: string, fn: Callback): void;
9
+ (suiteName: string, specName: string, details: ITestDetails, fn: Callback): void;
10
+ }
11
+ /**
12
+ * @internal
13
+ */
14
+ export interface ITopLevelDescribe extends ITopLevelDescribeFunction {
15
+ skip: ITopLevelDescribeFunction;
16
+ }
17
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/create-test/playwright/top-level-describe/types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACtC,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1D,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAC;CACpF;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,yBAAyB;IAChE,IAAI,EAAE,yBAAyB,CAAC;CAOnC"}
@@ -0,0 +1,2 @@
1
+ // (C) 2026 GoodData Corporation
2
+ export {};
@@ -0,0 +1,17 @@
1
+ import type { TestDetails } from "@playwright/test";
2
+ /**
3
+ * @internal
4
+ */
5
+ export type WorkspaceSettings = Record<string, unknown>;
6
+ /**
7
+ * @internal
8
+ */
9
+ export type WindowProperties = Record<string, unknown>;
10
+ /**
11
+ * @internal
12
+ */
13
+ export interface ITestDetails extends TestDetails {
14
+ workspaceSettings?: WorkspaceSettings;
15
+ additionalWindowProperties?: WindowProperties;
16
+ }
17
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/create-test/playwright/types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC7C,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,0BAA0B,CAAC,EAAE,gBAAgB,CAAC;CACjD"}
@@ -0,0 +1,2 @@
1
+ // (C) 2026 GoodData Corporation
2
+ export {};
@@ -0,0 +1,6 @@
1
+ import type { Callback } from "./call-original-fn.js";
2
+ import type { Test } from "./playwright-types.js";
3
+ import type { ITestDetails, WindowProperties, WorkspaceSettings } from "./types.js";
4
+ /** Push merged settings/awp onto stacks, register a single beforeEach, call fn, pop. */
5
+ export declare function withDescribeDetails(testInstance: Test, settingsStack: WorkspaceSettings[], awpStack: WindowProperties[], details: ITestDetails | undefined, fn: Callback): void;
6
+ //# sourceMappingURL=with-describe-details.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"with-describe-details.d.ts","sourceRoot":"","sources":["../../../src/create-test/playwright/with-describe-details.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAMpF,wFAAwF;AACxF,wBAAgB,mBAAmB,CAC/B,YAAY,EAAE,IAAI,EAClB,aAAa,EAAE,iBAAiB,EAAE,EAClC,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,OAAO,EAAE,YAAY,GAAG,SAAS,EACjC,EAAE,EAAE,QAAQ,QAmBf"}
@@ -0,0 +1,39 @@
1
+ // (C) 2026 GoodData Corporation
2
+ function peekOrEmpty(stack) {
3
+ return stack.length > 0 ? stack[stack.length - 1] : {};
4
+ }
5
+ /** Push merged settings/awp onto stacks, register a single beforeEach, call fn, pop. */
6
+ export function withDescribeDetails(testInstance, settingsStack, awpStack, details, fn) {
7
+ const ws = details?.workspaceSettings;
8
+ const awp = details?.additionalWindowProperties;
9
+ if (!ws && !awp) {
10
+ fn();
11
+ return;
12
+ }
13
+ const mergedSettings = ws ? { ...peekOrEmpty(settingsStack), ...ws } : peekOrEmpty(settingsStack);
14
+ const mergedAwp = awp ? { ...peekOrEmpty(awpStack), ...awp } : peekOrEmpty(awpStack);
15
+ if (ws)
16
+ settingsStack.push(mergedSettings);
17
+ if (awp)
18
+ awpStack.push(mergedAwp);
19
+ injectWindowProperties(testInstance, mergedSettings, mergedAwp);
20
+ fn();
21
+ if (awp)
22
+ awpStack.pop();
23
+ if (ws)
24
+ settingsStack.pop();
25
+ }
26
+ /** Inject workspace settings and additional window properties via a single addInitScript. */
27
+ function injectWindowProperties(testInst, settings, awp) {
28
+ testInst.beforeEach(async ({ page }) => {
29
+ await page.addInitScript((args) => {
30
+ const w = window;
31
+ if (Object.keys(args.s).length > 0) {
32
+ w["customWorkspaceSettings"] = args.s;
33
+ }
34
+ for (const [key, value] of Object.entries(args.a)) {
35
+ w[key] = value;
36
+ }
37
+ }, { s: settings, a: awp });
38
+ });
39
+ }
package/esm/index.d.ts CHANGED
@@ -1,6 +1,17 @@
1
1
  export { authHeader, authedRouteFetch, injectAuthHeader } from "./auth.js";
2
- export { type IGoodmockMapping, type ILeakPattern, type ISecretMapping, type ISnapshotAndSaveRecordingOptions, type IWorkspaceIdMapping, loadMappings, resetMappings, resetScenarios, mockLogRequests, goodmockMode, GoodmockMode, startRecording, snapshotAndSaveRecording, } from "./goodmock.js";
3
- export { type BaseTestArgs, type BaseWorkerArgs, type ICreateTestOptions, type IDescribeFunction, type IE2eTest, type IE2eTestDetails, type IFeatureHubEnvironment, type IFeatureHubFeature, type IGoodmockOptions, createTest, } from "./playwright.js";
4
- export { clickByBoundingBox, hoverByBoundingBox } from "./helpers/mouse-actions.js";
5
2
  export { GOODMOCK_HOST, API_TOKEN, BACKEND_HOST, getBaseUrl, getEnvWithFallback, getWorkspaceId, getDangerWorkspaceId, } from "./constants.js";
3
+ export type { IFeatureHubEnvironment, IFeatureHubFeature } from "./create-test/feature-hub/types.js";
4
+ export type { IGoodmockMapping, ILeakPattern, ISecretMapping, IWorkspaceIdMapping, IGoodmockOptions, } from "./create-test/goodmock/types.js";
5
+ export { loadMappings, resetMappings, resetScenarios, mockLogRequests, startRecording, } from "./create-test/goodmock/admin.js";
6
+ export { goodmockMode, GoodmockMode } from "./create-test/goodmock/mode.js";
7
+ export { snapshotAndSaveRecording, type ISnapshotAndSaveRecordingOptions, } from "./create-test/goodmock/snapshot/snapshot-and-save-recording.js";
8
+ export type { Callback } from "./create-test/playwright/call-original-fn.js";
9
+ export type { IDescribe, IDescribeFunction } from "./create-test/playwright/describe/factory.js";
10
+ export type { Fixtures } from "./create-test/playwright/fixtures.js";
11
+ export type { BaseTestArgs, BaseWorkerArgs, DescribeConfigure, DescribeFixme, DescribeOnly, DescribeParallel, DescribeSerial, DescribeSkip, Test, } from "./create-test/playwright/playwright-types.js";
12
+ export { createTest } from "./create-test/playwright/test/factory.js";
13
+ export type { ICreateTestOptions, ICustomCreateTestOptions, ITest, } from "./create-test/playwright/test/types.js";
14
+ export type { ITestDetails, WindowProperties, WorkspaceSettings } from "./create-test/playwright/types.js";
15
+ export type { ITopLevelDescribe, ITopLevelDescribeFunction, } from "./create-test/playwright/top-level-describe/types.js";
16
+ export { clickByBoundingBox, hoverByBoundingBox } from "./helpers/mouse-actions.js";
6
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC3E,OAAO,EACH,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,gCAAgC,EACrC,KAAK,mBAAmB,EACxB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,wBAAwB,GAC3B,MAAM,eAAe,CAAC;AACvB,OAAO,EACH,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,UAAU,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EACH,aAAa,EACb,SAAS,EACT,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,oBAAoB,GACvB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAG3E,OAAO,EACH,aAAa,EACb,SAAS,EACT,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,oBAAoB,GACvB,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAGrG,YAAY,EACR,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,gBAAgB,GACnB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACH,YAAY,EACZ,aAAa,EACb,cAAc,EACd,eAAe,EACf,cAAc,GACjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EACH,wBAAwB,EACxB,KAAK,gCAAgC,GACxC,MAAM,gEAAgE,CAAC;AAGxE,YAAY,EAAE,QAAQ,EAAE,MAAM,8CAA8C,CAAC;AAC7E,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjG,YAAY,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AACrE,YAAY,EACR,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,IAAI,GACP,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AACtE,YAAY,EACR,kBAAkB,EAClB,wBAAwB,EACxB,KAAK,GACR,MAAM,wCAAwC,CAAC;AAChD,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3G,YAAY,EACR,iBAAiB,EACjB,yBAAyB,GAC5B,MAAM,sDAAsD,CAAC;AAG9D,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC"}
package/esm/index.js CHANGED
@@ -1,7 +1,12 @@
1
1
  // (C) 2026 GoodData Corporation
2
2
  // oxlint-disable no-barrel-files/no-barrel-files
3
+ // auth
3
4
  export { authHeader, authedRouteFetch, injectAuthHeader } from "./auth.js";
4
- export { loadMappings, resetMappings, resetScenarios, mockLogRequests, goodmockMode, GoodmockMode, startRecording, snapshotAndSaveRecording, } from "./goodmock.js";
5
- export { createTest, } from "./playwright.js";
6
- export { clickByBoundingBox, hoverByBoundingBox } from "./helpers/mouse-actions.js";
5
+ // constants
7
6
  export { GOODMOCK_HOST, API_TOKEN, BACKEND_HOST, getBaseUrl, getEnvWithFallback, getWorkspaceId, getDangerWorkspaceId, } from "./constants.js";
7
+ export { loadMappings, resetMappings, resetScenarios, mockLogRequests, startRecording, } from "./create-test/goodmock/admin.js";
8
+ export { goodmockMode, GoodmockMode } from "./create-test/goodmock/mode.js";
9
+ export { snapshotAndSaveRecording, } from "./create-test/goodmock/snapshot/snapshot-and-save-recording.js";
10
+ export { createTest } from "./create-test/playwright/test/factory.js";
11
+ // helpers
12
+ export { clickByBoundingBox, hoverByBoundingBox } from "./helpers/mouse-actions.js";