@gravity-ui/playwright-tools 0.4.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.
Files changed (199) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +9 -0
  3. package/actions/addExtraHttpHeader.d.ts +5 -0
  4. package/actions/addExtraHttpHeader.js +15 -0
  5. package/actions/addExtraHttpHeaders.d.ts +5 -0
  6. package/actions/addExtraHttpHeaders.js +17 -0
  7. package/actions/assertElementsHidden.d.ts +13 -0
  8. package/actions/assertElementsHidden.js +33 -0
  9. package/actions/clearExtraHttpHeaders.d.ts +5 -0
  10. package/actions/clearExtraHttpHeaders.js +15 -0
  11. package/actions/collectPageActivity/collectPageActivity.d.ts +11 -0
  12. package/actions/collectPageActivity/collectPageActivity.js +74 -0
  13. package/actions/collectPageActivity/constants.d.ts +2 -0
  14. package/actions/collectPageActivity/constants.js +17 -0
  15. package/actions/collectPageActivity/index.d.ts +2 -0
  16. package/actions/collectPageActivity/index.js +5 -0
  17. package/actions/collectPageActivity/isSameMessage.d.ts +2 -0
  18. package/actions/collectPageActivity/isSameMessage.js +10 -0
  19. package/actions/collectPageActivity/isSameResponse.d.ts +2 -0
  20. package/actions/collectPageActivity/isSameResponse.js +17 -0
  21. package/actions/collectPageActivity/normalizePathname.d.ts +1 -0
  22. package/actions/collectPageActivity/normalizePathname.js +8 -0
  23. package/actions/collectPageActivity/types.d.ts +23 -0
  24. package/actions/collectPageActivity/types.js +2 -0
  25. package/actions/disableAnimation.d.ts +8 -0
  26. package/actions/disableAnimation.js +35 -0
  27. package/actions/expect-request/expect-request.d.ts +3 -0
  28. package/actions/expect-request/expect-request.js +62 -0
  29. package/actions/expect-request/index.d.ts +2 -0
  30. package/actions/expect-request/index.js +5 -0
  31. package/actions/expect-request/matchers/compare/DiffLogger.d.ts +9 -0
  32. package/actions/expect-request/matchers/compare/DiffLogger.js +20 -0
  33. package/actions/expect-request/matchers/compare/DiffPrinter.d.ts +16 -0
  34. package/actions/expect-request/matchers/compare/DiffPrinter.js +80 -0
  35. package/actions/expect-request/matchers/compare/compare.d.ts +6 -0
  36. package/actions/expect-request/matchers/compare/compare.js +129 -0
  37. package/actions/expect-request/matchers/compare/constants.d.ts +20 -0
  38. package/actions/expect-request/matchers/compare/constants.js +23 -0
  39. package/actions/expect-request/matchers/compare/index.d.ts +4 -0
  40. package/actions/expect-request/matchers/compare/index.js +23 -0
  41. package/actions/expect-request/matchers/compare/print-json-diff.d.ts +6 -0
  42. package/actions/expect-request/matchers/compare/print-json-diff.js +366 -0
  43. package/actions/expect-request/matchers/compare/types.d.ts +59 -0
  44. package/actions/expect-request/matchers/compare/types.js +2 -0
  45. package/actions/expect-request/matchers/compare/utils.d.ts +5 -0
  46. package/actions/expect-request/matchers/compare/utils.js +19 -0
  47. package/actions/expect-request/matchers/match-body.d.ts +4 -0
  48. package/actions/expect-request/matchers/match-body.js +12 -0
  49. package/actions/expect-request/matchers/match-method.d.ts +2 -0
  50. package/actions/expect-request/matchers/match-method.js +14 -0
  51. package/actions/expect-request/matchers/match-query.d.ts +3 -0
  52. package/actions/expect-request/matchers/match-query.js +34 -0
  53. package/actions/expect-request/matchers/match-url.d.ts +1 -0
  54. package/actions/expect-request/matchers/match-url.js +13 -0
  55. package/actions/expect-request/matchers/match.d.ts +3 -0
  56. package/actions/expect-request/matchers/match.js +10 -0
  57. package/actions/expect-request/matchers/types.d.ts +3 -0
  58. package/actions/expect-request/matchers/types.js +2 -0
  59. package/actions/expect-request/matchers/utils.d.ts +1 -0
  60. package/actions/expect-request/matchers/utils.js +9 -0
  61. package/actions/expect-request/poll-with-timeout.d.ts +22 -0
  62. package/actions/expect-request/poll-with-timeout.js +39 -0
  63. package/actions/expect-request/types.d.ts +18 -0
  64. package/actions/expect-request/types.js +2 -0
  65. package/actions/getExtraHttpHeader.d.ts +5 -0
  66. package/actions/getExtraHttpHeader.js +14 -0
  67. package/actions/getExtraHttpHeaders.d.ts +7 -0
  68. package/actions/getExtraHttpHeaders.js +14 -0
  69. package/actions/getGlobalSettings.d.ts +5 -0
  70. package/actions/getGlobalSettings.js +10 -0
  71. package/actions/getTestSlug.d.ts +5 -0
  72. package/actions/getTestSlug.js +13 -0
  73. package/actions/hasExtraHttpHeader.d.ts +5 -0
  74. package/actions/hasExtraHttpHeader.js +14 -0
  75. package/actions/index.d.ts +18 -0
  76. package/actions/index.js +39 -0
  77. package/actions/matchScreenshot.d.ts +90 -0
  78. package/actions/matchScreenshot.js +104 -0
  79. package/actions/mockDate.d.ts +10 -0
  80. package/actions/mockDate.js +20 -0
  81. package/actions/removeExtraHttpHeader.d.ts +5 -0
  82. package/actions/removeExtraHttpHeader.js +15 -0
  83. package/actions/setCacheSettings.d.ts +7 -0
  84. package/actions/setCacheSettings.js +12 -0
  85. package/actions/setGlobalSettings.d.ts +12 -0
  86. package/actions/setGlobalSettings.js +19 -0
  87. package/actions/setTestSlug.d.ts +9 -0
  88. package/actions/setTestSlug.js +22 -0
  89. package/actions/waitForNetworkSettled.d.ts +7 -0
  90. package/actions/waitForNetworkSettled.js +48 -0
  91. package/auth/storage/applyStorageState.d.ts +10 -0
  92. package/auth/storage/applyStorageState.js +16 -0
  93. package/auth/storage/applyStorageStateFor.d.ts +9 -0
  94. package/auth/storage/applyStorageStateFor.js +19 -0
  95. package/auth/storage/deleteStorageStateFor.d.ts +6 -0
  96. package/auth/storage/deleteStorageStateFor.js +12 -0
  97. package/auth/storage/getStorageState.d.ts +27 -0
  98. package/auth/storage/getStorageState.js +18 -0
  99. package/auth/storage/getStorageStateFor.d.ts +24 -0
  100. package/auth/storage/getStorageStateFor.js +12 -0
  101. package/auth/storage/hasStorageStateFor.d.ts +6 -0
  102. package/auth/storage/hasStorageStateFor.js +12 -0
  103. package/auth/storage/index.d.ts +9 -0
  104. package/auth/storage/index.js +21 -0
  105. package/auth/storage/restoreCookies.d.ts +10 -0
  106. package/auth/storage/restoreCookies.js +16 -0
  107. package/auth/storage/restoreLocalStorage.d.ts +10 -0
  108. package/auth/storage/restoreLocalStorage.js +26 -0
  109. package/auth/storage/saveStorageStateFor.d.ts +8 -0
  110. package/auth/storage/saveStorageStateFor.js +15 -0
  111. package/config/browsers.d.ts +24 -0
  112. package/config/browsers.js +7 -0
  113. package/config/browsersDesktop.d.ts +14 -0
  114. package/config/browsersDesktop.js +28 -0
  115. package/config/browsersMobile.d.ts +14 -0
  116. package/config/browsersMobile.js +21 -0
  117. package/data/cacheSettings.d.ts +19 -0
  118. package/data/cacheSettings.js +21 -0
  119. package/data/extraHttpHeaders.d.ts +5 -0
  120. package/data/extraHttpHeaders.js +7 -0
  121. package/data/globalSettings.d.ts +100 -0
  122. package/data/globalSettings.js +112 -0
  123. package/data/storageStates.d.ts +36 -0
  124. package/data/storageStates.js +50 -0
  125. package/data/testSlugs.d.ts +5 -0
  126. package/data/testSlugs.js +7 -0
  127. package/fixtures/expect-request/expect-request-fixture.d.ts +8 -0
  128. package/fixtures/expect-request/expect-request-fixture.js +26 -0
  129. package/fixtures/expect-request/index.d.ts +3 -0
  130. package/fixtures/expect-request/index.js +5 -0
  131. package/fixtures/expect-request/types.d.ts +5 -0
  132. package/fixtures/expect-request/types.js +2 -0
  133. package/fixtures/expect-screenshot/expect-screenshot-fixture.d.ts +5 -0
  134. package/fixtures/expect-screenshot/expect-screenshot-fixture.js +28 -0
  135. package/fixtures/expect-screenshot/index.d.ts +2 -0
  136. package/fixtures/expect-screenshot/index.js +5 -0
  137. package/fixtures/expect-screenshot/types.d.ts +14 -0
  138. package/fixtures/expect-screenshot/types.js +2 -0
  139. package/fixtures/global-settings/global-settings-fixture.d.ts +3 -0
  140. package/fixtures/global-settings/global-settings-fixture.js +22 -0
  141. package/fixtures/global-settings/index.d.ts +2 -0
  142. package/fixtures/global-settings/index.js +5 -0
  143. package/fixtures/global-settings/types.d.ts +15 -0
  144. package/fixtures/global-settings/types.js +2 -0
  145. package/fixtures/index.d.ts +10 -0
  146. package/fixtures/index.js +13 -0
  147. package/fixtures/mock-network/har-patcher.d.ts +8 -0
  148. package/fixtures/mock-network/har-patcher.js +40 -0
  149. package/fixtures/mock-network/index.d.ts +2 -0
  150. package/fixtures/mock-network/index.js +5 -0
  151. package/fixtures/mock-network/mock-network-fixture.d.ts +6 -0
  152. package/fixtures/mock-network/mock-network-fixture.js +38 -0
  153. package/fixtures/mock-network/types.d.ts +86 -0
  154. package/fixtures/mock-network/types.js +2 -0
  155. package/fixtures/testSlug.d.ts +12 -0
  156. package/fixtures/testSlug.js +19 -0
  157. package/fixtures/types.d.ts +4 -0
  158. package/fixtures/types.js +2 -0
  159. package/har/addHarLookupTransform.d.ts +9 -0
  160. package/har/addHarLookupTransform.js +44 -0
  161. package/har/addHarOpenTransform.d.ts +6 -0
  162. package/har/addHarOpenTransform.js +41 -0
  163. package/har/addHarRecorderTransform.d.ts +6 -0
  164. package/har/addHarRecorderTransform.js +36 -0
  165. package/har/clearHeaders.d.ts +11 -0
  166. package/har/clearHeaders.js +25 -0
  167. package/har/getPlaywrightCoreModule.d.ts +4 -0
  168. package/har/getPlaywrightCoreModule.js +33 -0
  169. package/har/index.d.ts +11 -0
  170. package/har/index.js +17 -0
  171. package/har/initDumps.d.ts +66 -0
  172. package/har/initDumps.js +54 -0
  173. package/har/replaceBaseUrlInEntry.d.ts +9 -0
  174. package/har/replaceBaseUrlInEntry.js +29 -0
  175. package/har/setExtraHash.d.ts +5 -0
  176. package/har/setExtraHash.js +18 -0
  177. package/har/types.d.ts +175 -0
  178. package/har/types.js +3 -0
  179. package/package.json +74 -0
  180. package/utils/NeverError.d.ts +6 -0
  181. package/utils/NeverError.js +12 -0
  182. package/utils/deleteCache.d.ts +7 -0
  183. package/utils/deleteCache.js +15 -0
  184. package/utils/extractTestSlug.d.ts +12 -0
  185. package/utils/extractTestSlug.js +24 -0
  186. package/utils/fetchWithoutRejectUnauthorized.d.ts +4 -0
  187. package/utils/fetchWithoutRejectUnauthorized.js +28 -0
  188. package/utils/getCookieDomain.d.ts +4 -0
  189. package/utils/getCookieDomain.js +13 -0
  190. package/utils/index.d.ts +9 -0
  191. package/utils/index.js +21 -0
  192. package/utils/readCache.d.ts +8 -0
  193. package/utils/readCache.js +32 -0
  194. package/utils/waitForResolve.d.ts +24 -0
  195. package/utils/waitForResolve.js +40 -0
  196. package/utils/waitHttpService.d.ts +28 -0
  197. package/utils/waitHttpService.js +25 -0
  198. package/utils/writeCache.d.ts +8 -0
  199. package/utils/writeCache.js +18 -0
