creevey 0.10.0-beta.31 → 0.10.0-beta.33

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 (59) hide show
  1. package/README.md +19 -41
  2. package/dist/client/addon/withCreevey.js +1 -0
  3. package/dist/client/addon/withCreevey.js.map +1 -1
  4. package/dist/client/shared/components/ResultsPage.d.ts +1 -1
  5. package/dist/client/web/CreeveyApp.js +1 -0
  6. package/dist/client/web/CreeveyApp.js.map +1 -1
  7. package/dist/server/docker.d.ts +1 -1
  8. package/dist/server/docker.js +21 -14
  9. package/dist/server/docker.js.map +1 -1
  10. package/dist/server/index.js +9 -10
  11. package/dist/server/index.js.map +1 -1
  12. package/dist/server/playwright/docker-file.d.ts +1 -2
  13. package/dist/server/playwright/docker-file.js +10 -4
  14. package/dist/server/playwright/docker-file.js.map +1 -1
  15. package/dist/server/playwright/docker.d.ts +2 -1
  16. package/dist/server/playwright/docker.js +10 -2
  17. package/dist/server/playwright/docker.js.map +1 -1
  18. package/dist/server/playwright/internal.d.ts +3 -4
  19. package/dist/server/playwright/internal.js +48 -37
  20. package/dist/server/playwright/internal.js.map +1 -1
  21. package/dist/server/playwright/webdriver.js +4 -7
  22. package/dist/server/playwright/webdriver.js.map +1 -1
  23. package/dist/server/selenium/internal.js +5 -12
  24. package/dist/server/selenium/internal.js.map +1 -1
  25. package/dist/server/selenium/webdriver.js +4 -8
  26. package/dist/server/selenium/webdriver.js.map +1 -1
  27. package/dist/server/telemetry.js +2 -2
  28. package/dist/server/utils.d.ts +1 -2
  29. package/dist/server/utils.js +11 -8
  30. package/dist/server/utils.js.map +1 -1
  31. package/dist/server/webdriver.d.ts +2 -0
  32. package/dist/server/webdriver.js +13 -1
  33. package/dist/server/webdriver.js.map +1 -1
  34. package/dist/server/worker/context.d.ts +3 -0
  35. package/dist/server/worker/context.js +15 -0
  36. package/dist/server/worker/context.js.map +1 -0
  37. package/dist/types.d.ts +0 -2
  38. package/dist/types.js.map +1 -1
  39. package/docs/cli.md +12 -0
  40. package/docs/config.md +178 -167
  41. package/docs/storybook.md +60 -0
  42. package/docs/tests.md +50 -45
  43. package/package.json +1 -1
  44. package/src/client/addon/withCreevey.ts +1 -0
  45. package/src/client/web/CreeveyApp.tsx +1 -0
  46. package/src/server/docker.ts +24 -13
  47. package/src/server/index.ts +11 -14
  48. package/src/server/playwright/docker-file.ts +12 -5
  49. package/src/server/playwright/docker.ts +16 -3
  50. package/src/server/playwright/index-source.mjs +16 -0
  51. package/src/server/playwright/internal.ts +78 -52
  52. package/src/server/playwright/webdriver.ts +4 -7
  53. package/src/server/selenium/internal.ts +5 -12
  54. package/src/server/selenium/webdriver.ts +4 -8
  55. package/src/server/telemetry.ts +2 -2
  56. package/src/server/utils.ts +33 -25
  57. package/src/server/webdriver.ts +13 -0
  58. package/src/server/worker/context.ts +14 -0
  59. package/src/types.ts +0 -2
