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.
- package/dist/client/shared/components/ResultsPage.d.ts +1 -1
- package/dist/client/web/CreeveyApp.js +1 -0
- package/dist/client/web/CreeveyApp.js.map +1 -1
- package/dist/client/web/assets/{index-C5QCFtF-.js → index-Cs8IUTQs.js} +84 -84
- package/dist/client/web/index.html +1 -1
- package/dist/server/docker.d.ts +1 -1
- package/dist/server/docker.js +21 -4
- package/dist/server/docker.js.map +1 -1
- package/dist/server/index.js +9 -10
- package/dist/server/index.js.map +1 -1
- package/dist/server/master/start.js +1 -1
- package/dist/server/master/start.js.map +1 -1
- package/dist/server/playwright/docker-file.d.ts +1 -2
- package/dist/server/playwright/docker-file.js +10 -4
- package/dist/server/playwright/docker-file.js.map +1 -1
- package/dist/server/playwright/docker.d.ts +2 -1
- package/dist/server/playwright/docker.js +10 -2
- package/dist/server/playwright/docker.js.map +1 -1
- package/dist/server/playwright/internal.d.ts +3 -4
- package/dist/server/playwright/internal.js +48 -37
- package/dist/server/playwright/internal.js.map +1 -1
- package/dist/server/playwright/webdriver.js +1 -7
- package/dist/server/playwright/webdriver.js.map +1 -1
- package/dist/server/selenium/internal.js +5 -12
- package/dist/server/selenium/internal.js.map +1 -1
- package/dist/server/selenium/webdriver.js +0 -7
- package/dist/server/selenium/webdriver.js.map +1 -1
- package/dist/server/telemetry.js +2 -2
- package/dist/server/utils.d.ts +1 -2
- package/dist/server/utils.js +11 -8
- package/dist/server/utils.js.map +1 -1
- package/dist/server/webdriver.d.ts +2 -0
- package/dist/server/webdriver.js +13 -1
- package/dist/server/webdriver.js.map +1 -1
- package/dist/types.d.ts +0 -2
- package/dist/types.js.map +1 -1
- package/package.json +3 -3
- package/src/client/web/CreeveyApp.tsx +1 -0
- package/src/server/docker.ts +24 -4
- package/src/server/index.ts +11 -14
- package/src/server/master/start.ts +1 -1
- package/src/server/playwright/docker-file.ts +12 -5
- package/src/server/playwright/docker.ts +16 -3
- package/src/server/playwright/index-source.mjs +16 -0
- package/src/server/playwright/internal.ts +78 -52
- package/src/server/playwright/webdriver.ts +1 -7
- package/src/server/selenium/internal.ts +5 -12
- package/src/server/selenium/webdriver.ts +0 -7
- package/src/server/telemetry.ts +2 -2
- package/src/server/utils.ts +33 -25
- package/src/server/webdriver.ts +13 -0
- package/src/types.ts +0 -2
package/dist/server/docker.d.ts
CHANGED
@@ -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>;
|
package/dist/server/docker.js
CHANGED
@@ -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
|
-
|
61
|
-
|
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":";;;;;
|
1
|
+
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/server/docker.ts"],"names":[],"mappings":"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"}
|
package/dist/server/index.js
CHANGED
@@ -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)}
|
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
|
58
|
-
|
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
|
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'));
|
package/dist/server/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":";;;;;
|
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(),
|
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
|
-
|
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
|
11
|
+
const importMetaUrl = (0, url_1.pathToFileURL)(__filename).href;
|
10
12
|
// TODO Support custom docker images
|
11
|
-
function playwrightDockerFile(browser, version
|
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
|
-
|
27
|
-
|
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":";;;;;
|
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
|
-
|
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
|
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":"
|
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
|
-
#
|
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(
|
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
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
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
|
-
|
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,
|
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
|
-
|
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
|
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);
|