@@ -0,0 +1,12 @@
1
+ import type { PartialGlobalSettings } from '../data/globalSettings';
2
+ /**
3
+ * Sets global settings for commands
4
+ *
5
+ * The section settings object is shallowly merged,
6
+ * without deep merging.
7
+ *
8
+ * That is, the settings object
9
+ * `{ matchScreenshot: { options: { threshold: 0.2 } } }`
10
+ * will overwrite the entire value of `options` in the `matchScreenshot` section.
11
+ */
12
+ export declare function setGlobalSettings(settings: PartialGlobalSettings): void;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setGlobalSettings = setGlobalSettings;
4
+ const globalSettings_1 = require("../data/globalSettings");
5
+ /**
6
+ * Sets global settings for commands
7
+ *
8
+ * The section settings object is shallowly merged,
9
+ * without deep merging.
10
+ *
11
+ * That is, the settings object
12
+ * `{ matchScreenshot: { options: { threshold: 0.2 } } }`
13
+ * will overwrite the entire value of `options` in the `matchScreenshot` section.
14
+ */
15
+ function setGlobalSettings(settings) {
16
+ for (const section of Object.keys(settings)) {
17
+ Object.assign(globalSettings_1.globalSettings[section], settings[section]);
18
+ }
19
+ }
@@ -0,0 +1,9 @@
1
+ import type { Page } from '@playwright/test';
2
+ /**
3
+ * Sets the test slug
4
+ *
5
+ * @param page
6
+ * @param title The name of the test from which the slug will be extracted
7
+ * @param required Requires the slug to be specified in a specific way in the title (otherwise the title itself will be used)
8
+ */
9
+ export declare function setTestSlug(page: Page, title: string, required?: boolean): void;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setTestSlug = setTestSlug;
4
+ const testSlugs_1 = require("../data/testSlugs");
5
+ const extractTestSlug_1 = require("../utils/extractTestSlug");
6
+ /**
7
+ * Sets the test slug
8
+ *
9
+ * @param page
10
+ * @param title The name of the test from which the slug will be extracted
11
+ * @param required Requires the slug to be specified in a specific way in the title (otherwise the title itself will be used)
12
+ */
13
+ function setTestSlug(page, title, required = false) {
14
+ let slug = (0, extractTestSlug_1.extractTestSlug)(title, !required);
15
+ if (!slug) {
16
+ if (required) {
17
+ throw new Error(`Can't extract slug from title "${title}"`);
18
+ }
19
+ slug = title.replace(/<>:"\/\\\|\?\*/, '_');
20
+ }
21
+ testSlugs_1.testSlugs.set(page, slug);
22
+ }
@@ -0,0 +1,7 @@
1
+ import type { Page } from '@playwright/test';
2
+ /**
3
+ * Count page requests after performing given `action`, and resolves after all requests finished
4
+ */
5
+ export declare function waitForNetworkSettled(page: Page, action: () => Promise<void>, { networkSettleDelay }?: {
6
+ networkSettleDelay?: number | undefined;
7
+ }): Promise<void>;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ // https://gist.github.com/dgozman/d1c46f966eb9854ee1fe24960b603b28
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.waitForNetworkSettled = waitForNetworkSettled;
5
+ const globalSettings_1 = require("../data/globalSettings");
6
+ function getDeferredPromise() {
7
+ let resolveFn;
8
+ const promise = new Promise((resolve) => {
9
+ resolveFn = resolve;
10
+ });
11
+ return { promise, resolve: resolveFn };
12
+ }
13
+ /**
14
+ * Count page requests after performing given `action`, and resolves after all requests finished
15
+ */
16
+ async function waitForNetworkSettled(page, action, { networkSettleDelay = globalSettings_1.globalSettings.waitForNetworkSettled.delay } = {}) {
17
+ const { resolve: networkSettledCallback, promise: networkSettledPromise } = getDeferredPromise();
18
+ let requestCounter = 0;
19
+ let actionDone = false;
20
+ const maybeSettle = () => {
21
+ if (actionDone && requestCounter <= 0) {
22
+ networkSettledCallback();
23
+ }
24
+ };
25
+ const onRequest = () => {
26
+ ++requestCounter;
27
+ };
28
+ const onRequestDone = () => {
29
+ void page
30
+ .evaluate((timeout) => new Promise((resolve) => setTimeout(resolve, timeout)), networkSettleDelay)
31
+ .catch(() => null)
32
+ .then(() => {
33
+ --requestCounter;
34
+ maybeSettle();
35
+ });
36
+ };
37
+ page.on('request', onRequest);
38
+ page.on('requestfinished', onRequestDone);
39
+ page.on('requestfailed', onRequestDone);
40
+ const result = await action();
41
+ actionDone = true;
42
+ maybeSettle();
43
+ await networkSettledPromise;
44
+ page.removeListener('request', onRequest);
45
+ page.removeListener('requestfinished', onRequestDone);
46
+ page.removeListener('requestfailed', onRequestDone);
47
+ return result;
48
+ }
@@ -0,0 +1,10 @@
1
+ import type { BrowserContext } from '@playwright/test';
2
+ import type { StorageState } from '../../data/storageStates';
3
+ /**
4
+ * Restores saved browser storage
5
+ *
6
+ * @param context Browser context
7
+ * @param storageState Browser Storage Snapshot
8
+ * @param append Append to existing storage (otherwise - clean first)
9
+ */
10
+ export declare function applyStorageState(context: BrowserContext, storageState: StorageState, append?: boolean): Promise<void>;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyStorageState = applyStorageState;
4
+ const restoreCookies_1 = require("./restoreCookies");
5
+ const restoreLocalStorage_1 = require("./restoreLocalStorage");
6
+ /**
7
+ * Restores saved browser storage
8
+ *
9
+ * @param context Browser context
10
+ * @param storageState Browser Storage Snapshot
11
+ * @param append Append to existing storage (otherwise - clean first)
12
+ */
13
+ async function applyStorageState(context, storageState, append = false) {
14
+ await (0, restoreCookies_1.restoreCookies)(context, storageState.cookies, append);
15
+ await (0, restoreLocalStorage_1.restoreLocalStorage)(context, storageState.origins, append);
16
+ }
@@ -0,0 +1,9 @@
1
+ import type { BrowserContext } from '@playwright/test';
2
+ /**
3
+ * Restores saved browser storage by the given key
4
+ *
5
+ * @param key The key by which the snapshot of the browser storage is saved
6
+ * @param context Browser context
7
+ * @param append Add to existing storage (otherwise - clean first)
8
+ */
9
+ export declare function applyStorageStateFor(key: string, context: BrowserContext, append?: boolean): Promise<void>;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyStorageStateFor = applyStorageStateFor;
4
+ const storageStates_1 = require("../../data/storageStates");
5
+ const applyStorageState_1 = require("./applyStorageState");
6
+ /**
7
+ * Restores saved browser storage by the given key
8
+ *
9
+ * @param key The key by which the snapshot of the browser storage is saved
10
+ * @param context Browser context
11
+ * @param append Add to existing storage (otherwise - clean first)
12
+ */
13
+ async function applyStorageStateFor(key, context, append = false) {
14
+ const storageState = await (0, storageStates_1.getState)(key);
15
+ if (!storageState) {
16
+ throw new Error(`Can't find storageState for "${key}"`);
17
+ }
18
+ await (0, applyStorageState_1.applyStorageState)(context, storageState, append);
19
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Deletes a snapshot of the browser storage for the given key.
3
+ *
4
+ * @param key The key by which the snapshot of the browser storage is saved
5
+ */
6
+ export declare function deleteStorageStateFor(key: string): void;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteStorageStateFor = deleteStorageStateFor;
4
+ const storageStates_1 = require("../../data/storageStates");
5
+ /**
6
+ * Deletes a snapshot of the browser storage for the given key.
7
+ *
8
+ * @param key The key by which the snapshot of the browser storage is saved
9
+ */
10
+ function deleteStorageStateFor(key) {
11
+ return (0, storageStates_1.deleteState)(key);
12
+ }
@@ -0,0 +1,27 @@
1
+ import type { Page } from '@playwright/test';
2
+ export type AuthActions = (page: Page) => Promise<void>;
3
+ /**
4
+ * Performs authentication in a separate browser context and returns
5
+ * a snapshot of the browser storage
6
+ *
7
+ * @param authActions Authentication actions
8
+ */
9
+ export declare function getStorageState(authActions: AuthActions): Promise<{
10
+ cookies: Array<{
11
+ name: string;
12
+ value: string;
13
+ domain: string;
14
+ path: string;
15
+ expires: number;
16
+ httpOnly: boolean;
17
+ secure: boolean;
18
+ sameSite: "Strict" | "Lax" | "None";
19
+ }>;
20
+ origins: Array<{
21
+ origin: string;
22
+ localStorage: Array<{
23
+ name: string;
24
+ value: string;
25
+ }>;
26
+ }>;
27
+ }>;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getStorageState = getStorageState;
4
+ const test_1 = require("@playwright/test");
5
+ /**
6
+ * Performs authentication in a separate browser context and returns
7
+ * a snapshot of the browser storage
8
+ *
9
+ * @param authActions Authentication actions
10
+ */
11
+ async function getStorageState(authActions) {
12
+ const browser = await test_1.chromium.launch();
13
+ const page = await browser.newPage();
14
+ await authActions(page);
15
+ const storageState = await page.context().storageState();
16
+ await browser.close();
17
+ return storageState;
18
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Returns a snapshot of the browser storage for the given key.
3
+ *
4
+ * @param key The key by which the snapshot of the browser storage is saved
5
+ */
6
+ export declare function getStorageStateFor(key: string): Promise<{
7
+ cookies: Array<{
8
+ name: string;
9
+ value: string;
10
+ domain: string;
11
+ path: string;
12
+ expires: number;
13
+ httpOnly: boolean;
14
+ secure: boolean;
15
+ sameSite: "Strict" | "Lax" | "None";
16
+ }>;
17
+ origins: Array<{
18
+ origin: string;
19
+ localStorage: Array<{
20
+ name: string;
21
+ value: string;
22
+ }>;
23
+ }>;
24
+ } | undefined>;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getStorageStateFor = getStorageStateFor;
4
+ const storageStates_1 = require("../../data/storageStates");
5
+ /**
6
+ * Returns a snapshot of the browser storage for the given key.
7
+ *
8
+ * @param key The key by which the snapshot of the browser storage is saved
9
+ */
10
+ function getStorageStateFor(key) {
11
+ return (0, storageStates_1.getState)(key);
12
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Checks if there is a snapshot of the browser storage for the given key
3
+ *
4
+ * @param key The key by which the snapshot of the browser storage is saved
5
+ */
6
+ export declare function hasStorageStateFor(key: string): Promise<boolean>;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hasStorageStateFor = hasStorageStateFor;
4
+ const storageStates_1 = require("../../data/storageStates");
5
+ /**
6
+ * Checks if there is a snapshot of the browser storage for the given key
7
+ *
8
+ * @param key The key by which the snapshot of the browser storage is saved
9
+ */
10
+ function hasStorageStateFor(key) {
11
+ return (0, storageStates_1.hasState)(key);
12
+ }
@@ -0,0 +1,9 @@
1
+ export { applyStorageState } from './applyStorageState';
2
+ export { applyStorageStateFor } from './applyStorageStateFor';
3
+ export { deleteStorageStateFor } from './deleteStorageStateFor';
4
+ export { getStorageState } from './getStorageState';
5
+ export { getStorageStateFor } from './getStorageStateFor';
6
+ export { hasStorageStateFor } from './hasStorageStateFor';
7
+ export { restoreCookies } from './restoreCookies';
8
+ export { restoreLocalStorage } from './restoreLocalStorage';
9
+ export { saveStorageStateFor } from './saveStorageStateFor';
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.saveStorageStateFor = exports.restoreLocalStorage = exports.restoreCookies = exports.hasStorageStateFor = exports.getStorageStateFor = exports.getStorageState = exports.deleteStorageStateFor = exports.applyStorageStateFor = exports.applyStorageState = void 0;
4
+ var applyStorageState_1 = require("./applyStorageState");
5
+ Object.defineProperty(exports, "applyStorageState", { enumerable: true, get: function () { return applyStorageState_1.applyStorageState; } });
6
+ var applyStorageStateFor_1 = require("./applyStorageStateFor");
7
+ Object.defineProperty(exports, "applyStorageStateFor", { enumerable: true, get: function () { return applyStorageStateFor_1.applyStorageStateFor; } });
8
+ var deleteStorageStateFor_1 = require("./deleteStorageStateFor");
9
+ Object.defineProperty(exports, "deleteStorageStateFor", { enumerable: true, get: function () { return deleteStorageStateFor_1.deleteStorageStateFor; } });
10
+ var getStorageState_1 = require("./getStorageState");
11
+ Object.defineProperty(exports, "getStorageState", { enumerable: true, get: function () { return getStorageState_1.getStorageState; } });
12
+ var getStorageStateFor_1 = require("./getStorageStateFor");
13
+ Object.defineProperty(exports, "getStorageStateFor", { enumerable: true, get: function () { return getStorageStateFor_1.getStorageStateFor; } });
14
+ var hasStorageStateFor_1 = require("./hasStorageStateFor");
15
+ Object.defineProperty(exports, "hasStorageStateFor", { enumerable: true, get: function () { return hasStorageStateFor_1.hasStorageStateFor; } });
16
+ var restoreCookies_1 = require("./restoreCookies");
17
+ Object.defineProperty(exports, "restoreCookies", { enumerable: true, get: function () { return restoreCookies_1.restoreCookies; } });
18
+ var restoreLocalStorage_1 = require("./restoreLocalStorage");
19
+ Object.defineProperty(exports, "restoreLocalStorage", { enumerable: true, get: function () { return restoreLocalStorage_1.restoreLocalStorage; } });
20
+ var saveStorageStateFor_1 = require("./saveStorageStateFor");
21
+ Object.defineProperty(exports, "saveStorageStateFor", { enumerable: true, get: function () { return saveStorageStateFor_1.saveStorageStateFor; } });
@@ -0,0 +1,10 @@
1
+ import type { BrowserContext } from '@playwright/test';
2
+ import type { StorageState } from '../../data/storageStates';
3
+ /**
4
+ * Restores saved cookies in the browser
5
+ *
6
+ * @param context Browser context
7
+ * @param cookies List of cookies to restore
8
+ * @param append Add to existing cookies (otherwise - clear first)
9
+ */
10
+ export declare function restoreCookies(context: BrowserContext, cookies: StorageState['cookies'], append?: boolean): Promise<void>;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.restoreCookies = restoreCookies;
4
+ /**
5
+ * Restores saved cookies in the browser
6
+ *
7
+ * @param context Browser context
8
+ * @param cookies List of cookies to restore
9
+ * @param append Add to existing cookies (otherwise - clear first)
10
+ */
11
+ async function restoreCookies(context, cookies, append = false) {
12
+ if (!append) {
13
+ await context.clearCookies();
14
+ }
15
+ await context.addCookies(cookies);
16
+ }
@@ -0,0 +1,10 @@
1
+ import type { BrowserContext } from '@playwright/test';
2
+ import type { StorageState } from '../../data/storageStates';
3
+ /**
4
+ * Restores saved localStorage records in the browser
5
+ *
6
+ * @param context Browser context
7
+ * @param origins List of localStorage entries to restore
8
+ * @param append Append to existing entries (otherwise - clear first)
9
+ */
10
+ export declare function restoreLocalStorage(context: BrowserContext, origins: StorageState['origins'], append?: boolean): Promise<void>;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.restoreLocalStorage = restoreLocalStorage;
4
+ /**
5
+ * Restores saved localStorage records in the browser
6
+ *
7
+ * @param context Browser context
8
+ * @param origins List of localStorage entries to restore
9
+ * @param append Append to existing entries (otherwise - clear first)
10
+ */
11
+ async function restoreLocalStorage(context, origins, append = false) {
12
+ await context.addInitScript(({ origins, append }) => {
13
+ const currentOrigin = `${location.protocol}://${location.hostname}`;
14
+ if (!append) {
15
+ window.localStorage.clear();
16
+ }
17
+ for (const { origin, localStorage } of origins) {
18
+ if (origin !== currentOrigin) {
19
+ continue;
20
+ }
21
+ for (const { name, value } of localStorage) {
22
+ window.localStorage.setItem(name, value);
23
+ }
24
+ }
25
+ }, { origins, append });
26
+ }
@@ -0,0 +1,8 @@
1
+ import type { AuthActions } from './getStorageState';
2
+ /**
3
+ * Performs authentication in a separate browser context and saves a snapshot of the browser storage by the given key
4
+ *
5
+ * @param key The key to save the browser storage state with
6
+ * @param authActions Authentication actions
7
+ */
8
+ export declare function saveStorageStateFor(key: string, authActions: AuthActions): Promise<void>;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.saveStorageStateFor = saveStorageStateFor;
4
+ const storageStates_1 = require("../../data/storageStates");
5
+ const getStorageState_1 = require("./getStorageState");
6
+ /**
7
+ * Performs authentication in a separate browser context and saves a snapshot of the browser storage by the given key
8
+ *
9
+ * @param key The key to save the browser storage state with
10
+ * @param authActions Authentication actions
11
+ */
12
+ async function saveStorageStateFor(key, authActions) {
13
+ const storageState = await (0, getStorageState_1.getStorageState)(authActions);
14
+ (0, storageStates_1.setState)(key, storageState);
15
+ }
@@ -0,0 +1,24 @@
1
+ export declare const projects: ({
2
+ name: string;
3
+ use: {
4
+ projectName: "Chrome" | "Safari" | "Firefox";
5
+ viewport: import("playwright-core").ViewportSize;
6
+ userAgent: string;
7
+ deviceScaleFactor: number;
8
+ isMobile: boolean;
9
+ hasTouch: boolean;
10
+ defaultBrowserType: "chromium" | "firefox" | "webkit";
11
+ };
12
+ } | {
13
+ name: string;
14
+ use: {
15
+ projectName: "Android" | "iPhone";
16
+ viewport: import("playwright-core").ViewportSize;
17
+ userAgent: string;
18
+ deviceScaleFactor: number;
19
+ isMobile: boolean;
20
+ hasTouch: boolean;
21
+ defaultBrowserType: "chromium" | "firefox" | "webkit";
22
+ };
23
+ })[];
24
+ export default projects;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.projects = void 0;
4
+ const browsersDesktop_1 = require("./browsersDesktop");
5
+ const browsersMobile_1 = require("./browsersMobile");
6
+ exports.projects = [...browsersDesktop_1.projects, ...browsersMobile_1.projects];
7
+ exports.default = exports.projects;
@@ -0,0 +1,14 @@
1
+ type ProjectName = 'Chrome' | 'Safari' | 'Firefox';
2
+ export declare const projects: {
3
+ name: string;
4
+ use: {
5
+ projectName: ProjectName;
6
+ viewport: import("@playwright/test").ViewportSize;
7
+ userAgent: string;
8
+ deviceScaleFactor: number;
9
+ isMobile: boolean;
10
+ hasTouch: boolean;
11
+ defaultBrowserType: "chromium" | "firefox" | "webkit";
12
+ };
13
+ }[];
14
+ export default projects;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.projects = void 0;
4
+ const test_1 = require("@playwright/test");
5
+ exports.projects = [
6
+ {
7
+ name: 'Chrome',
8
+ use: {
9
+ ...test_1.devices['Desktop Chrome'],
10
+ projectName: 'Chrome',
11
+ },
12
+ },
13
+ {
14
+ name: 'Safari',
15
+ use: {
16
+ ...test_1.devices['Desktop Safari'],
17
+ projectName: 'Safari',
18
+ },
19
+ },
20
+ {
21
+ name: 'Firefox',
22
+ use: {
23
+ ...test_1.devices['Desktop Firefox'],
24
+ projectName: 'Firefox',
25
+ },
26
+ },
27
+ ];
28
+ exports.default = exports.projects;
@@ -0,0 +1,14 @@
1
+ type ProjectName = 'Android' | 'iPhone';
2
+ export declare const projects: {
3
+ name: string;
4
+ use: {
5
+ projectName: ProjectName;
6
+ viewport: import("@playwright/test").ViewportSize;
7
+ userAgent: string;
8
+ deviceScaleFactor: number;
9
+ isMobile: boolean;
10
+ hasTouch: boolean;
11
+ defaultBrowserType: "chromium" | "firefox" | "webkit";
12
+ };
13
+ }[];
14
+ export default projects;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.projects = void 0;
4
+ const test_1 = require("@playwright/test");
5
+ exports.projects = [
6
+ {
7
+ name: 'Android',
8
+ use: {
9
+ ...test_1.devices['Pixel 5'],
10
+ projectName: 'Android',
11
+ },
12
+ },
13
+ {
14
+ name: 'iPhone',
15
+ use: {
16
+ ...test_1.devices['iPhone 12'],
17
+ projectName: 'iPhone',
18
+ },
19
+ },
20
+ ];
21
+ exports.default = exports.projects;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Location of data cache on file system
3
+ */
4
+ export declare const cacheSettings: {
5
+ /**
6
+ * Caching authentication data
7
+ */
8
+ auth: {
9
+ /**
10
+ * Path to the directory where the cache files should be stored
11
+ */
12
+ path: string | undefined;
13
+ /**
14
+ * Cache TTL
15
+ */
16
+ ttl: number;
17
+ };
18
+ };
19
+ export type CacheSettings = typeof cacheSettings;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cacheSettings = void 0;
4
+ /**
5
+ * Location of data cache on file system
6
+ */
7
+ exports.cacheSettings = {
8
+ /**
9
+ * Caching authentication data
10
+ */
11
+ auth: {
12
+ /**
13
+ * Path to the directory where the cache files should be stored
14
+ */
15
+ path: undefined,
16
+ /**
17
+ * Cache TTL
18
+ */
19
+ ttl: 30 * 60 * 1000,
20
+ },
21
+ };
@@ -0,0 +1,5 @@
1
+ import type { BrowserContext } from '@playwright/test';
2
+ /**
3
+ * Store for all current extra HTTP headers per browser context (= test)
4
+ */
5
+ export declare const extraHttpHeaders: WeakMap<BrowserContext, Map<string, string>>;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extraHttpHeaders = void 0;
4
+ /**
5
+ * Store for all current extra HTTP headers per browser context (= test)
6
+ */
7
+ exports.extraHttpHeaders = new WeakMap();