@@ -27,7 +27,6 @@ export declare function shouldSkipByOption(browser: string, meta: {
27
27
  export declare function shutdownWorkers(): Promise<void>;
28
28
  export declare function gracefullyKill(worker: Worker): void;
29
29
  export declare function killTree(rootPid: number): Promise<void>;
30
- export declare function shutdown(): void;
31
30
  export declare function shutdownWithError(): void;
32
31
  export declare function resolvePlaywrightBrowserType(browserName: string): (typeof browserTypes)[keyof typeof browserTypes];
33
32
  export declare function getCreeveyCache(): Promise<string | undefined>;
@@ -39,5 +38,5 @@ export declare const downloadBinary: (downloadUrl: string, destination: string)
39
38
  export declare function readDirRecursive(dirPath: string): string[];
40
39
  export declare function tryToLoadTestsData(filename: string): Partial<Record<string, ServerTest>> | undefined;
41
40
  export declare function loadThroughTSX<T>(callback: (load: (modulePath: string) => Promise<T>) => Promise<T>): Promise<T>;
42
- export declare function waitOnUrl(url: string, timeout: number, delay: number): Promise<void>;
41
+ export declare function waitOnUrl(waitUrl: string, timeout: number, delay: number): Promise<void>;
43
42
  export {};
@@ -9,7 +9,6 @@ exports.shouldSkipByOption = shouldSkipByOption;
9
9
  exports.shutdownWorkers = shutdownWorkers;
10
10
  exports.gracefullyKill = gracefullyKill;
11
11
  exports.killTree = killTree;
12
- exports.shutdown = shutdown;
13
12
  exports.shutdownWithError = shutdownWithError;
14
13
  exports.resolvePlaywrightBrowserType = resolvePlaywrightBrowserType;
15
14
  exports.getCreeveyCache = getCreeveyCache;
@@ -30,6 +29,7 @@ const api_1 = require("tsx/esm/api");
30
29
  const api_2 = require("tsx/cjs/api");
31
30
  const types_js_1 = require("../types.js");
32
31
  const messages_js_1 = require("./messages.js");
32
+ const webdriver_js_1 = require("./webdriver.js");
33
33
  const assert_1 = __importDefault(require("assert"));
34
34
  const pidtree_1 = __importDefault(require("pidtree"));
35
35
  const importMetaUrl = (0, url_1.pathToFileURL)(__filename).href;
@@ -91,7 +91,7 @@ async function shutdownWorkers() {
91
91
  const timeout = setTimeout(() => {
92
92
  if (worker.process.pid)
93
93
  void killTree(worker.process.pid);
94
- }, 10000);
94
+ }, 10_000);
95
95
  worker.on('exit', () => {
96
96
  clearTimeout(timeout);
97
97
  resolve();
@@ -122,9 +122,6 @@ async function killTree(rootPid) {
122
122
  }
123
123
  });
124
124
  }
125
- function shutdown() {
126
- process.exit();
127
- }
128
125
  function shutdownWithError() {
129
126
  process.exit(1);
130
127
  }
@@ -209,9 +206,15 @@ async function loadThroughTSX(callback) {
209
206
  await unregister();
210
207
  return result;
211
208
  }
