creevey 0.10.0-beta.30 → 0.10.0-beta.32

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 (52) hide show
  1. package/dist/client/shared/components/ResultsPage.d.ts +1 -1
  2. package/dist/client/web/CreeveyApp.js +1 -0
  3. package/dist/client/web/CreeveyApp.js.map +1 -1
  4. package/dist/client/web/assets/{index-C5QCFtF-.js → index-Cs8IUTQs.js} +84 -84
  5. package/dist/client/web/index.html +1 -1
  6. package/dist/server/docker.d.ts +1 -1
  7. package/dist/server/docker.js +21 -4
  8. package/dist/server/docker.js.map +1 -1
  9. package/dist/server/index.js +9 -10
  10. package/dist/server/index.js.map +1 -1
  11. package/dist/server/master/start.js +1 -1
  12. package/dist/server/master/start.js.map +1 -1
  13. package/dist/server/playwright/docker-file.d.ts +1 -2
  14. package/dist/server/playwright/docker-file.js +10 -4
  15. package/dist/server/playwright/docker-file.js.map +1 -1
  16. package/dist/server/playwright/docker.d.ts +2 -1
  17. package/dist/server/playwright/docker.js +10 -2
  18. package/dist/server/playwright/docker.js.map +1 -1
  19. package/dist/server/playwright/internal.d.ts +3 -4
  20. package/dist/server/playwright/internal.js +48 -37
  21. package/dist/server/playwright/internal.js.map +1 -1
  22. package/dist/server/playwright/webdriver.js +1 -7
  23. package/dist/server/playwright/webdriver.js.map +1 -1
  24. package/dist/server/selenium/internal.js +5 -12
  25. package/dist/server/selenium/internal.js.map +1 -1
  26. package/dist/server/selenium/webdriver.js +0 -7
  27. package/dist/server/selenium/webdriver.js.map +1 -1
  28. package/dist/server/telemetry.js +2 -2
  29. package/dist/server/utils.d.ts +1 -2
  30. package/dist/server/utils.js +11 -8
  31. package/dist/server/utils.js.map +1 -1
  32. package/dist/server/webdriver.d.ts +2 -0
  33. package/dist/server/webdriver.js +13 -1
  34. package/dist/server/webdriver.js.map +1 -1
  35. package/dist/types.d.ts +0 -2
  36. package/dist/types.js.map +1 -1
  37. package/package.json +3 -3
  38. package/src/client/web/CreeveyApp.tsx +1 -0
  39. package/src/server/docker.ts +24 -4
  40. package/src/server/index.ts +11 -14
  41. package/src/server/master/start.ts +1 -1
  42. package/src/server/playwright/docker-file.ts +12 -5
  43. package/src/server/playwright/docker.ts +16 -3
  44. package/src/server/playwright/index-source.mjs +16 -0
  45. package/src/server/playwright/internal.ts +78 -52
  46. package/src/server/playwright/webdriver.ts +1 -7
  47. package/src/server/selenium/internal.ts +5 -12
  48. package/src/server/selenium/webdriver.ts +0 -7
  49. package/src/server/telemetry.ts +2 -2
  50. package/src/server/utils.ts +33 -25
  51. package/src/server/webdriver.ts +13 -0
  52. package/src/types.ts +0 -2
@@ -20,7 +20,7 @@
20
20
  sans-serif;
21
21
  }
22
22
  </style>
23
- <script type="module" crossorigin src="./assets/index-C5QCFtF-.js"></script>
23
+ <script type="module" crossorigin src="./assets/index-Cs8IUTQs.js"></script>
24
24
  </head>
25
25
  <body>
26
26
  <div id="root"></div>
@@ -3,5 +3,5 @@ export declare function pullImages(images: string[], { auth, platform }?: {
3
3
  auth?: DockerAuth;
4
4
  platform?: string;
5
5
  }): Promise<void>;
6
- export declare function buildImage(imageName: string, dockerfile: string): Promise<void>;
6
+ export declare function buildImage(imageName: string, version: string, dockerfile: string): Promise<void>;
7
7
  export declare function runImage(image: string, args: string[], options: Record<string, unknown>, debug: boolean): Promise<string>;
@@ -12,6 +12,7 @@ const stream_1 = require("stream");
12
12
  const dockerode_1 = __importDefault(require("dockerode"));
13
13
  const messages_js_1 = require("./messages.js");
14
14
  const logger_js_1 = require("./logger.js");
15
+ const webdriver_js_1 = require("./webdriver.js");
15
16
  const docker = new dockerode_1.default();
16
17
  class DevNull extends stream_1.Writable {
17
18
  _write(_chunk, _encoding, callback) {
@@ -55,10 +56,11 @@ async function pullImages(images, { auth, platform } = {}) {
55
56
  });
56
57
  }
57
58
  }
58
- async function buildImage(imageName, dockerfile) {
59
+ async function buildImage(imageName, version, dockerfile) {
59
60
  const images = await docker.listImages({ filters: { label: [`creevey=${imageName}`] } });
60
- if (images.at(0)) {
61
- await Promise.all((await docker.listContainers({ all: true, filters: { label: [`creevey=${imageName}`] } })).map(async (info) => {
61
+ const containers = await docker.listContainers({ all: true, filters: { label: [`creevey=${imageName}`] } });
62
+ if (containers.length > 0) {
63
+ await Promise.all(containers.map(async (info) => {
62
64
  const container = docker.getContainer(info.Id);
63
65
  try {
64
66
  await container.remove({ force: true });
@@ -67,6 +69,20 @@ async function buildImage(imageName, dockerfile) {
67
69
  /* noop */
68
70
  }
69
71
  }));
72
+ }
73
+ const oldImages = images.filter((info) => info.Labels.version !== version);
74
+ if (oldImages.length > 0) {
75
+ await Promise.all(oldImages.map(async (info) => {
76
+ const image = docker.getImage(info.Id);
77
+ try {
78
+ await image.remove({ force: true });
79
+ }
80
+ catch {
81
+ /* noop */
82
+ }
83
+ }));
84
+ }
85
+ if (oldImages.length !== images.length) {
70
86
  (0, logger_js_1.logger)().info(`Image ${imageName} already exists`);
71
87
  return;
72
88
  }
@@ -84,7 +100,7 @@ async function buildImage(imageName, dockerfile) {
84
100
  // @ts-expect-error Type incompatibility AsyncIterator and AsyncIterableIterator
85
101
  pack,
86
102
  // TODO Support buildkit decode grpc (version: '2')
87
- { t: imageName, labels: { creevey: imageName }, version: '1' }, (buildError, stream) => {
103
+ { t: imageName, labels: { creevey: imageName, version }, version: '1' }, (buildError, stream) => {
88
104
  if (buildError || !stream) {
89
105
  // spinner.error(buildError?.message);
90
106
  reject(buildError ?? new Error('Unknown error'));
@@ -130,6 +146,7 @@ async function runImage(image, args, options, debug) {
130
146
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
131
147
  (0, messages_js_1.subscribeOn)('shutdown', async () => {
132
148
  try {
149
+ await Promise.race([(0, webdriver_js_1.waitForBrowserClose)(), new Promise((resolve) => setTimeout(resolve, 2_000))]);
133
150
  await container.remove({ force: true });
134
151
  }
135
152
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/server/docker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/server/docker.ts"],"names":[],"mappings":"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"}
@@ -12,13 +12,13 @@ const commands_1 = require("package-manager-detector/commands");
12
12
  const config_js_1 = require("./config.js");
13
13
  const types_js_1 = require("../types.js");
14
14
  const logger_js_1 = require("./logger.js");
15
+ const connection_js_1 = require("./connection.js");
15
16
  const webdriver_js_1 = require("./selenium/webdriver.js");
16
17
  const webdriver_js_2 = require("./webdriver.js");
17
18
  const utils_js_1 = require("./utils.js");
18
19
  const messages_js_1 = require("./messages.js");
19
20
  const docker_js_1 = require("./docker.js");
20
21
  const promises_1 = require("fs/promises");
21
- const connection_js_1 = require("./connection.js");
22
22
  const assert_1 = __importDefault(require("assert"));
23
23
  async function startWebdriverServer(browser, config, options) {
24
24
  if (config.webdriver === webdriver_js_1.SeleniumWebdriver) {
@@ -41,7 +41,7 @@ async function startWebdriverServer(browser, config, options) {
41
41
  if (cluster_1.default.isPrimary)
42
42
  return undefined;
43
43
  const { browserName } = config.browsers[browser];
44
- return `creevey://${(0, utils_js_1.resolvePlaywrightBrowserType)(browserName)}.playwright`;
44
+ return `creevey://${(0, utils_js_1.resolvePlaywrightBrowserType)(browserName)}`;
45
45
  }
46
46
  const { default: { version }, } = await import('playwright-core/package.json', { with: { type: 'json' } });
47
47
  if (cluster_1.default.isWorker) {
@@ -49,18 +49,17 @@ async function startWebdriverServer(browser, config, options) {
49
49
  const { startPlaywrightContainer } = await import('./playwright/docker.js');
50
50
  const { browserName } = config.browsers[browser];
51
51
  const imageName = `creevey/${browserName}:v${version}`;
52
- const host = await startPlaywrightContainer(imageName, options.debug);
52
+ const host = await startPlaywrightContainer(imageName, browser, config, options.debug);
53
53
  return host;
54
54
  }
55
55
  else {
56
56
  const { playwrightDockerFile } = await import('./playwright/docker-file.js');
57
- const browsers = [
58
- ...new Set(Object.values(config.browsers).map((c) => [c.browserName, c.playwrightOptions])),
59
- ];
60
- await Promise.all(browsers.map(async ([browserName, launchOptions]) => {
57
+ const { default: { version: creeveyVersion }, } = await import('../../package.json', { with: { type: 'json' } });
58
+ const browsers = [...new Set(Object.values(config.browsers).map((c) => c.browserName))];
59
+ await Promise.all(browsers.map(async (browserName) => {
61
60
  const imageName = `creevey/${browserName}:v${version}`;
62
- const dockerfile = playwrightDockerFile(browserName, version, launchOptions);
63
- await (0, docker_js_1.buildImage)(imageName, dockerfile);
61
+ const dockerfile = await playwrightDockerFile(browserName, version);
62
+ await (0, docker_js_1.buildImage)(imageName, creeveyVersion, dockerfile);
64
63
  }));
65
64
  const { default: getPort } = await import('get-port');
66
65
  cluster_1.default.on('message', (worker, message) => {
@@ -93,7 +92,7 @@ async function default_1(options) {
93
92
  !update) {
94
93
  gridUrl = await startWebdriverServer(browser, config, options);
95
94
  }
96
- if (cluster_1.default.isPrimary) {
95
+ if (cluster_1.default.isPrimary && process.env.CI !== 'true') {
97
96
  const [localUrl, remoteUrl] = (0, connection_js_1.getStorybookUrl)(config, options);
98
97
  const pm = (0, detect_1.getUserAgent)();
99
98
  (0, assert_1.default)(pm, new Error('Failed to detect current package manager'));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":";;;;;AA4FA,4BA2FC;AAvLD,sDAA8B;AAC9B,gDAAwB;AACxB,qCAA+B;AAC/B,4DAA+D;AAC/D,gEAAmE;AACnE,2CAAyD;AACzD,0CAAoF;AACpF,2CAAqC;AACrC,0DAA4D;AAC5D,iDAAkD;AAClD,yCAAuG;AACvG,+CAA+D;AAC/D,2CAAyC;AACzC,0CAA+C;AAC/C,mDAA6E;AAC7E,oDAA4B;AAE5B,KAAK,UAAU,oBAAoB,CAAC,OAAe,EAAE,MAAc,EAAE,OAAgB;IACnF,IAAI,MAAM,CAAC,SAAS,KAAK,gCAAiB,EAAE,CAAC;QAC3C,IAAI,iBAAO,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;YACnG,MAAM,OAAO,GAAG,8BAA8B,CAAC;YAC/C,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrB,MAAM,IAAI,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;gBACjE,OAAO,yBAAc,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,+BAAgB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC5E,CAAC;YACD,MAAM,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YACrD,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,qFAAqF;IACvF,CAAC;SAAM,CAAC;QACN,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAErC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACtB,IAAI,iBAAO,CAAC,SAAS;gBAAE,OAAO,SAAS,CAAC;YAExC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAwB,CAAC;YACxE,OAAO,aAAa,IAAA,uCAA4B,EAAC,WAAW,CAAC,aAAa,CAAC;QAC7E,CAAC;QAED,MAAM,EACJ,OAAO,EAAE,EAAE,OAAO,EAAE,GACrB,GAAG,MAAM,MAAM,CAAC,8BAA8B,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAE7E,IAAI,iBAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,0BAA0B;YAC1B,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;YAC5E,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAwB,CAAC;YAExE,MAAM,SAAS,GAAG,WAAW,WAAW,KAAK,OAAO,EAAE,CAAC;YACvD,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YAEtE,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;YAC7E,MAAM,QAAQ,GAAG;gBACf,GAAG,IAAI,GAAG,CACR,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAChC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAE,CAAyB,CAAC,WAAW,EAAG,CAAyB,CAAC,iBAAiB,CAAU,CACvG,CACF;aACF,CAAC;YACF,MAAM,OAAO,CAAC,GAAG,CACf,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,EAAE;gBAClD,MAAM,SAAS,GAAG,WAAW,WAAW,KAAK,OAAO,EAAE,CAAC;gBACvD,MAAM,UAAU,GAAG,oBAAoB,CAAC,WAAW,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;gBAE7E,MAAM,IAAA,sBAAU,EAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAC1C,CAAC,CAAC,CACH,CAAC;YAEF,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;YAEtD,iBAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,OAAgB,EAAE,EAAE;gBACjD,IAAI,CAAC,IAAA,0BAAe,EAAC,OAAO,CAAC;oBAAE,OAAO;gBAEtC,MAAM,aAAa,GAAG,OAAO,CAAC;gBAC9B,IAAI,aAAa,CAAC,IAAI,IAAI,MAAM;oBAAE,OAAO;gBAEzC,KAAK,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC3B,IAAA,+BAAiB,EAAC,MAAM,EAAE;wBACxB,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,EAAE,IAAI,EAAE;qBAClB,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QACD,sCAAsC;QACtC,kDAAkD;IACpD,CAAC;AACH,CAAC;AAEc,KAAK,oBAAW,OAAgB;IAC7C,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAU,EAAC,OAAO,CAAC,CAAC;IACzC,MAAM,EAAE,OAAO,GAAG,0BAAc,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAC/D,IAAI,OAAO,GAAG,iBAAO,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAEnE,mGAAmG;IACnG,MAAM,IAAA,gBAAK,EAAC,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,MAAM,IAAA,oBAAS,EAAC,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,sBAAsB,CAAC,CAAC;IAErF,4DAA4D;IAC5D,IACE,CAAC,CAAC,OAAO,IAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAA2B,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;QACvG,CAAC,MAAM,EACP,CAAC;QACD,OAAO,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,iBAAO,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,IAAA,+BAAe,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/D,MAAM,EAAE,GAAG,IAAA,qBAAY,GAAE,CAAC;QAC1B,IAAA,gBAAM,EAAC,EAAE,EAAE,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAC;QAClE,oEAAoE;QACpE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAA,yBAAc,EAAC,EAAE,EAAE,KAAK,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAE,CAAC;QAE3E,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;YAC7C,MAAM,gBAAgB,GAAG,GAAG,MAAM,CAAC,mBAAmB,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,aAAa,EAAE,CAAC;YAErH,IAAA,kBAAM,GAAE,CAAC,IAAI,CAAC,yBAAyB,gBAAgB,iCAAiC,CAAC,CAAC;YAC1F,IAAA,kBAAM,GAAE,CAAC,IAAI,CAAC,WAAW,QAAQ,EAAE,CAAC,CAAC;YACrC,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS;gBAAE,IAAA,kBAAM,GAAE,CAAC,IAAI,CAAC,qBAAqB,SAAS,EAAE,CAAC,CAAC;YACxF,IAAA,kBAAM,GAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAEtC,MAAM,SAAS,GAAG,IAAA,cAAI,EAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,IAAA,yBAAW,EAAC,UAAU,EAAE,GAAG,EAAE;gBAC3B,IAAI,SAAS,CAAC,GAAG;oBAAE,KAAK,IAAA,mBAAQ,EAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAA,kBAAM,GAAE,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;YACnE,IAAA,kBAAM,GAAE,CAAC,IAAI,CAAC,WAAW,QAAQ,EAAE,CAAC,CAAC;YACrC,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS;gBAAE,IAAA,kBAAM,GAAE,CAAC,IAAI,CAAC,qBAAqB,SAAS,EAAE,CAAC,CAAC;YACxF,IAAA,kBAAM,GAAE,CAAC,IAAI,CACX,0HAA0H,CAC3H,CAAC;YACF,IAAA,kBAAM,GAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAA,yCAAyB,EAAC,QAAQ,CAAC,CAAC;QAC9D,IAAI,WAAW,EAAE,CAAC;YAChB,IAAA,kBAAM,GAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,IAAA,kBAAM,GAAE,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;YAC1F,IAAA,4BAAiB,GAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC7F,OAAO;QACT,CAAC;QACD,KAAK,iBAAO,CAAC,SAAS,CAAC,CAAC,CAAC;YACvB,IAAI,MAAM,CAAC,SAAS,KAAK,gCAAiB,EAAE,CAAC;gBAC3C,IAAI,CAAC;oBACH,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;gBACrC,CAAC;gBAAC,MAAM,CAAC;oBACP,IAAA,kBAAM,GAAE,CAAC,KAAK,CAAC,4EAA4E,CAAC,CAAC;oBAC7F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC;oBACH,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;gBAClC,CAAC;gBAAC,MAAM,CAAC;oBACP,IAAA,kBAAM,GAAE,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;oBAC1F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;YACD,IAAA,kBAAM,GAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YAEzC,MAAM,UAAU,GAAG,CAAC,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAE1F,OAAO,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QACzF,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,IAAA,kBAAM,GAAE,CAAC,IAAI,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAC;YAEhD,+DAA+D;YAC/D,oEAAoE;YACpE,OAAO,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,OAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
@@ -99,7 +99,7 @@ async function start(gridUrl, config, options, resolveApi) {
99
99
  })
100
100
  .finally(() => {
101
101
  // NOTE: Take some time to kill processes
102
- void (0, utils_js_1.shutdownWorkers)().then(() => setTimeout(() => process.exit(), 500));
102
+ void (0, utils_js_1.shutdownWorkers)().then(() => setTimeout(() => process.exit(), 1_000));
103
103
  });
104
104
  });
105
105
  // TODO grep
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/server/master/start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/server/master/start.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1 @@
1
- import { LaunchOptions } from 'playwright-core';
2
- export declare function playwrightDockerFile(browser: string, version: string, serverOptions?: LaunchOptions): string;
1
+ export declare function playwrightDockerFile(browser: string, version: string): Promise<string>;
@@ -4,11 +4,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.playwrightDockerFile = playwrightDockerFile;
7
+ const promises_1 = require("fs/promises");
8
+ const url_1 = require("url");
7
9
  const semver_1 = __importDefault(require("semver"));
8
10
  const shelljs_1 = require("shelljs");
9
- const utils_1 = require("../utils");
11
+ const importMetaUrl = (0, url_1.pathToFileURL)(__filename).href;
10
12
  // TODO Support custom docker images
11
- function playwrightDockerFile(browser, version, serverOptions) {
13
+ async function playwrightDockerFile(browser, version) {
12
14
  const sv = semver_1.default.coerce(version);
13
15
  let npmRegistry;
14
16
  try {
@@ -17,14 +19,18 @@ function playwrightDockerFile(browser, version, serverOptions) {
17
19
  catch {
18
20
  /* noop */
19
21
  }
22
+ const indexJs = await (0, promises_1.readFile)(new URL('./index-source.mjs', importMetaUrl), 'utf-8');
20
23
  return `
21
24
  FROM node:lts
22
25
 
23
26
  WORKDIR /creevey
24
27
 
25
28
  RUN echo "{ \\"type\\": \\"module\\" }" > package.json && \\
26
- echo "import { ${(0, utils_1.resolvePlaywrightBrowserType)(browser)} as browser } from 'playwright-core';" >> index.js && \\
27
- echo "const ws = await browser.launchServer({ ...${JSON.stringify(serverOptions)}, port: 4444, wsPath: 'creevey' })" >> index.js && \\${npmRegistry
29
+ ${indexJs
30
+ .split('\n')
31
+ .map((line) => `echo "${line.replace(/"/g, '\\"')}" >> index.js && \\`)
32
+ .join('\n')}
33
+ ${npmRegistry
28
34
  ? `
29
35
  echo "registry=${npmRegistry}" > .npmrc && \\`
30
36
  : ''}
@@ -1 +1 @@
1
- {"version":3,"file":"docker-file.js","sourceRoot":"","sources":["../../../src/server/playwright/docker-file.ts"],"names":[],"mappings":";;;;;AAMA,oDA8BC;AApCD,oDAA4B;AAC5B,qCAA+B;AAE/B,oCAAwD;AAExD,oCAAoC;AACpC,SAAgB,oBAAoB,CAAC,OAAe,EAAE,OAAe,EAAE,aAA6B;IAClG,MAAM,EAAE,GAAG,gBAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAElC,IAAI,WAAW,CAAC;IAChB,IAAI,CAAC;QACH,WAAW,GAAG,IAAA,cAAI,EAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAChF,CAAC;IAAC,MAAM,CAAC;QACP,UAAU;IACZ,CAAC;IAED,OAAO;;;;;;qBAMY,IAAA,oCAA4B,EAAC,OAAO,CAAC;uDACH,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,wDAC9E,WAAW;QACT,CAAC,CAAC;qBACW,WAAW,kBAAkB;QAC1C,CAAC,CAAC,EACN;2BACuB,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;uBAC/B,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,wBAAwB,OAAO;;;;;CAKhF,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"docker-file.js","sourceRoot":"","sources":["../../../src/server/playwright/docker-file.ts"],"names":[],"mappings":";;;;;AAQA,oDAmCC;AA3CD,0CAAuC;AACvC,6BAAoC;AACpC,oDAA4B;AAC5B,qCAA+B;AAE/B,MAAM,aAAa,GAAG,IAAA,mBAAa,EAAC,UAAU,CAAC,CAAC,IAAI,CAAC;AAErD,oCAAoC;AAC7B,KAAK,UAAU,oBAAoB,CAAC,OAAe,EAAE,OAAe;IACzE,MAAM,EAAE,GAAG,gBAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAElC,IAAI,WAAW,CAAC;IAChB,IAAI,CAAC;QACH,WAAW,GAAG,IAAA,cAAI,EAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAChF,CAAC;IAAC,MAAM,CAAC;QACP,UAAU;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,IAAA,mBAAQ,EAAC,IAAI,GAAG,CAAC,oBAAoB,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC;IAEtF,OAAO;;;;;;MAMH,OAAO;SACN,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,qBAAqB,CAAC;SACtE,IAAI,CAAC,IAAI,CAAC;MAEX,WAAW;QACT,CAAC,CAAC;qBACW,WAAW,kBAAkB;QAC1C,CAAC,CAAC,EACN;2BACuB,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;uBAC/B,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,wBAAwB,OAAO;;;;;CAKhF,CAAC;AACF,CAAC"}
@@ -1 +1,2 @@
1
- export declare function startPlaywrightContainer(imageName: string, debug: boolean): Promise<string>;
1
+ import type { Config } from '../../types';
2
+ export declare function startPlaywrightContainer(imageName: string, browser: string, config: Config, debug: boolean): Promise<string>;
@@ -1,11 +1,16 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.startPlaywrightContainer = startPlaywrightContainer;
7
+ const assert_1 = __importDefault(require("assert"));
4
8
  const docker_1 = require("../docker");
5
9
  const messages_1 = require("../messages");
6
10
  const utils_1 = require("../utils");
7
11
  const webdriver_1 = require("../webdriver");
8
- async function startPlaywrightContainer(imageName, debug) {
12
+ async function startPlaywrightContainer(imageName, browser, config, debug) {
13
+ const { browserName, playwrightOptions } = config.browsers[browser];
9
14
  const port = await new Promise((resolve) => {
10
15
  (0, messages_1.subscribeOn)('worker', (message) => {
11
16
  if (message.type == 'port') {
@@ -14,10 +19,13 @@ async function startPlaywrightContainer(imageName, debug) {
14
19
  });
15
20
  (0, messages_1.emitWorkerMessage)({ type: 'port', payload: { port: -1 } });
16
21
  });
17
- const host = await (0, docker_1.runImage)(imageName, [], {
22
+ const cacheDir = await (0, utils_1.getCreeveyCache)();
23
+ (0, assert_1.default)(cacheDir, "Couldn't get cache directory");
24
+ const host = await (0, docker_1.runImage)(imageName, [JSON.stringify({ ...playwrightOptions, browser: (0, utils_1.resolvePlaywrightBrowserType)(browserName) })], {
18
25
  ExposedPorts: { [`${port}/tcp`]: {} },
19
26
  HostConfig: {
20
27
  PortBindings: { ['4444/tcp']: [{ HostPort: `${port}` }] },
28
+ Binds: [`${cacheDir}/${process.pid}:/creevey/traces`],
21
29
  },
22
30
  }, debug);
23
31
  const gridUrl = `ws://localhost:${port}/creevey`;
@@ -1 +1 @@
1
- {"version":3,"file":"docker.js","sourceRoot":"","sources":["../../../src/server/playwright/docker.ts"],"names":[],"mappings":";;AAKA,4DAyBC;AA9BD,sCAAqC;AACrC,0CAA6D;AAC7D,oCAA0C;AAC1C,4CAAgD;AAEzC,KAAK,UAAU,wBAAwB,CAAC,SAAiB,EAAE,KAAc;IAC9E,MAAM,IAAI,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;QACjD,IAAA,sBAAW,EAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE;YAChC,IAAI,OAAO,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC;gBAC3B,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAA,4BAAiB,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,IAAA,iBAAQ,EACzB,SAAS,EACT,EAAE,EACF;QACE,YAAY,EAAE,EAAE,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,EAAE,EAAE;QACrC,UAAU,EAAE;YACV,YAAY,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;SAC1D;KACF,EACD,KAAK,CACN,CAAC;IAEF,MAAM,OAAO,GAAG,kBAAkB,IAAI,UAAU,CAAC;IAEjD,OAAO,sBAAc,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,4BAAgB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAC5E,CAAC"}
1
+ {"version":3,"file":"docker.js","sourceRoot":"","sources":["../../../src/server/playwright/docker.ts"],"names":[],"mappings":";;;;;AAOA,4DAoCC;AA3CD,oDAA4B;AAC5B,sCAAqC;AACrC,0CAA6D;AAC7D,oCAAyF;AACzF,4CAAgD;AAGzC,KAAK,UAAU,wBAAwB,CAC5C,SAAiB,EACjB,OAAe,EACf,MAAc,EACd,KAAc;IAEd,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAwB,CAAC;IAC3F,MAAM,IAAI,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;QACjD,IAAA,sBAAW,EAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE;YAChC,IAAI,OAAO,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC;gBAC3B,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAA,4BAAiB,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAe,GAAE,CAAC;IAEzC,IAAA,gBAAM,EAAC,QAAQ,EAAE,8BAA8B,CAAC,CAAC;IAEjD,MAAM,IAAI,GAAG,MAAM,IAAA,iBAAQ,EACzB,SAAS,EACT,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,iBAAiB,EAAE,OAAO,EAAE,IAAA,oCAA4B,EAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAC9F;QACE,YAAY,EAAE,EAAE,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,EAAE,EAAE;QACrC,UAAU,EAAE;YACV,YAAY,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YACzD,KAAK,EAAE,CAAC,GAAG,QAAQ,IAAI,OAAO,CAAC,GAAG,kBAAkB,CAAC;SACtD;KACF,EACD,KAAK,CACN,CAAC;IAEF,MAAM,OAAO,GAAG,kBAAkB,IAAI,UAAU,CAAC;IAEjD,OAAO,sBAAc,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,4BAAgB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAC5E,CAAC"}
@@ -1,9 +1,9 @@
1
- import { Browser, Page } from 'playwright-core';
2
- import { Config, Options, StoriesRaw, StoryInput, StorybookGlobals } from '../../types';
1
+ import { Browser, BrowserContext, Page } from 'playwright-core';
3
2
  import type { Args } from '@storybook/csf';
3
+ import { Config, Options, StoriesRaw, StoryInput, StorybookGlobals } from '../../types';
4
4
  export declare class InternalBrowser {
5
5
  #private;
6
- constructor(browser: Browser, page: Page, port: number, storybookGlobals?: StorybookGlobals);
6
+ constructor(browser: Browser, context: BrowserContext, page: Page, traceDir: string, port: number, debug: boolean, storybookGlobals?: StorybookGlobals);
7
7
  get browser(): Page;
8
8
  get sessionId(): string;
9
9
  closeBrowser(): Promise<void>;
@@ -21,6 +21,5 @@ export declare class InternalBrowser {
21
21
  private updateStorybookGlobals;
22
22
  private resolveCreeveyHost;
23
23
  private updateBrowserGlobalVariables;
24
- private resizeViewport;
25
24
  private resetMousePosition;
26
25
  }
@@ -4,16 +4,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.InternalBrowser = void 0;
7
+ const path_1 = __importDefault(require("path"));
7
8
  const playwright_core_1 = require("playwright-core");
8
9
  const chalk_1 = __importDefault(require("chalk"));
9
10
  const uuid_1 = require("uuid");
10
11
  const loglevel_1 = __importDefault(require("loglevel"));
11
12
  const loglevel_plugin_prefix_1 = __importDefault(require("loglevel-plugin-prefix"));
12
13
  const types_1 = require("../../types");
13
- const messages_1 = require("../messages");
14
14
  const webdriver_1 = require("../webdriver");
15
15
  const utils_1 = require("../utils");
16
16
  const logger_1 = require("../logger");
17
+ const assert_1 = __importDefault(require("assert"));
17
18
  const browsers = {
18
19
  chromium: playwright_core_1.chromium,
19
20
  firefox: playwright_core_1.firefox,
@@ -51,21 +52,25 @@ async function tryConnect(type, gridUrl) {
51
52
  class InternalBrowser {
52
53
  #isShuttingDown = false;
53
54
  #browser;
55
+ #context;
54
56
  #page;
57
+ #traceDir;
55
58
  #sessionId = (0, uuid_1.v4)();
56
59
  #serverHost = null;
57
60
  #serverPort;
61
+ #debug;
58
62
  #storybookGlobals;
59
- #unsubscribe = types_1.noop;
60
- constructor(browser, page, port, storybookGlobals) {
63
+ #closeBrowser = (0, webdriver_1.openBrowser)();
64
+ constructor(browser, context, page, traceDir, port, debug, storybookGlobals) {
61
65
  this.#browser = browser;
66
+ this.#context = context;
62
67
  this.#page = page;
68
+ this.#traceDir = traceDir;
63
69
  this.#serverPort = port;
70
+ this.#debug = debug;
64
71
  this.#storybookGlobals = storybookGlobals;
65
- this.#unsubscribe = (0, messages_1.subscribeOn)('shutdown', () => {
66
- void this.closeBrowser();
67
- });
68
72
  }
73
+ // TODO Expose #browser and #context in tests
69
74
  get browser() {
70
75
  return this.#page;
71
76
  }
@@ -76,18 +81,23 @@ class InternalBrowser {
76
81
  if (this.#isShuttingDown)
77
82
  return;
78
83
  this.#isShuttingDown = true;
79
- this.#unsubscribe();
80
84
  try {
85
+ if (this.#debug)
86
+ await this.#context.tracing.stop({ path: path_1.default.join(this.#traceDir, 'trace.zip') });
81
87
  await this.#page.close();
88
+ if (this.#debug)
89
+ await this.#page.video()?.saveAs(path_1.default.join(this.#traceDir, 'video.webm'));
90
+ await this.#context.close();
82
91
  await this.#browser.close();
83
92
  }
84
- catch (_) {
93
+ catch {
85
94
  /* noop */
86
95
  }
96
+ finally {
97
+ this.#closeBrowser();
98
+ }
87
99
  }
88
100
  async takeScreenshot(captureElement, ignoreElements) {
89
- // TODO Implement features from selenium `takeScreenshot`
90
- // TODO Do we need scroll bar hack from selenium?
91
101
  const ignore = Array.isArray(ignoreElements) ? ignoreElements : ignoreElements ? [ignoreElements] : [];
92
102
  const mask = ignore.map((el) => this.#page.locator(el));
93
103
  if (captureElement) {
@@ -144,13 +154,19 @@ class InternalBrowser {
144
154
  static async getBrowser(browserName, gridUrl, config, options) {
145
155
  const browserConfig = config.browsers[browserName];
146
156
  const { storybookUrl: address = config.storybookUrl, viewport, _storybookGlobals, seleniumCapabilities, playwrightOptions, } = browserConfig;
147
- let browser = null;
148
157
  const parsedUrl = new URL(gridUrl);
158
+ const tracesDir = path_1.default.join(playwrightOptions?.tracesDir ?? path_1.default.join(config.reportDir, 'traces'), process.pid.toString());
159
+ const cacheDir = await (0, utils_1.getCreeveyCache)();
160
+ (0, assert_1.default)(cacheDir, "Couldn't get cache directory");
161
+ let browser = null;
149
162
  if (parsedUrl.protocol === 'ws:') {
150
163
  browser = await tryConnect(browsers[(0, utils_1.resolvePlaywrightBrowserType)(browserConfig.browserName)], gridUrl);
151
164
  }
152
165
  else if (parsedUrl.protocol === 'creevey:') {
153
- browser = await browsers[(0, utils_1.resolvePlaywrightBrowserType)(browserConfig.browserName)].launch(playwrightOptions);
166
+ browser = await browsers[(0, utils_1.resolvePlaywrightBrowserType)(browserConfig.browserName)].launch({
167
+ ...playwrightOptions,
168
+ tracesDir: path_1.default.join(cacheDir, `${process.pid}`),
169
+ });
154
170
  }
155
171
  else {
156
172
  if (browserConfig.browserName !== 'chrome') {
@@ -159,31 +175,36 @@ class InternalBrowser {
159
175
  }
160
176
  process.env.SELENIUM_REMOTE_URL = gridUrl;
161
177
  process.env.SELENIUM_REMOTE_CAPABILITIES = JSON.stringify(seleniumCapabilities);
162
- browser = await playwright_core_1.chromium.launch(playwrightOptions);
178
+ browser = await playwright_core_1.chromium.launch({ ...playwrightOptions, tracesDir: path_1.default.join(cacheDir, `${process.pid}`) });
163
179
  }
164
180
  if (!browser) {
165
181
  return null;
166
182
  }
167
- // TODO Record video
168
- const page = await browser.newPage();
169
- // TODO Support tracing
170
- // if (playwrightOptions?.trace) {
171
- // const context = page.context();
172
- // await context.tracing.start(playwrightOptions.trace);
173
- // }
183
+ const context = await browser.newContext({
184
+ recordVideo: options.debug
185
+ ? {
186
+ dir: path_1.default.join(cacheDir, `${process.pid}`),
187
+ size: viewport,
188
+ }
189
+ : undefined,
190
+ screen: viewport,
191
+ viewport,
192
+ });
193
+ const page = await context.newPage();
194
+ if (options.debug) {
195
+ await context.tracing.start(Object.assign({ screenshots: true, snapshots: true, sources: true }, playwrightOptions?.trace));
196
+ }
174
197
  if ((0, logger_1.logger)().getLevel() <= loglevel_1.default.levels.DEBUG) {
175
198
  page.on('console', (msg) => {
176
199
  (0, logger_1.logger)().debug(`Console message: ${msg.text()}`);
177
200
  });
178
201
  }
179
- // TODO Add debug output
180
- const internalBrowser = new InternalBrowser(browser, page, options.port, _storybookGlobals);
202
+ const internalBrowser = new InternalBrowser(browser, context, page, tracesDir, options.port, options.debug, _storybookGlobals);
181
203
  try {
182
204
  if (utils_1.isShuttingDown.current)
183
205
  return null;
184
206
  const done = await internalBrowser.init({
185
207
  browserName,
186
- viewport,
187
208
  storybookUrl: address,
188
209
  });
189
210
  return done ? internalBrowser : null;
@@ -198,7 +219,7 @@ class InternalBrowser {
198
219
  return null;
199
220
  }
200
221
  }
201
- async init({ browserName, viewport, storybookUrl, }) {
222
+ async init({ browserName, storybookUrl }) {
202
223
  const sessionId = this.#sessionId;
203
224
  loglevel_plugin_prefix_1.default.apply((0, logger_1.logger)(), {
204
225
  format(level) {
@@ -214,7 +235,6 @@ class InternalBrowser {
214
235
  () => this.updateStorybookGlobals(),
215
236
  () => this.resolveCreeveyHost(),
216
237
  () => this.updateBrowserGlobalVariables(),
217
- () => this.resizeViewport(viewport),
218
238
  ], () => !this.#isShuttingDown);
219
239
  }
220
240
  async openStorybookPage(storybookUrl) {
@@ -223,7 +243,6 @@ class InternalBrowser {
223
243
  return;
224
244
  }
225
245
  try {
226
- // TODO this.#page.setDefaultNavigationTimeout(10000);
227
246
  const resolvedUrl = await (0, webdriver_1.resolveStorybookUrl)((0, webdriver_1.appendIframePath)(storybookUrl), (url) => this.checkUrl(url));
228
247
  await this.#page.goto(resolvedUrl);
229
248
  }
@@ -249,8 +268,7 @@ class InternalBrowser {
249
268
  }
250
269
  }
251
270
  async waitForStorybook() {
252
- // TODO Duplicated code with selenium
253
- (0, logger_1.logger)().debug('Waiting for `setStories` event to make sure that storybook is initiated');
271
+ (0, logger_1.logger)().debug('Waiting for Storybook to initiate');
254
272
  const isTimeout = await Promise.race([
255
273
  new Promise((resolve) => {
256
274
  setTimeout(() => {
@@ -262,7 +280,6 @@ class InternalBrowser {
262
280
  do {
263
281
  try {
264
282
  // TODO Research a different way to ensure storybook is initiated
265
- // TODO Maybe use `__STORYBOOK_PREVIEW__.extract()`
266
283
  wait = await this.#page.evaluate((SET_GLOBALS) => {
267
284
  if (typeof window.__STORYBOOK_ADDONS_CHANNEL__ == 'undefined')
268
285
  return true;
@@ -282,10 +299,10 @@ class InternalBrowser {
282
299
  return false;
283
300
  })(),
284
301
  ]);
285
- // TODO Change the message to describe a reason why it might happen
286
302
  if (isTimeout)
287
- throw new Error('Failed to wait `setStories` event');
303
+ throw new Error('Failed to wait Storybook init');
288
304
  }
305
+ // TODO Doesn't work for some reason, maybe because of race-condition
289
306
  async triggerViteReload() {
290
307
  // NOTE: On the first load, Vite might try to optimize some dependencies and reload the page
291
308
  // We need to trigger reload earlier to avoid unnecessary reloads further
@@ -333,12 +350,6 @@ class InternalBrowser {
333
350
  window.__CREEVEY_SERVER_PORT__ = creeveyPort;
334
351
  }, [process.pid, this.#serverHost, this.#serverPort]);
335
352
  }
336
- async resizeViewport(viewport) {
337
- if (!viewport)
338
- return;
339
- (0, logger_1.logger)().debug('Resizing viewport to', viewport);
340
- await this.#page.setViewportSize(viewport);
341
- }
342
353
  async resetMousePosition() {
343
354
  (0, logger_1.logger)().debug('Resetting mouse position to (0, 0)');
344
355
  await this.#page.mouse.move(0, 0);