212
- function waitOnUrl(url, timeout, delay) {
209
+ function waitOnUrl(waitUrl, timeout, delay) {
210
+ const urls = [waitUrl];
211
+ if (!webdriver_js_1.LOCALHOST_REGEXP.test(waitUrl)) {
212
+ const parsedUrl = new URL(waitUrl);
213
+ parsedUrl.host = 'localhost';
214
+ urls.push(parsedUrl.toString());
215
+ }
213
216
  const startTime = Date.now();
214
- return new Promise((resolve, reject) => {
217
+ return Promise.race(urls.map((url) => new Promise((resolve, reject) => {
215
218
  const interval = setInterval(() => {
216
219
  http_1.default
217
220
  .get(url, (response) => {
@@ -228,6 +231,6 @@ function waitOnUrl(url, timeout, delay) {
228
231
  reject(new Error(`${url} didn't respond within ${timeout / 1000} seconds`));
229
232
  }
230
233
  }, delay);
231
- });
234
+ })));
232
235
  }
233
236
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/server/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/server/utils.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@ import type { Args } from '@storybook/csf';
2
2
  import { StoryInput, BaseCreeveyTestContext, CreeveyTestContext, StoriesRaw, CreeveyWebdriver, ServerTest } from '../types.js';
3
3
  export declare const storybookRootID = "storybook-root";
4
4
  export declare const LOCALHOST_REGEXP: RegExp;
5
+ export declare const openBrowser: () => () => void;
6
+ export declare const waitForBrowserClose: () => Promise<void> | null;
5
7
  export declare function resolveStorybookUrl(storybookUrl: string, checkUrl: (url: string) => Promise<boolean>): Promise<string>;
6
8
  export declare function appendIframePath(url: string): string;
7
9
  export declare function getAddresses(): string[];
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.CreeveyWebdriverBase = exports.LOCALHOST_REGEXP = exports.storybookRootID = void 0;
6
+ exports.CreeveyWebdriverBase = exports.waitForBrowserClose = exports.openBrowser = exports.LOCALHOST_REGEXP = exports.storybookRootID = void 0;
7
7
  exports.resolveStorybookUrl = resolveStorybookUrl;
8
8
  exports.appendIframePath = appendIframePath;
9
9
  exports.getAddresses = getAddresses;
@@ -15,6 +15,18 @@ const messages_js_1 = require("./messages.js");
15
15
  exports.storybookRootID = 'storybook-root';
16
16
  exports.LOCALHOST_REGEXP = /(localhost|127\.0\.0\.1)/i;
17
17
  const DOCKER_INTERNAL = 'host.docker.internal';
18
+ let browserClosePromise = null;
19
+ const openBrowser = () => {
20
+ let resolve;
21
+ browserClosePromise = new Promise((r) => (resolve = r));
22
+ return () => {
23
+ resolve();
24
+ browserClosePromise = null;
25
+ };
26
+ };
27
+ exports.openBrowser = openBrowser;
28
+ const waitForBrowserClose = () => browserClosePromise;
29
+ exports.waitForBrowserClose = waitForBrowserClose;
18
30
  async function resolveStorybookUrl(storybookUrl, checkUrl) {
19
31
  (0, logger_js_1.logger)().debug('Resolving storybook url');
20
32
  const addresses = getAddresses();
@@ -1 +1 @@
1
- {"version":3,"file":"webdriver.js","sourceRoot":"","sources":["../../src/server/webdriver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webdriver.js","sourceRoot":"","sources":["../../src/server/webdriver.ts"],"names":[],"mappings":";;;;;;AAiCA,kDAkBC;AAED,4CAEC;AAED,oCAOC;AAhED,kDAA0B;AAC1B,2BAAuC;AACvC,2CAAqC;AAErC,0CASqB;AACrB,+CAAgE;AAEnD,QAAA,eAAe,GAAG,gBAAgB,CAAC;AACnC,QAAA,gBAAgB,GAAG,2BAA2B,CAAC;AAC5D,MAAM,eAAe,GAAG,sBAAsB,CAAC;AAE/C,IAAI,mBAAmB,GAAyB,IAAI,CAAC;AAE9C,MAAM,WAAW,GAAG,GAAG,EAAE;IAC9B,IAAI,OAAmB,CAAC;IACxB,mBAAmB,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;IACxD,OAAO,GAAG,EAAE;QACV,OAAO,EAAE,CAAC;QACV,mBAAmB,GAAG,IAAI,CAAC;IAC7B,CAAC,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,WAAW,eAOtB;AAEK,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,mBAAmB,CAAC;AAAhD,QAAA,mBAAmB,uBAA6B;AAEtD,KAAK,UAAU,mBAAmB,CACvC,YAAoB,EACpB,QAA2C;IAE3C,IAAA,kBAAM,GAAE,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,yBAAyB;IACzB,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,wBAAgB,EAAE,EAAE,CAAC,CAAC;QAC/D,IAAA,kBAAM,GAAE,CAAC,KAAK,CAAC,sCAAsC,eAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACnF,IAAI,MAAM,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,IAAA,kBAAM,GAAE,CAAC,KAAK,CAAC,0BAA0B,eAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACvE,OAAO,WAAW,CAAC;QACrB,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAC;IAC7G,KAAK,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAC/B,MAAM,KAAK,CAAC;AACd,CAAC;AAED,SAAgB,gBAAgB,CAAC,GAAW;IAC1C,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC;AACjD,CAAC;AAED,SAAgB,YAAY;IAC1B,+BAA+B;IAC/B,OAAO,CAAC,eAAe,CAAC,CAAC,MAAM,CAC7B,GAAG,MAAM,CAAC,MAAM,CAAC,IAAA,sBAAiB,GAAE,CAAC;SAClC,MAAM,CAAC,oBAAS,CAAC;SACjB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CACjG,CAAC;AACJ,CAAC;AAED,MAAsB,oBAAoB;IAsBxC,KAAK,CAAC,WAAW,CAAC,KAAiB,EAAE,OAA+B;QAClE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;QAC9C,MAAM,EACJ,cAAc,GAAG,IAAI,uBAAe,EAAE,EACtC,YAAY,EACZ,cAAc,GACf,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,EAAE,CAAuB,CAAC;QAErD,IAAA,kBAAM,GAAE,CAAC,KAAK,CAAC,sBAAsB,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,eAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAEzG,IAAI,iBAAiD,CAAC;QACtD,IAAI,eAAe,GAAG,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,iBAAiB,GAAG,OAAO,CAAC,CAAC,CAAC;QACvF,MAAM,WAAW,GAAG,IAAA,yBAAW,EAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;YACrD,IAAI,OAAO,CAAC,IAAI,IAAI,SAAS;gBAAE,OAAO;YACtC,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;YAC9D,KAAK,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,cAAc,IAAI,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,cAAc,CAAC,CAAC,IAAI,CAC/G,CAAC,UAAU,EAAE,EAAE;gBACb,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;gBAEpD,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;gBAExC,IAAA,gCAAkB,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YAC1C,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;QAEjE,IAAI,eAAe,EAAE,CAAC;YACpB,IAAA,kBAAM,GAAE,CAAC,KAAK,CAAC,8BAA8B,eAAK,CAAC,OAAO,CAAC,EAAE,CAAC,8BAA8B,CAAC,CAAC;YAC9F,OAAO,CAAC,CAAC,MAAM,eAAe,CAAC,EAAE,CAAC;gBAChC,eAAe,GAAG,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,iBAAiB,GAAG,OAAO,CAAC,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;QAED,WAAW,EAAE,CAAC;QAEd,IAAI,eAAe;YAAE,IAAA,kBAAM,GAAE,CAAC,KAAK,CAAC,SAAS,eAAK,CAAC,OAAO,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC;;YACjF,IAAA,kBAAM,GAAE,CAAC,KAAK,CAAC,SAAS,eAAK,CAAC,OAAO,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC;QAEtE,OAAO,MAAM,CAAC,MAAM,CAClB;YACE,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,cAAc,CAAC;YACzE,eAAe,EAAE,CAAC,WAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC;YAChF,cAAc;SACf,EACD,OAAO,CACR,CAAC;IACJ,CAAC;CACF;AAvED,oDAuEC"}
@@ -0,0 +1,3 @@
1
+ import type { Container } from 'dockerode';
2
+ export declare function setWorkerContainer(container: Container): void;
3
+ export declare function removeWorkerContainer(): Promise<void>;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setWorkerContainer = setWorkerContainer;
4
+ exports.removeWorkerContainer = removeWorkerContainer;
5
+ let workerContainer = null;
6
+ function setWorkerContainer(container) {
7
+ workerContainer = container;
8
+ }
9
+ async function removeWorkerContainer() {
10
+ if (workerContainer) {
11
+ await workerContainer.remove({ force: true });
12
+ workerContainer = null;
13
+ }
14
+ }
15
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/server/worker/context.ts"],"names":[],"mappings":";;AAIA,gDAEC;AAED,sDAKC;AAXD,IAAI,eAAe,GAAqB,IAAI,CAAC;AAE7C,SAAgB,kBAAkB,CAAC,SAAoB;IACrD,eAAe,GAAG,SAAS,CAAC;AAC9B,CAAC;AAEM,KAAK,UAAU,qBAAqB;IACzC,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,eAAe,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,eAAe,GAAG,IAAI,CAAC;IACzB,CAAC;AACH,CAAC"}
package/dist/types.d.ts CHANGED
@@ -119,7 +119,6 @@ export interface BrowserConfigObject {
119
119
  screenshots?: boolean;
120
120
  snapshots?: boolean;
121
121
  sources?: boolean;
122
- path: string;
123
122
  };
124
123
  };
125
124
  }
@@ -318,7 +317,6 @@ export interface Options {
318
317
  storybookUrl?: string;
319
318
  storybookPort?: string;
320
319
  storybookAutorunCmd?: string;
321
- saveReport: boolean;
322
320
  failFast?: boolean;
323
321
  odiff?: boolean;
324
322
  noDocker?: boolean;
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAskBA,oBAEC;AAED,8BAEC;AAED,wBASC;AAED,4BAEC;AAED,4BAEC;AAGD,gCAEC;AAED,oCAEC;AAED,4CAEC;AAED,0CAEC;AAED,4CAEC;AAED,sCAEC;AA7kBD,IAAY,eAUX;AAVD,WAAY,eAAe;IACzB,6CAA0B,CAAA;IAC1B,wDAAqC,CAAA;IACrC,iDAA8B,CAAA;IAC9B,mDAAgC,CAAA;IAChC,iDAA8B,CAAA;IAC9B,gEAA6C,CAAA;IAC7C,wDAAqC,CAAA;IACrC,6CAA0B,CAAA;IAC1B,mDAAgC,CAAA;AAClC,CAAC,EAVW,eAAe,+BAAf,eAAe,QAU1B;AAwXD,MAAa,WAAY,SAAQ,KAAK;IACpC,MAAM,CAA4C;CACnD;AAFD,kCAEC;AAwCD,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,kCAAmB,CAAA;IACnB,8BAAe,CAAA;IACf,kCAAmB,CAAA;IACnB,oCAAqB,CAAA;IACrB,iCAAkB,CAAA;IAClB,iCAAkB,CAAA;AACpB,CAAC,EAPW,WAAW,2BAAX,WAAW,QAOtB;AAwGD,SAAgB,IAAI;IAClB,UAAU;AACZ,CAAC;AAED,SAAgB,SAAS,CAAI,KAA2B;IACtD,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/C,CAAC;AAED,SAAgB,MAAM,CAAC,CAA8B;IACnD,OAAO,CACL,SAAS,CAAC,CAAC,CAAC;QACZ,QAAQ,CAAC,CAAC,CAAC;QACX,IAAI,IAAI,CAAC;QACT,SAAS,IAAI,CAAC;QACd,OAAO,CAAC,CAAC,EAAE,IAAI,QAAQ;QACvB,OAAO,CAAC,CAAC,OAAO,IAAI,QAAQ,CAC7B,CAAC;AACJ,CAAC;AAED,SAAgB,QAAQ,CAAC,CAAU;IACjC,OAAO,OAAO,CAAC,IAAI,QAAQ,IAAI,CAAC,IAAI,IAAI,CAAC;AAC3C,CAAC;AAED,SAAgB,QAAQ,CAAC,CAAU;IACjC,OAAO,OAAO,CAAC,IAAI,QAAQ,CAAC;AAC9B,CAAC;AAED,8DAA8D;AAC9D,SAAgB,UAAU,CAAC,CAAU;IACnC,OAAO,OAAO,CAAC,IAAI,UAAU,CAAC;AAChC,CAAC;AAED,SAAgB,YAAY,CAAC,KAAc;IACzC,OAAO,KAAK,YAAY,WAAW,IAAI,QAAQ,IAAI,KAAK,CAAC;AAC3D,CAAC;AAED,SAAgB,gBAAgB,CAAC,OAAgB;IAC/C,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC;AACjD,CAAC;AAED,SAAgB,eAAe,CAAC,OAAgB;IAC9C,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC;AAChE,CAAC;AAED,SAAgB,gBAAgB,CAAC,OAAgB;IAC/C,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC;AACjE,CAAC;AAED,SAAgB,aAAa,CAAC,OAAgB;IAC5C,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAokBA,oBAEC;AAED,8BAEC;AAED,wBASC;AAED,4BAEC;AAED,4BAEC;AAGD,gCAEC;AAED,oCAEC;AAED,4CAEC;AAED,0CAEC;AAED,4CAEC;AAED,sCAEC;AA3kBD,IAAY,eAUX;AAVD,WAAY,eAAe;IACzB,6CAA0B,CAAA;IAC1B,wDAAqC,CAAA;IACrC,iDAA8B,CAAA;IAC9B,mDAAgC,CAAA;IAChC,iDAA8B,CAAA;IAC9B,gEAA6C,CAAA;IAC7C,wDAAqC,CAAA;IACrC,6CAA0B,CAAA;IAC1B,mDAAgC,CAAA;AAClC,CAAC,EAVW,eAAe,+BAAf,eAAe,QAU1B;AAsXD,MAAa,WAAY,SAAQ,KAAK;IACpC,MAAM,CAA4C;CACnD;AAFD,kCAEC;AAwCD,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,kCAAmB,CAAA;IACnB,8BAAe,CAAA;IACf,kCAAmB,CAAA;IACnB,oCAAqB,CAAA;IACrB,iCAAkB,CAAA;IAClB,iCAAkB,CAAA;AACpB,CAAC,EAPW,WAAW,2BAAX,WAAW,QAOtB;AAwGD,SAAgB,IAAI;IAClB,UAAU;AACZ,CAAC;AAED,SAAgB,SAAS,CAAI,KAA2B;IACtD,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/C,CAAC;AAED,SAAgB,MAAM,CAAC,CAA8B;IACnD,OAAO,CACL,SAAS,CAAC,CAAC,CAAC;QACZ,QAAQ,CAAC,CAAC,CAAC;QACX,IAAI,IAAI,CAAC;QACT,SAAS,IAAI,CAAC;QACd,OAAO,CAAC,CAAC,EAAE,IAAI,QAAQ;QACvB,OAAO,CAAC,CAAC,OAAO,IAAI,QAAQ,CAC7B,CAAC;AACJ,CAAC;AAED,SAAgB,QAAQ,CAAC,CAAU;IACjC,OAAO,OAAO,CAAC,IAAI,QAAQ,IAAI,CAAC,IAAI,IAAI,CAAC;AAC3C,CAAC;AAED,SAAgB,QAAQ,CAAC,CAAU;IACjC,OAAO,OAAO,CAAC,IAAI,QAAQ,CAAC;AAC9B,CAAC;AAED,8DAA8D;AAC9D,SAAgB,UAAU,CAAC,CAAU;IACnC,OAAO,OAAO,CAAC,IAAI,UAAU,CAAC;AAChC,CAAC;AAED,SAAgB,YAAY,CAAC,KAAc;IACzC,OAAO,KAAK,YAAY,WAAW,IAAI,QAAQ,IAAI,KAAK,CAAC;AAC3D,CAAC;AAED,SAAgB,gBAAgB,CAAC,OAAgB;IAC/C,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC;AACjD,CAAC;AAED,SAAgB,eAAe,CAAC,OAAgB;IAC9C,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC;AAChE,CAAC;AAED,SAAgB,gBAAgB,CAAC,OAAgB;IAC/C,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC;AACjE,CAAC;AAED,SAAgB,aAAa,CAAC,OAAgB;IAC5C,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC;AAC9D,CAAC"}
package/docs/cli.md ADDED
@@ -0,0 +1,12 @@
1
+ ## Creevey CLI Options
2
+
3
+ There are several options available for the Creevey CLI:
4
+
5
+ - `--ui` — Starts Creevey UI Runner, which allows to run tests individually, compare screenshots and approve them without hesitation
6
+ - `-s, --storybookStart` — Starts Storybook for you by using `storybook dev` command
7
+ - `-c, --config` — Specify path to the config file. Default `.creevey/config.ts` or `creevey.config.ts`
8
+ - `-p, --port` — Specify port in which UI Runner should be started. Default `3000`
9
+ - `-d, --debug` — Enable debug output. It also enables recording video and traces if Playwright is used
10
+ - `-u, --update` — Approve all images from `report` directory. But it's recommended to do it from the UI Runner
11
+ - `--reportDir` — Path where reports will be stored
12
+ - `--screenDir` — Path where reference images are located
package/docs/config.md CHANGED
@@ -1,215 +1,226 @@
1
- ## Config/Options
1
+ # Creevey Configuration Examples
2
2
 
3
- ### CLI Options
3
+ Creevey is highly configurable and can be tailored to your specific needs. Here are some examples of how to configure Creevey for your Storybook.
4
4
 
5
- - `--config` — Specify path to config file. Default `.creevey/config.js` or `creevey.config.js`
6
- - `--ui` — Start runner web server
7
- - `--update` — Approve all images from `report` directory
8
- - `--port` — Specify port for web server. Default `3000`
9
- - `--reportDir` — Path where reports will be stored
10
- - `--screenDir` — Path where reference images are located
11
- - `--debug` — Enable debug output
5
+ ## Zero Configuration
12
6
 
13
- ### Creevey config
7
+ The simplest way to get started with Creevey, just run it without any configuration:
14
8
 
15
- In default configuration Creevey take screenshots of `#storybook-root` element only for chrome browser in one concurrent instance, to run tests in different browsers or speedup tests and run in parallel, you need to define config file `.creevey/config.js`
9
+ ```bash
10
+ yarn creevey -s
11
+ ```
12
+
13
+ This will start Creevey with default settings, using Chrome as the browser and also start Storybook hosted at `http://localhost:6006`. Adding `--ui` flag will start the web server for the UI Runner.
14
+
15
+ **NOTE** By default, Creevey uses Selenium WebDriver, but it's done for backward compatibility and it's recommended to define webdriver explicitly in the configuration.
16
16
 
17
17
  ```ts
18
- module.exports = {
19
- browsers: {
20
- chrome: {
21
- browserName: 'chrome',
22
- // Define initial viewport size
23
- viewport: { width: 1024, height: 720 },
24
- // Increase parallel sessions
25
- limit: 2,
26
- },
27
- firefox: {
28
- browserName: 'firefox',
29
- viewport: { width: 1024, height: 720 },
30
- },
31
- },
18
+ // creevey.config.ts
19
+ import { SeleniumWebdriver } from 'creevey/selenium';
20
+
21
+ const config = {
22
+ webdriver: SeleniumWebdriver,
23
+ };
24
+
25
+ // or use Playwright instead
26
+
27
+ import { PlaywrightWebdriver } from 'creevey/playwright';
28
+
29
+ const config = {
30
+ webdriver: PlaywrightWebdriver,
32
31
  };
33
32
  ```
34
33
 
35
- ### All possible config options
34
+ ## Basic Configuration
36
35
 
37
- :warning: **WARN** :warning: This config is just an example with all possible options. :warning: **WARN** :warning:
36
+ The minimal configuration to test your stories might be:
38
37
 
39
38
  ```ts
40
- const path = require('path');
39
+ // creevey.config.ts
40
+ import { CreeveyConfig } from 'creevey';
41
+ import { PlaywrightWebdriver } from 'creevey/playwright';
41
42
 
42
- module.exports = {
43
- // Specify custom Selenium Grid url (see usage below)
44
- // In most cases you don't need this option
45
- gridUrl: '<gridUrl>/wd/hub',
43
+ const config: CreeveyConfig = {
44
+ webdriver: PlaywrightWebdriver,
46
45
 
47
- // Default Storybook url
48
- storybookUrl: 'http://localhost:6006',
46
+ // The URL where your Storybook is hosted
47
+ storybookUrl: 'http://localhost:9000',
49
48
 
50
- // Command to automatically start Storybook if it is not running
51
- storybookAutorunCmd: 'yarn storybook',
49
+ // Define which browsers to use for testing
50
+ browsers: {
51
+ chromium: {
52
+ // The browser type name which will be used by Playwright
53
+ browserName: 'chromium',
54
+ // Default viewport dimensions
55
+ viewport: { width: 1024, height: 768 },
56
+ // Limit of retries for failed tests
57
+ maxRetries: 2,
58
+ },
59
+ },
60
+ };
52
61
 
53
- // Where original images are stored
54
- screenDir: path.join(__dirname, '../images'),
62
+ export default config;
63
+ ```
55
64
 
56
- // Report directory that contains data from previous runs
57
- reportDir: path.join(__dirname, '../report'),
65
+ ## Multiple Browsers Configuration
58
66
 
59
- // Pixelmatch options
60
- diffOptions: { threshold: 0.1 },
67
+ It's possible to est your stories across different browsers:
68
+
69
+ ```ts
70
+ // creevey.config.ts
71
+ import { CreeveyConfig } from 'creevey';
72
+ import { PlaywrightWebdriver } from 'creevey/playwright';
61
73
 
62
- // How many times test should be retried before to consider it as failed
63
- maxRetries: 2,
74
+ const config: CreeveyConfig = {
75
+ webdriver: PlaywrightWebdriver,
64
76
 
65
- // Describe browsers and their options
66
77
  browsers: {
67
- // Shorthand declarations of browsers
68
- chrome: true,
69
- ff: 'firefox',
70
-
71
- otherChrome: {
72
- browserName: 'chrome',
73
- // Define initial viewport size
74
- viewport: { width: 1024, height: 720 },
75
- // Increase parallel sessions
78
+ chromium: {
79
+ browserName: 'chromium',
80
+ // Amount of parallel browser sessions
76
81
  limit: 2,
77
- /* Also you can define any browser capabilities here */
78
- version: '86.0',
79
- // It's possible to set Storybook's globals
80
- // https://github.com/storybookjs/storybook/blob/v6.0.0/docs/essentials/toolbars-and-globals.md
81
- // NOTE: This is an experimental feature and will be replaced in future
82
- _storybookGlobals: {
83
- myTheme: 'dark',
84
- },
85
82
  },
86
-
87
- // You can override some global options for specific browser
88
- ie11: {
89
- browserName: 'internet explorer',
90
- // Like user another Selenium Grid url
91
- gridUrl: '<anotherGridUrl>/wd/hub',
92
- // Or use different storybook instance
93
- storybookUrl: 'http://mystoryhost:6007',
94
- // And use you own docker image
95
- // By default Creevey will use selenoid image according browser name and version:
96
- // `selenoid/${browserName}:${version ?? 'latest'}` image
97
- dockerImage: 'microsoft/ie:11.0',
83
+ firefox: {
84
+ browserName: 'firefox',
85
+ limit: 2,
98
86
  },
99
87
  },
88
+ };
89
+
90
+ export default config;
91
+ ```
92
+
93
+ ## Test stories with different themes
94
+
95
+ Test your components with different themes:
100
96
 
101
- // You may want to do something before tests started (for example start browserstack-local)
102
- hooks: {
103
- async before() {
104
- /* ... */
97
+ ```ts
98
+ // creevey.config.ts
99
+ import { CreeveyConfig } from 'creevey';
100
+ import { PlaywrightWebdriver } from 'creevey/playwright';
101
+
102
+ const config: CreeveyConfig = {
103
+ webdriver: PlaywrightWebdriver,
104
+ browsers: {
105
+ dark: {
106
+ browserName: 'chromium',
107
+ // Define a storybook globals which will be applied to the stories
108
+ _storybookGlobals: {
109
+ theme: 'dark',
110
+ },
105
111
  },
106
- async after() {
107
- /* ... */
112
+ light: {
113
+ browserName: 'chromium',
114
+ _storybookGlobals: {
115
+ theme: 'light',
116
+ },
108
117
  },
109
118
  },
110
119
  };
120
+
121
+ export default config;
111
122
  ```
112
123
 
113
- ### Storybook parameters
124
+ ## Using dedicated Selenium Grid server
114
125
 
115
- Also you could define parameters on `global`, `kind` or `story` levels. All these parameters are deeply merged by Storybook for each story. But bear in mind when you define skip option as an array Storybook treats it as primitive value and doesn't merge with other skip options.
126
+ Use Selenium Grid for distributed testing:
116
127
 
117
- ```tsx
118
- // .storybook/preview.tsx
119
- export const parameters = {
120
- creevey: {
121
- // Skip all *hover tests in IE11 on the global level
122
- skip: {
123
- "hovers don't work in ie11": { in: 'ie11', tests: /.*hover$/ },
128
+ ```ts
129
+ // creevey.config.ts
130
+ import { CreeveyConfig } from 'creevey';
131
+ import { SeleniumWebdriver } from 'creevey/selenium';
132
+
133
+ const config: CreeveyConfig = {
134
+ webdriver: SeleniumWebdriver,
135
+ // Selenium Grid connection settings
136
+ gridUrl: 'http://selenium-hub:4444/wd/hub',
137
+ browsers: {
138
+ chrome: {
139
+ browserName: 'chrome',
140
+ // You can define any additional selenium capabilities here
141
+ // https://w3c.github.io/webdriver/#capabilities
142
+ seleniumCapabilities: {
143
+ browserVersion: '128.0',
144
+ platformName: 'linux',
145
+ },
124
146
  },
125
147
  },
126
148
  };
149
+
150
+ export default config;
127
151
  ```
128
152
 
129
- ```tsx
130
- import React from 'react';
131
- import { Meta, Story } from '@storybook/react';
132
- import { CreeveyMeta, CreeveyStory } from 'creevey';
133
- import MyComponent from './src/components/MyComponent';
134
-
135
- export default {
136
- title: 'MyComponent'
137
- parameters: {
138
- creevey: {
139
- // You could skip some browsers/stories or even specific tests
140
- skip: {
141
- "`MyComponent` doesn't support ie11": { in: 'ie11' },
142
- "Loading stories are flaky in firefox": { in: 'firefox', stories: 'Loading' },
143
- "`MyComponent` hovering doesn't work correctly": {
144
- in: ['firefox', 'chrome'],
145
- tests: /.*hover$/,
146
- },
153
+ ## Playwright configuration options
154
+
155
+ Leverage Playwright for testing:
156
+
157
+ ```ts
158
+ // creevey.config.ts
159
+ import { CreeveyConfig } from 'creevey';
160
+ import { PlaywrightWebdriver } from 'creevey/playwright';
161
+
162
+ const config: CreeveyConfig = {
163
+ webdriver: PlaywrightWebdriver,
164
+ browsers: {
165
+ chromium: {
166
+ browserName: 'chromium',
167
+ // Playwright-specific options
168
+ // https://playwright.dev/docs/api/class-browsertype#browser-type-launch-server
169
+ playwrightOptions: {
170
+ headless: false,
171
+ channel: 'chrome-canary',
172
+ slowMo: 50, // Slow down Playwright operations by 50ms
147
173
  },
148
174
  },
149
175
  },
150
- } as Meta & CreeveyMeta;
151
-
152
- export const Basic: Story & CreeveyStory = () => <MyComponent />;
153
- Basic.parameters = {
154
- creevey: {
155
- captureElement: '.container',
156
- // elements to ignore in capturing screenshot
157
- ignoreElements: ['button', '.local-time'],
158
- // Delay before test starts in ms
159
- delay: 1000,
160
- tests: {
161
- /* ... */
162
- },
163
- },
164
176
  };
177
+
178
+ export default config;
165
179
  ```
166
180
 
167
- ### `skip` option examples:
181
+ ## Advanced Configuration
182
+
183
+ Comprehensive example combining multiple features and additional options:
168
184
 
169
185
  ```ts
170
- interface SkipOption {
171
- in?: string | string[] | RegExp;
172
- kinds?: string | string[] | RegExp;
173
- stories?: string | string[] | RegExp;
174
- tests?: string | string[] | RegExp;
175
- }
176
-
177
- type SkipOptions = boolean | string | Record<string, SkipOption | SkipOption[]>;
178
- ```
186
+ // creevey.config.ts
187
+ import path from 'path';
188
+ import MochaJUnitReporter from 'mocha-junit-reporter';
189
+ import { CreeveyConfig } from 'creevey';
190
+ import { PlaywrightWebdriver } from 'creevey/playwright';
191
+
192
+ const config: CreeveyConfig = {
193
+ webdriver: PlaywrightWebdriver,
194
+
195
+ // It's possible to resolve Storybook URL at the runtime
196
+ resolveStorybookUrl: () =>
197
+ fetch('https://example.com/resolve-ip')
198
+ .then((res) => res.text())
199
+ .then((data) => `http://${data}:6006`),
200
+
201
+ // Define custom reference screenshots directory
202
+ screenDir: path.join(process.cwd(), 'screenshots'),
203
+
204
+ // Define custom report directory
205
+ reportDir: path.join(process.cwd(), 'reports'),
206
+
207
+ // Define path where Creevey tests are located
208
+ testDir: path.join(process.cwd(), 'tests'),
209
+
210
+ // You can use any Mocha-like reporter
211
+ reporter: MochaJUnitReporter,
179
212
 
180
- - Skip all stories for all browsers:
181
- - `skip: true`
182
- - `skip: 'Skip reason message'`
183
- - `skip: { 'Skip reason message': true }`
184
- - Skip all stories for specific browsers:
185
- - `skip: { 'Skip reason message': { in: 'ie11' } }`
186
- - `skip: { 'Skip reason message': { in: ['ie11', 'chrome'] } }`
187
- - `skip: { 'Skip reason message': { in: /^fire.*/ } }`
188
- - Skip all stories in specific kinds:
189
- - `skip: { 'Skip reason message': { kinds: 'Button' } }`
190
- - `skip: { 'Skip reason message': { kinds: ['Button', 'Input'] } }`
191
- - `skip: { 'Skip reason message': { kinds: /.*Modal$/ } }`
192
- - Skip all tests in specific stories:
193
- - `skip: { 'Skip reason message': { stories: 'simple' } }`
194
- - `skip: { 'Skip reason message': { stories: ['simple', 'special'] } }`
195
- - `skip: { 'Skip reason message': { stories: /.*large$/ } }`
196
- - Skip specific tests:
197
- - `skip: { 'Skip reason message': { tests: 'click' } }`
198
- - `skip: { 'Skip reason message': { tests: ['hover', 'click'] } }`
199
- - `skip: { 'Skip reason message': { tests: /^press.*$/ } }`
200
- - Multiple skip options:
201
- - for one reason
202
- ```
203
- skip: {
204
- "reason": [{ /* ... */ }, { /* ... */ }],
205
- }
206
- ```
207
- - for several reasons
208
- ```
209
- skip: {
210
- "reason 1": { /* ... */ },
211
- "reason 2": { /* ... */ },
212
- }
213
- ```
214
-
215
- NOTE: If you try to skip stories by story name, the storybook name format will be used (For more info see [storybook-export-vs-name-handling](https://storybook.js.org/docs/formats/component-story-format/#storybook-export-vs-name-handling))
213
+ // Pixelmatch options
214
+ diffOptions: { threshold: 0.1 },
215
+
216
+ // Regex pattern to match test files
217
+ testsRegex: /\.creevey\.ts$/,
218
+
219
+ // Disable using docker, to start browsers locally, it's useful for CI
220
+ useDocker: process.env.CI,
221
+
222
+ browsers: {
223
+ /* ... */
224
+ },
225
+ };
226
+ ```