creevey 0.10.0-beta.0 → 0.10.0-beta.10
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/addon/components/Panel.js +2 -2
- package/dist/client/addon/components/Panel.js.map +1 -1
- package/dist/client/addon/controller.js +4 -5
- package/dist/client/addon/controller.js.map +1 -1
- package/dist/client/addon/withCreevey.js +18 -34
- package/dist/client/addon/withCreevey.js.map +1 -1
- package/dist/client/shared/components/ImagesView/SwapView.js +12 -0
- package/dist/client/shared/components/ImagesView/SwapView.js.map +1 -1
- package/dist/client/shared/components/PageHeader/ImagePreview.js +1 -0
- package/dist/client/shared/components/PageHeader/ImagePreview.js.map +1 -1
- package/dist/client/shared/components/ResultsPage.js +23 -5
- package/dist/client/shared/components/ResultsPage.js.map +1 -1
- package/dist/client/web/CreeveyApp.js +22 -6
- package/dist/client/web/CreeveyApp.js.map +1 -1
- package/dist/client/web/CreeveyContext.d.ts +5 -0
- package/dist/client/web/CreeveyContext.js +3 -0
- package/dist/client/web/CreeveyContext.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/Search.js +2 -2
- package/dist/client/web/CreeveyView/SideBar/Search.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/SideBar.js +1 -0
- package/dist/client/web/CreeveyView/SideBar/SideBar.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/SideBarFooter.js +49 -6
- package/dist/client/web/CreeveyView/SideBar/SideBarFooter.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/SuiteLink.js +1 -3
- package/dist/client/web/CreeveyView/SideBar/SuiteLink.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/TestLink.js +1 -3
- package/dist/client/web/CreeveyView/SideBar/TestLink.js.map +1 -1
- package/dist/client/web/KeyboardEventsContext.d.ts +1 -8
- package/dist/client/web/KeyboardEventsContext.js +62 -57
- package/dist/client/web/KeyboardEventsContext.js.map +1 -1
- package/dist/client/web/assets/{index-DkmZfG9C.js → index-BE9CL5_G.js} +94 -94
- package/dist/client/web/index.html +1 -1
- package/dist/creevey.js +13 -5
- package/dist/creevey.js.map +1 -1
- package/dist/index.js +1 -5
- package/dist/index.js.map +1 -1
- package/dist/playwright.d.ts +2 -0
- package/dist/playwright.js +6 -0
- package/dist/playwright.js.map +1 -0
- package/dist/selenium.d.ts +2 -0
- package/dist/selenium.js +6 -0
- package/dist/selenium.js.map +1 -0
- package/dist/server/config.d.ts +1 -1
- package/dist/server/config.js +12 -5
- package/dist/server/config.js.map +1 -1
- package/dist/server/docker.js +2 -2
- package/dist/server/docker.js.map +1 -1
- package/dist/server/index.js +40 -4
- package/dist/server/index.js.map +1 -1
- package/dist/server/logger.d.ts +2 -1
- package/dist/server/logger.js +7 -3
- package/dist/server/logger.js.map +1 -1
- package/dist/server/master/api.js +1 -1
- package/dist/server/master/api.js.map +1 -1
- package/dist/server/master/pool.d.ts +3 -3
- package/dist/server/master/pool.js +10 -63
- package/dist/server/master/pool.js.map +1 -1
- package/dist/server/master/queue.d.ts +13 -0
- package/dist/server/master/queue.js +64 -0
- package/dist/server/master/queue.js.map +1 -0
- package/dist/server/master/runner.d.ts +1 -0
- package/dist/server/master/runner.js +4 -1
- package/dist/server/master/runner.js.map +1 -1
- package/dist/server/master/server.js +1 -1
- package/dist/server/master/server.js.map +1 -1
- package/dist/server/master/start.js +4 -4
- package/dist/server/master/start.js.map +1 -1
- package/dist/server/playwright/docker-file.js +12 -1
- package/dist/server/playwright/docker-file.js.map +1 -1
- package/dist/server/playwright/docker.d.ts +1 -1
- package/dist/server/playwright/docker.js +1 -6
- package/dist/server/playwright/docker.js.map +1 -1
- package/dist/server/playwright/internal.d.ts +2 -2
- package/dist/server/playwright/internal.js +56 -44
- package/dist/server/playwright/internal.js.map +1 -1
- package/dist/server/playwright/webdriver.d.ts +2 -1
- package/dist/server/playwright/webdriver.js +4 -1
- package/dist/server/playwright/webdriver.js.map +1 -1
- package/dist/server/providers/browser.js +2 -1
- package/dist/server/providers/browser.js.map +1 -1
- package/dist/server/providers/hybrid.js +1 -1
- package/dist/server/providers/hybrid.js.map +1 -1
- package/dist/server/reporter.js +4 -4
- package/dist/server/reporter.js.map +1 -1
- package/dist/server/selenium/internal.d.ts +3 -3
- package/dist/server/selenium/internal.js +126 -89
- package/dist/server/selenium/internal.js.map +1 -1
- package/dist/server/selenium/selenoid.js +2 -2
- package/dist/server/selenium/selenoid.js.map +1 -1
- package/dist/server/selenium/webdriver.d.ts +2 -1
- package/dist/server/selenium/webdriver.js +8 -1
- package/dist/server/selenium/webdriver.js.map +1 -1
- package/dist/server/telemetry.js +7 -3
- package/dist/server/telemetry.js.map +1 -1
- package/dist/server/utils.d.ts +2 -1
- package/dist/server/utils.js +13 -3
- package/dist/server/utils.js.map +1 -1
- package/dist/server/webdriver.d.ts +4 -4
- package/dist/server/webdriver.js +10 -9
- package/dist/server/webdriver.js.map +1 -1
- package/dist/server/worker/chai-image.d.ts +1 -2
- package/dist/server/worker/chai-image.js +4 -3
- package/dist/server/worker/chai-image.js.map +1 -1
- package/dist/server/worker/start.js +27 -39
- package/dist/server/worker/start.js.map +1 -1
- package/dist/types.d.ts +32 -21
- package/dist/types.js +13 -1
- package/dist/types.js.map +1 -1
- package/package.json +45 -38
- package/playwright.d.ts +2 -0
- package/selenium.d.ts +2 -0
- package/src/client/addon/components/Panel.tsx +2 -2
- package/src/client/addon/controller.ts +13 -6
- package/src/client/addon/withCreevey.ts +25 -13
- package/src/client/shared/components/ImagesView/SwapView.tsx +18 -0
- package/src/client/shared/components/PageHeader/ImagePreview.tsx +1 -0
- package/src/client/shared/components/ResultsPage.tsx +28 -7
- package/src/client/web/CreeveyApp.tsx +25 -7
- package/src/client/web/CreeveyContext.tsx +9 -0
- package/src/client/web/CreeveyView/SideBar/Search.tsx +3 -3
- package/src/client/web/CreeveyView/SideBar/SideBar.tsx +1 -0
- package/src/client/web/CreeveyView/SideBar/SideBarFooter.tsx +37 -6
- package/src/client/web/CreeveyView/SideBar/SuiteLink.tsx +3 -5
- package/src/client/web/CreeveyView/SideBar/TestLink.tsx +2 -4
- package/src/client/web/KeyboardEventsContext.tsx +61 -73
- package/src/creevey.ts +13 -6
- package/src/index.ts +0 -2
- package/src/playwright.ts +1 -0
- package/src/selenium.ts +1 -0
- package/src/server/config.ts +19 -7
- package/src/server/docker.ts +2 -2
- package/src/server/index.ts +45 -4
- package/src/server/logger.ts +6 -2
- package/src/server/master/api.ts +1 -1
- package/src/server/master/pool.ts +18 -56
- package/src/server/master/queue.ts +64 -0
- package/src/server/master/runner.ts +4 -1
- package/src/server/master/server.ts +1 -1
- package/src/server/master/start.ts +7 -4
- package/src/server/playwright/docker-file.ts +14 -1
- package/src/server/playwright/docker.ts +2 -12
- package/src/server/playwright/internal.ts +76 -49
- package/src/server/playwright/webdriver.ts +7 -2
- package/src/server/providers/browser.ts +2 -1
- package/src/server/providers/hybrid.ts +1 -1
- package/src/server/reporter.ts +4 -3
- package/src/server/selenium/internal.ts +147 -93
- package/src/server/selenium/selenoid.ts +2 -2
- package/src/server/selenium/webdriver.ts +12 -2
- package/src/server/telemetry.ts +7 -3
- package/src/server/utils.ts +14 -4
- package/src/server/webdriver.ts +13 -15
- package/src/server/worker/chai-image.ts +4 -4
- package/src/server/worker/start.ts +29 -48
- package/src/types.ts +35 -23
- package/types/playwright-context.d.ts +7 -0
- package/types/selenium-context.d.ts +7 -0
- package/.yarnrc.yml +0 -1
- package/chromatic.config.json +0 -5
@@ -1,5 +1,5 @@
|
|
1
1
|
import { Args } from '@storybook/csf';
|
2
|
-
import { Config, Options, StoriesRaw, StoryInput } from '../../types';
|
2
|
+
import { Config, Options, ServerTest, StoriesRaw, StoryInput } from '../../types';
|
3
3
|
import { CreeveyWebdriverBase } from '../webdriver';
|
4
4
|
export declare class PlaywrightWebdriver extends CreeveyWebdriverBase {
|
5
5
|
#private;
|
@@ -9,6 +9,7 @@ export declare class PlaywrightWebdriver extends CreeveyWebdriverBase {
|
|
9
9
|
openBrowser(fresh?: boolean): Promise<PlaywrightWebdriver | null>;
|
10
10
|
closeBrowser(): Promise<void>;
|
11
11
|
loadStoriesFromBrowser(): Promise<StoriesRaw>;
|
12
|
+
afterTest(_test: ServerTest): Promise<void>;
|
12
13
|
protected takeScreenshot(captureElement: string | null, ignoreElements?: string | string[] | null): Promise<Buffer>;
|
13
14
|
protected waitForComplete(callback: (isCompleted: boolean) => void): void;
|
14
15
|
protected selectStory(id: string, waitForReady?: boolean): Promise<boolean>;
|
@@ -46,7 +46,7 @@ class PlaywrightWebdriver extends webdriver_1.CreeveyWebdriverBase {
|
|
46
46
|
return await import('./internal.js');
|
47
47
|
}
|
48
48
|
catch (error) {
|
49
|
-
logger_1.logger.error(error);
|
49
|
+
(0, logger_1.logger)().error(error);
|
50
50
|
return null;
|
51
51
|
}
|
52
52
|
})();
|
@@ -72,6 +72,9 @@ class PlaywrightWebdriver extends webdriver_1.CreeveyWebdriverBase {
|
|
72
72
|
}
|
73
73
|
return this.#browser.loadStoriesFromBrowser();
|
74
74
|
}
|
75
|
+
afterTest(_test) {
|
76
|
+
return Promise.resolve(undefined);
|
77
|
+
}
|
75
78
|
async takeScreenshot(captureElement, ignoreElements) {
|
76
79
|
if (!this.#browser) {
|
77
80
|
// TODO Describe the error
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"webdriver.js","sourceRoot":"","sources":["../../../src/server/playwright/webdriver.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"webdriver.js","sourceRoot":"","sources":["../../../src/server/playwright/webdriver.ts"],"names":[],"mappings":"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"}
|
@@ -9,6 +9,7 @@ const messages_js_1 = require("../messages.js");
|
|
9
9
|
const types_js_1 = require("../../types.js");
|
10
10
|
const logger_js_1 = require("../logger.js");
|
11
11
|
const index_js_1 = require("../../shared/index.js");
|
12
|
+
// TODO Don't have updates from stories
|
12
13
|
const loadStories = async (_config, storiesListener, webdriver) => {
|
13
14
|
if (cluster_1.default.isPrimary) {
|
14
15
|
return new Promise((resolve) => {
|
@@ -20,7 +21,7 @@ const loadStories = async (_config, storiesListener, webdriver) => {
|
|
20
21
|
if (message.type == 'set') {
|
21
22
|
const { stories, oldTests } = message.payload;
|
22
23
|
if (oldTests.length > 0)
|
23
|
-
logger_js_1.logger.warn(`If you use browser stories provider of CSFv3 Storybook feature\n` +
|
24
|
+
(0, logger_js_1.logger)().warn(`If you use browser stories provider of CSFv3 Storybook feature\n` +
|
24
25
|
`Creevey will not load tests defined in story parameters from following stories:\n` +
|
25
26
|
oldTests.join('\n'));
|
26
27
|
unsubscribe();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../src/server/providers/browser.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA8B;AAE9B,gDAAwG;AACxG,6CAA2C;AAC3C,4CAAsC;AACtC,oDAA8D;
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../src/server/providers/browser.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA8B;AAE9B,gDAAwG;AACxG,6CAA2C;AAC3C,4CAAsC;AACtC,oDAA8D;AAE9D,uCAAuC;AAChC,MAAM,WAAW,GAAoB,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,EAAE;IACxF,IAAI,iBAAO,CAAC,SAAS,EAAE,CAAC;QACtB,OAAO,IAAI,OAAO,CAAa,CAAC,OAAO,EAAE,EAAE;YACzC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAO,CAAC,OAAO,IAAI,EAAE,CAAC;iBAChD,MAAM,CAAC,oBAAS,CAAC;iBACjB,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;YAE1C,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,WAAW,GAAG,IAAA,+BAAiB,EAAC,MAAM,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;oBACnE,IAAI,OAAO,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC;wBAC1B,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;wBAC9C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;4BACrB,IAAA,kBAAM,GAAE,CAAC,IAAI,CACX,kEAAkE;gCAChE,mFAAmF;gCACnF,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CACtB,CAAC;wBACJ,WAAW,EAAE,CAAC;wBACd,OAAO,CAAC,OAAO,CAAC,CAAC;oBACnB,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,IAAA,gCAAkB,EAAC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9C,CAAC;YACD,IAAA,yBAAW,EAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;gBACjC,mCAAmC;gBACnC,IAAI,OAAO,CAAC,IAAI,IAAI,QAAQ;oBAAE,eAAe,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1E,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,IAAA,yBAAW,EAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;YACjC,IAAI,OAAO,CAAC,IAAI,IAAI,KAAK;gBACvB,IAAA,gCAAkB,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC;YAC3F,IAAI,OAAO,CAAC,IAAI,IAAI,QAAQ;gBAAE,eAAe,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAA,gCAAqB,EAAC,CAAC,MAAM,SAAS,EAAE,sBAAsB,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QAEzF,MAAM,mBAAmB,GAAa,EAAE,CAAC;QAEzC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACvC,IAAK,KAAsB,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;gBACvD,OAAQ,KAAsB,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC;gBAC1D,mBAAmB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC,CAAC;AA/CW,QAAA,WAAW,eA+CtB;AAEF,mBAAW,CAAC,YAAY,GAAG,SAAS,CAAC"}
|
@@ -45,7 +45,7 @@ async function parseParams(config, listener) {
|
|
45
45
|
const testFiles = (0, utils_js_1.readDirRecursive)(config.testsDir).filter((file) => config.testsRegex?.test(file));
|
46
46
|
if (listener) {
|
47
47
|
chokidar_1.default.watch(testFiles).on('change', (filePath) => {
|
48
|
-
logger_js_1.logger.debug(`changed: ${filePath}`);
|
48
|
+
(0, logger_js_1.logger)().debug(`changed: ${filePath}`);
|
49
49
|
// doesn't work, always returns {} due modules caching
|
50
50
|
// see https://github.com/nodejs/modules/issues/307
|
51
51
|
void (0, parser_js_1.default)(testFiles).then((data) => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"hybrid.js","sourceRoot":"","sources":["../../../src/server/providers/hybrid.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgC;AAEhC,6CAA8D;AAE9D,4CAAsC;AACtC,wEAAwE;AACxE,0CAA+C;AAC/C,oDAA0D;AAEnD,MAAM,WAAW,GAAoB,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,EAAE;IACvF,IAAI,sBAAsB,GAAoC,EAAE,CAAC;IAEjE,MAAM,2BAA2B,GAAG,CAAC,KAAmB,EAAE,aAAiC,EAAQ,EAAE;QACnG,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,IAAA,4BAAiB,EAAC,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,EAAE,EAAE,aAAa,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,IAAA,wBAAe,EACnC,MAAM,EACN,CAAC,qBAAqB,EAAE,EAAE;QACxB,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,EAAE;YACvE,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC7B,MAAM,aAAa,GAAG,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACvD,IAAI,aAAa;oBAAE,2BAA2B,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,eAAe,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC,EACD,SAAS,CACV,CAAC;IAEF,oCAAoC;IACpC,sBAAsB,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC;IAEtF,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE;QACnD,MAAM,aAAa,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,aAAa;YAAE,2BAA2B,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAhCW,QAAA,WAAW,eAgCtB;AAEF,oCAAoC;AACpC,KAAK,UAAU,WAAW,CACxB,MAAc,EACd,QAAiD;IAEjD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,SAAS,GAAG,IAAA,2BAAgB,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAEpG,IAAI,QAAQ,EAAE,CAAC;QACb,kBAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;YAClD,kBAAM,CAAC,KAAK,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC;
|
1
|
+
{"version":3,"file":"hybrid.js","sourceRoot":"","sources":["../../../src/server/providers/hybrid.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgC;AAEhC,6CAA8D;AAE9D,4CAAsC;AACtC,wEAAwE;AACxE,0CAA+C;AAC/C,oDAA0D;AAEnD,MAAM,WAAW,GAAoB,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,EAAE;IACvF,IAAI,sBAAsB,GAAoC,EAAE,CAAC;IAEjE,MAAM,2BAA2B,GAAG,CAAC,KAAmB,EAAE,aAAiC,EAAQ,EAAE;QACnG,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,IAAA,4BAAiB,EAAC,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,EAAE,EAAE,aAAa,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,IAAA,wBAAe,EACnC,MAAM,EACN,CAAC,qBAAqB,EAAE,EAAE;QACxB,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,EAAE;YACvE,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC7B,MAAM,aAAa,GAAG,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACvD,IAAI,aAAa;oBAAE,2BAA2B,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,eAAe,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC,EACD,SAAS,CACV,CAAC;IAEF,oCAAoC;IACpC,sBAAsB,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC;IAEtF,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE;QACnD,MAAM,aAAa,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,aAAa;YAAE,2BAA2B,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAhCW,QAAA,WAAW,eAgCtB;AAEF,oCAAoC;AACpC,KAAK,UAAU,WAAW,CACxB,MAAc,EACd,QAAiD;IAEjD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,SAAS,GAAG,IAAA,2BAAgB,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAEpG,IAAI,QAAQ,EAAE,CAAC;QACb,kBAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;YAClD,IAAA,kBAAM,GAAE,CAAC,KAAK,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC;YAEvC,sDAAsD;YACtD,mDAAmD;YACnD,KAAK,IAAA,mBAAK,EAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAA,mBAAK,EAAC,SAAS,CAAC,CAAC;AAC1B,CAAC;AAED,mBAAW,CAAC,YAAY,GAAG,QAAQ,CAAC"}
|
package/dist/server/reporter.js
CHANGED
@@ -17,20 +17,20 @@ class CreeveyReporter {
|
|
17
17
|
// TODO Output in better way, like vitest, maybe
|
18
18
|
constructor(runner, options) {
|
19
19
|
const { sessionId, browserName } = options.reporterOptions.creevey;
|
20
|
-
const testLogger = loglevel_1.default.getLogger(
|
20
|
+
const testLogger = loglevel_1.default.getLogger(sessionId);
|
21
21
|
loglevel_plugin_prefix_1.default.apply(testLogger, {
|
22
22
|
format(level) {
|
23
|
-
return
|
23
|
+
return `[${browserName}:${chalk_1.default.gray(process.pid)}] ${testLevels[level]} => ${chalk_1.default.gray(sessionId)}`;
|
24
24
|
},
|
25
25
|
});
|
26
26
|
runner.on(types_js_1.TEST_EVENTS.TEST_BEGIN, (test) => {
|
27
27
|
testLogger.warn(chalk_1.default.cyan(test.titlePath().join('/')));
|
28
28
|
});
|
29
29
|
runner.on(types_js_1.TEST_EVENTS.TEST_PASS, (test) => {
|
30
|
-
testLogger.info(chalk_1.default.cyan(test.titlePath().join('/')));
|
30
|
+
testLogger.info(chalk_1.default.cyan(test.titlePath().join('/')), chalk_1.default.gray(`(${test.duration} ms)`));
|
31
31
|
});
|
32
32
|
runner.on(types_js_1.TEST_EVENTS.TEST_FAIL, (test, error) => {
|
33
|
-
testLogger.error(chalk_1.default.cyan(test.titlePath().join('/')), '\n ', this.getErrors(error, (error, imageName) => `${chalk_1.default.bold(imageName ?? browserName)}:${error}`, (error) => error.stack ?? error.message).join('\n '));
|
33
|
+
testLogger.error(chalk_1.default.cyan(test.titlePath().join('/')), chalk_1.default.gray(`(${test.duration} ms)`), '\n ', this.getErrors(error, (error, imageName) => `${chalk_1.default.bold(imageName ?? browserName)}:${error}`, (error) => error.stack ?? error.message).join('\n '));
|
34
34
|
});
|
35
35
|
}
|
36
36
|
getErrors(error, imageErrorToString, errorToString) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../src/server/reporter.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,wDAA8B;AAC9B,oFAA4C;AAC5C,0CAAqF;AAWrF,MAAM,UAAU,GAA2B;IACzC,IAAI,EAAE,eAAK,CAAC,KAAK,CAAC,MAAM,CAAC;IACzB,IAAI,EAAE,eAAK,CAAC,MAAM,CAAC,OAAO,CAAC;IAC3B,KAAK,EAAE,eAAK,CAAC,GAAG,CAAC,MAAM,CAAC;CACzB,CAAC;AAEF,MAAa,eAAe;IAC1B,gDAAgD;IAChD,YAAY,MAAoB,EAAE,OAA0D;QAC1F,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC;QACnE,MAAM,UAAU,GAAG,kBAAM,CAAC,SAAS,CAAC,
|
1
|
+
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../src/server/reporter.ts"],"names":[],"mappings":"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"}
|
@@ -1,10 +1,9 @@
|
|
1
1
|
import { Args } from '@storybook/csf';
|
2
|
-
import Logger from 'loglevel';
|
3
2
|
import { WebDriver } from 'selenium-webdriver';
|
4
|
-
import { Config, StoryInput, StoriesRaw, Options } from '../../types.js';
|
3
|
+
import { Config, StorybookGlobals, StoryInput, StoriesRaw, Options, ServerTest } from '../../types.js';
|
5
4
|
export declare class InternalBrowser {
|
6
5
|
#private;
|
7
|
-
constructor(browser: WebDriver, port: number,
|
6
|
+
constructor(browser: WebDriver, port: number, storybookGlobals?: StorybookGlobals);
|
8
7
|
get browser(): WebDriver;
|
9
8
|
closeBrowser(): Promise<void>;
|
10
9
|
takeScreenshot(captureElement?: string | null, ignoreElements?: string | string[] | null): Promise<Buffer>;
|
@@ -12,6 +11,7 @@ export declare class InternalBrowser {
|
|
12
11
|
selectStory(id: string, waitForReady?: boolean): Promise<boolean>;
|
13
12
|
updateStoryArgs(story: StoryInput, updatedArgs: Args): Promise<void>;
|
14
13
|
loadStoriesFromBrowser(): Promise<StoriesRaw>;
|
14
|
+
afterTest(test: ServerTest): Promise<void>;
|
15
15
|
static getBrowser(browserName: string, gridUrl: string, config: Config, options: Options): Promise<InternalBrowser | null>;
|
16
16
|
private init;
|
17
17
|
private openStorybookPage;
|
@@ -4,7 +4,6 @@ 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 core_events_1 = require("@storybook/core-events");
|
8
7
|
const chalk_1 = __importDefault(require("chalk"));
|
9
8
|
const http_1 = __importDefault(require("http"));
|
10
9
|
const https_1 = __importDefault(require("https"));
|
@@ -59,15 +58,19 @@ async function openUrlAndWaitForPageSource(browser, url, predicate) {
|
|
59
58
|
} while (predicate(source));
|
60
59
|
return source;
|
61
60
|
}
|
62
|
-
async function buildWebdriver(
|
63
|
-
const browserConfig = config.browsers[
|
64
|
-
const {
|
61
|
+
async function buildWebdriver(browser, gridUrl, config, options) {
|
62
|
+
const browserConfig = config.browsers[browser];
|
63
|
+
const { /*customizeBuilder,*/ seleniumCapabilities, browserName } = browserConfig;
|
65
64
|
const url = new URL(gridUrl);
|
66
65
|
url.username = url.username ? '********' : '';
|
67
66
|
url.password = url.password ? '********' : '';
|
68
|
-
logger_js_1.logger.debug(`
|
67
|
+
(0, logger_js_1.logger)().debug(`Connecting to Selenium ${chalk_1.default.magenta(url.toString())}`);
|
69
68
|
// TODO Define some capabilities explicitly and define typings
|
70
|
-
const capabilities = new selenium_webdriver_1.Capabilities({
|
69
|
+
const capabilities = new selenium_webdriver_1.Capabilities({
|
70
|
+
browserName,
|
71
|
+
...seleniumCapabilities,
|
72
|
+
pageLoadStrategy: capabilities_js_1.PageLoadStrategy.EAGER,
|
73
|
+
});
|
71
74
|
const prefs = new selenium_webdriver_1.logging.Preferences();
|
72
75
|
if (options.trace) {
|
73
76
|
for (const type of Object.values(selenium_webdriver_1.logging.Type)) {
|
@@ -77,47 +80,74 @@ async function buildWebdriver(browserName, gridUrl, config, options) {
|
|
77
80
|
// TODO Fetch selenium grid capabilities
|
78
81
|
// TODO Validate browsers, versions, and platform
|
79
82
|
// TODO Use `customizeBuilder`
|
80
|
-
let
|
83
|
+
let webdriver;
|
81
84
|
try {
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
85
|
+
const maxRetries = 5;
|
86
|
+
let retries = 0;
|
87
|
+
do {
|
88
|
+
webdriver = await Promise.race([
|
89
|
+
new Promise((resolve) => {
|
90
|
+
setTimeout(() => {
|
91
|
+
retries += 1;
|
92
|
+
resolve(null);
|
93
|
+
}, 120_000);
|
94
|
+
}),
|
95
|
+
(async () => {
|
96
|
+
if (retries > 0) {
|
97
|
+
(0, logger_js_1.logger)().debug(`Trying to initialize session to Selenium Grid: retried ${retries} of ${maxRetries}`);
|
98
|
+
}
|
99
|
+
const retry = retries;
|
100
|
+
// const ie = new IeOptions();
|
101
|
+
// const edge = new EdgeOptions();
|
102
|
+
// const chrome = new ChromeOptions();
|
103
|
+
// const safari = new SafariOptions();
|
104
|
+
// const firefox = new FirefoxOptions();
|
105
|
+
// edge.enableBidi();
|
106
|
+
// chrome.enableBidi();
|
107
|
+
// firefox.enableBidi();
|
108
|
+
const driver = await new selenium_webdriver_1.Builder()
|
109
|
+
// .setIeOptions(ie)
|
110
|
+
// .setEdgeOptions(edge)
|
111
|
+
// .setChromeOptions(chrome)
|
112
|
+
// .setSafariOptions(safari)
|
113
|
+
// .setFirefoxOptions(firefox)
|
114
|
+
.usingServer(gridUrl)
|
115
|
+
.withCapabilities(capabilities)
|
116
|
+
.setLoggingPrefs(prefs) // NOTE: Should go last
|
117
|
+
.build();
|
118
|
+
// const id = await driver.getWindowHandle();
|
119
|
+
// context = await BrowsingContext(driver, { browsingContextId: id });
|
120
|
+
if (retry != retries) {
|
121
|
+
void driver.quit();
|
122
|
+
return null;
|
123
|
+
}
|
124
|
+
return driver;
|
125
|
+
})(),
|
126
|
+
]);
|
127
|
+
if (webdriver)
|
128
|
+
break;
|
129
|
+
} while (retries < maxRetries);
|
130
|
+
if (!webdriver)
|
131
|
+
throw new Error('Failed to initialize session to Selenium Grid due to many retries');
|
102
132
|
}
|
103
133
|
catch (error) {
|
104
|
-
logger_js_1.logger.error(`
|
134
|
+
(0, logger_js_1.logger)().error(`Failed to start browser:`, error);
|
105
135
|
return null;
|
106
136
|
}
|
107
|
-
return
|
137
|
+
return webdriver;
|
108
138
|
}
|
109
139
|
class InternalBrowser {
|
110
140
|
#isShuttingDown = false;
|
111
141
|
#browser;
|
112
142
|
#serverHost = null;
|
113
143
|
#serverPort;
|
114
|
-
#
|
144
|
+
#storybookGlobals;
|
115
145
|
#unsubscribe = types_js_1.noop;
|
116
146
|
#keepAliveInterval = null;
|
117
|
-
constructor(browser, port,
|
147
|
+
constructor(browser, port, storybookGlobals) {
|
118
148
|
this.#browser = browser;
|
119
149
|
this.#serverPort = port;
|
120
|
-
this.#
|
150
|
+
this.#storybookGlobals = storybookGlobals;
|
121
151
|
this.#unsubscribe = (0, messages_js_1.subscribeOn)('shutdown', () => {
|
122
152
|
void this.closeBrowser();
|
123
153
|
});
|
@@ -142,23 +172,23 @@ class InternalBrowser {
|
|
142
172
|
async takeScreenshot(captureElement, ignoreElements) {
|
143
173
|
let screenshot;
|
144
174
|
const ignoreStyles = await this.insertIgnoreStyles(ignoreElements);
|
145
|
-
if (
|
175
|
+
if ((0, logger_js_1.logger)().getLevel() <= loglevel_1.default.levels.DEBUG) {
|
146
176
|
const { innerWidth, innerHeight } = await this.#browser.executeScript(function () {
|
147
177
|
return {
|
148
178
|
innerWidth: window.innerWidth,
|
149
179
|
innerHeight: window.innerHeight,
|
150
180
|
};
|
151
181
|
});
|
152
|
-
|
182
|
+
(0, logger_js_1.logger)().debug(`Viewport size is: ${innerWidth}x${innerHeight}`);
|
153
183
|
}
|
154
184
|
try {
|
155
185
|
if (!captureElement) {
|
156
|
-
|
186
|
+
(0, logger_js_1.logger)().debug('Capturing viewport screenshot');
|
157
187
|
screenshot = await this.#browser.takeScreenshot();
|
158
|
-
|
188
|
+
(0, logger_js_1.logger)().debug('Viewport screenshot is captured');
|
159
189
|
}
|
160
190
|
else {
|
161
|
-
|
191
|
+
(0, logger_js_1.logger)().debug(`Checking is element ${chalk_1.default.cyan(captureElement)} fit into viewport`);
|
162
192
|
const rects = await this.#browser.executeScript(function (selector) {
|
163
193
|
window.scrollTo(0, 0); // TODO Maybe we should remove same code from `resetMousePosition`
|
164
194
|
// eslint-disable-next-line no-var
|
@@ -191,10 +221,10 @@ class InternalBrowser {
|
|
191
221
|
const isFitIntoViewport = elementRect.width + elementRect.left <= windowRect.width &&
|
192
222
|
elementRect.height + elementRect.top <= windowRect.height;
|
193
223
|
if (isFitIntoViewport) {
|
194
|
-
|
224
|
+
(0, logger_js_1.logger)().debug(`Capturing ${chalk_1.default.cyan(captureElement)} with size: ${elementRect.width}x${elementRect.height}`);
|
195
225
|
}
|
196
226
|
else
|
197
|
-
|
227
|
+
(0, logger_js_1.logger)().debug(`Capturing composite screenshot image of ${chalk_1.default.cyan(captureElement)} with size: ${elementRect.width}x${elementRect.height}`);
|
198
228
|
// const element = await browser.findElement(By.css(captureElement));
|
199
229
|
// screenshot = isFitIntoViewport
|
200
230
|
// ? context
|
@@ -206,7 +236,7 @@ class InternalBrowser {
|
|
206
236
|
? await this.#browser.findElement(selenium_webdriver_1.By.css(captureElement)).takeScreenshot()
|
207
237
|
: // TODO pointer-events: none, need to research
|
208
238
|
await this.takeCompositeScreenshot(windowRect, elementRect);
|
209
|
-
|
239
|
+
(0, logger_js_1.logger)().debug(`${chalk_1.default.cyan(captureElement)} is captured`);
|
210
240
|
}
|
211
241
|
}
|
212
242
|
finally {
|
@@ -223,9 +253,10 @@ class InternalBrowser {
|
|
223
253
|
}
|
224
254
|
async selectStory(id, waitForReady = false) {
|
225
255
|
// NOTE: Global variables might be reset after hot reload. I think it's workaround, maybe we need better solution
|
256
|
+
await this.updateStorybookGlobals();
|
226
257
|
await this.updateBrowserGlobalVariables();
|
227
258
|
await this.resetMousePosition();
|
228
|
-
|
259
|
+
(0, logger_js_1.logger)().debug(`Triggering 'SetCurrentStory' event with storyId ${chalk_1.default.magenta(id)}`);
|
229
260
|
const result = await this.#browser.executeAsyncScript(function (storyId, shouldWaitForReady, callback) {
|
230
261
|
if (typeof window.__CREEVEY_SELECT_STORY__ == 'undefined') {
|
231
262
|
callback([
|
@@ -247,7 +278,7 @@ class InternalBrowser {
|
|
247
278
|
storyId,
|
248
279
|
updatedArgs,
|
249
280
|
});
|
250
|
-
}, story.id, updatedArgs,
|
281
|
+
}, story.id, updatedArgs, types_js_1.StorybookEvents.UPDATE_STORY_ARGS, types_js_1.StorybookEvents.STORY_RENDERED);
|
251
282
|
}
|
252
283
|
async loadStoriesFromBrowser() {
|
253
284
|
const stories = await this.#browser.executeAsyncScript(function (callback) {
|
@@ -257,6 +288,17 @@ class InternalBrowser {
|
|
257
288
|
throw new Error("Can't get stories, it seems creevey or storybook API isn't available");
|
258
289
|
return stories;
|
259
290
|
}
|
291
|
+
async afterTest(test) {
|
292
|
+
if ((0, logger_js_1.logger)().getLevel() === loglevel_1.default.levels.TRACE) {
|
293
|
+
const output = [];
|
294
|
+
const types = await this.#browser.manage().logs().getAvailableLogTypes();
|
295
|
+
for (const type of types) {
|
296
|
+
const logs = await this.#browser.manage().logs().get(type);
|
297
|
+
output.push(logs.map((log) => JSON.stringify(log.toJSON(), null, 2)).join('\n'));
|
298
|
+
}
|
299
|
+
(0, logger_js_1.logger)().debug('----------', (0, utils_js_1.getTestPath)(test).join('/'), '----------\n', output.join('\n'), '\n----------------------------------------------------------------------------------------------------');
|
300
|
+
}
|
301
|
+
}
|
260
302
|
static async getBrowser(browserName, gridUrl, config, options) {
|
261
303
|
const browserConfig = config.browsers[browserName];
|
262
304
|
const { storybookUrl: address = config.storybookUrl, limit, viewport, _storybookGlobals } = browserConfig;
|
@@ -264,7 +306,7 @@ class InternalBrowser {
|
|
264
306
|
const browser = await buildWebdriver(browserName, gridUrl, config, options);
|
265
307
|
if (!browser)
|
266
308
|
return null;
|
267
|
-
const internalBrowser = new InternalBrowser(browser, options.port,
|
309
|
+
const internalBrowser = new InternalBrowser(browser, options.port, _storybookGlobals);
|
268
310
|
try {
|
269
311
|
if (utils_js_1.isShuttingDown.current)
|
270
312
|
return null;
|
@@ -273,22 +315,21 @@ class InternalBrowser {
|
|
273
315
|
gridUrl,
|
274
316
|
viewport,
|
275
317
|
storybookUrl: address,
|
276
|
-
storybookGlobals: _storybookGlobals,
|
277
318
|
resolveStorybookUrl: config.resolveStorybookUrl,
|
278
319
|
});
|
279
320
|
return done ? internalBrowser : null;
|
280
321
|
}
|
281
322
|
catch (originalError) {
|
282
323
|
void internalBrowser.closeBrowser();
|
283
|
-
const message = originalError instanceof Error ? originalError.message : originalError;
|
284
|
-
const error = new Error(`Can't load storybook root page
|
324
|
+
const message = originalError instanceof Error ? originalError.message : (originalError ?? 'Unknown error');
|
325
|
+
const error = new Error(`Can't load storybook root page: ${message}`);
|
285
326
|
if (originalError instanceof Error)
|
286
327
|
error.stack = originalError.stack;
|
287
|
-
logger_js_1.logger.error(error);
|
328
|
+
(0, logger_js_1.logger)().error(error);
|
288
329
|
return null;
|
289
330
|
}
|
290
331
|
}
|
291
|
-
async init({ browserName, gridUrl, viewport, storybookUrl,
|
332
|
+
async init({ browserName, gridUrl, viewport, storybookUrl, resolveStorybookUrl, }) {
|
292
333
|
const sessionId = (await this.#browser.getSession()).getId();
|
293
334
|
let browserHost = '';
|
294
335
|
try {
|
@@ -299,19 +340,18 @@ class InternalBrowser {
|
|
299
340
|
catch {
|
300
341
|
/* noop */
|
301
342
|
}
|
302
|
-
|
303
|
-
loglevel_plugin_prefix_1.default.apply(this.#logger, {
|
343
|
+
loglevel_plugin_prefix_1.default.apply((0, logger_js_1.logger)(), {
|
304
344
|
format(level) {
|
305
345
|
const levelColor = logger_js_1.colors[level.toUpperCase()];
|
306
|
-
return `[${browserName}:${chalk_1.default.gray(
|
346
|
+
return `[${browserName}:${chalk_1.default.gray(process.pid)}] ${levelColor(level)} => ${chalk_1.default.gray(sessionId)}`;
|
307
347
|
},
|
308
348
|
});
|
309
|
-
|
349
|
+
(0, logger_js_1.logger)().debug(`Connected successful with ${chalk_1.default.green(browserHost)}`);
|
310
350
|
return await (0, utils_js_1.runSequence)([
|
311
|
-
() => this.#browser.manage().setTimeouts({ pageLoad:
|
351
|
+
() => this.#browser.manage().setTimeouts({ pageLoad: 60000, script: 60000 }),
|
312
352
|
() => this.openStorybookPage(storybookUrl, resolveStorybookUrl),
|
313
353
|
() => this.waitForStorybook(),
|
314
|
-
() => this.updateStorybookGlobals(
|
354
|
+
() => this.updateStorybookGlobals(),
|
315
355
|
() => this.resolveCreeveyHost(),
|
316
356
|
() => this.updateBrowserGlobalVariables(),
|
317
357
|
// NOTE: Selenium draws automation toolbar with some delay after webdriver initialization
|
@@ -329,27 +369,28 @@ class InternalBrowser {
|
|
329
369
|
}
|
330
370
|
try {
|
331
371
|
if (resolver) {
|
332
|
-
|
372
|
+
(0, logger_js_1.logger)().debug('Resolving storybook url with custom resolver');
|
333
373
|
const resolvedUrl = await resolver();
|
334
|
-
|
374
|
+
(0, logger_js_1.logger)().debug(`Resolver storybook url ${resolvedUrl}`);
|
335
375
|
await this.#browser.get((0, webdriver_js_1.appendIframePath)(resolvedUrl));
|
336
376
|
}
|
337
377
|
else {
|
378
|
+
// TODO Pageload timeout 10s
|
338
379
|
// NOTE: getUrlChecker already calls `browser.get` so we don't need another one
|
339
|
-
await (0, webdriver_js_1.resolveStorybookUrl)((0, webdriver_js_1.appendIframePath)(storybookUrl), (url) => this.checkUrl(url)
|
380
|
+
await (0, webdriver_js_1.resolveStorybookUrl)((0, webdriver_js_1.appendIframePath)(storybookUrl), (url) => this.checkUrl(url));
|
340
381
|
}
|
341
382
|
}
|
342
383
|
catch (error) {
|
343
|
-
|
384
|
+
(0, logger_js_1.logger)().error('Failed to resolve storybook URL', error instanceof Error ? error.message : '');
|
344
385
|
throw error;
|
345
386
|
}
|
346
387
|
}
|
347
388
|
async checkUrl(url) {
|
348
389
|
try {
|
349
390
|
// NOTE: Before trying a new url, reset the current one
|
350
|
-
|
391
|
+
(0, logger_js_1.logger)().debug(`Opening ${chalk_1.default.magenta('about:blank')} page`);
|
351
392
|
await openUrlAndWaitForPageSource(this.#browser, 'about:blank', (source) => !source.includes('<body></body>'));
|
352
|
-
|
393
|
+
(0, logger_js_1.logger)().debug(`Opening ${chalk_1.default.magenta(url)} and checking the page source`);
|
353
394
|
const source = await openUrlAndWaitForPageSource(this.#browser, url,
|
354
395
|
// NOTE: IE11 can return only `head` without body
|
355
396
|
(source) => source.length == 0 || !/<body([^>]*>).+<\/body>/s.test(source));
|
@@ -358,7 +399,7 @@ class InternalBrowser {
|
|
358
399
|
// because other add significant delay and some of them don't work in earlier chrome versions
|
359
400
|
// Browsers always load page successful even it's failed
|
360
401
|
// So we just check `root` element
|
361
|
-
|
402
|
+
(0, logger_js_1.logger)().debug(`Checking ${chalk_1.default.cyan(`#${webdriver_js_1.storybookRootID}`)} existence on ${chalk_1.default.magenta(url)}`);
|
362
403
|
return source.includes(`id="${webdriver_js_1.storybookRootID}"`);
|
363
404
|
}
|
364
405
|
catch {
|
@@ -366,7 +407,7 @@ class InternalBrowser {
|
|
366
407
|
}
|
367
408
|
}
|
368
409
|
async waitForStorybook() {
|
369
|
-
|
410
|
+
(0, logger_js_1.logger)().debug('Waiting for `setStories` event to make sure that storybook is initiated');
|
370
411
|
const isTimeout = await Promise.race([
|
371
412
|
new Promise((resolve) => {
|
372
413
|
setTimeout(() => {
|
@@ -376,22 +417,17 @@ class InternalBrowser {
|
|
376
417
|
(async () => {
|
377
418
|
let wait = true;
|
378
419
|
do {
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
}, core_events_1.SET_GLOBALS);
|
391
|
-
}
|
392
|
-
catch (e) {
|
393
|
-
this.#logger.debug('An error has been caught during the script:', e);
|
394
|
-
}
|
420
|
+
// TODO Research a different way to ensure storybook is initiated
|
421
|
+
wait = await this.#browser.executeScript(function (SET_GLOBALS) {
|
422
|
+
// TODO Maybe use
|
423
|
+
// import { global } from '@storybook/global';
|
424
|
+
// global.IS_STORYBOOK
|
425
|
+
if (typeof window.__STORYBOOK_ADDONS_CHANNEL__ == 'undefined')
|
426
|
+
return true;
|
427
|
+
if (window.__STORYBOOK_ADDONS_CHANNEL__.last(SET_GLOBALS) == undefined)
|
428
|
+
return true;
|
429
|
+
return false;
|
430
|
+
}, types_js_1.StorybookEvents.SET_GLOBALS);
|
395
431
|
} while (wait);
|
396
432
|
return false;
|
397
433
|
})(),
|
@@ -400,13 +436,13 @@ class InternalBrowser {
|
|
400
436
|
if (isTimeout)
|
401
437
|
throw new Error('Failed to wait `setStories` event');
|
402
438
|
}
|
403
|
-
async updateStorybookGlobals(
|
404
|
-
if (!
|
439
|
+
async updateStorybookGlobals() {
|
440
|
+
if (!this.#storybookGlobals)
|
405
441
|
return;
|
406
|
-
|
442
|
+
(0, logger_js_1.logger)().debug('Applying storybook globals');
|
407
443
|
await this.#browser.executeScript(function (globals) {
|
408
444
|
window.__CREEVEY_UPDATE_GLOBALS__(globals);
|
409
|
-
},
|
445
|
+
}, this.#storybookGlobals);
|
410
446
|
}
|
411
447
|
async resolveCreeveyHost() {
|
412
448
|
const addresses = (0, webdriver_js_1.getAddresses)();
|
@@ -453,7 +489,7 @@ class InternalBrowser {
|
|
453
489
|
innerHeight: window.innerHeight,
|
454
490
|
};
|
455
491
|
});
|
456
|
-
|
492
|
+
(0, logger_js_1.logger)().debug(`Resizing viewport from ${innerWidth}x${innerHeight} to ${viewport.width}x${viewport.height}`);
|
457
493
|
const dWidth = windowRect.width - innerWidth;
|
458
494
|
const dHeight = windowRect.height - innerHeight;
|
459
495
|
await this.#browser
|
@@ -465,7 +501,7 @@ class InternalBrowser {
|
|
465
501
|
});
|
466
502
|
}
|
467
503
|
async resetMousePosition() {
|
468
|
-
|
504
|
+
(0, logger_js_1.logger)().debug('Resetting mouse position to the top-left corner');
|
469
505
|
const browserName = (await this.#browser.getCapabilities()).getBrowserName();
|
470
506
|
const [browserVersion] = (await this.#browser.getCapabilities()).getBrowserVersion()?.split('.') ??
|
471
507
|
(await this.#browser.getCapabilities()).get('version')?.split('.') ??
|
@@ -491,8 +527,9 @@ class InternalBrowser {
|
|
491
527
|
})
|
492
528
|
.perform();
|
493
529
|
}
|
494
|
-
else if (browserName == 'firefox'
|
530
|
+
else if (browserName == 'firefox') {
|
495
531
|
// NOTE Firefox for some reason moving by 0 x 0 move cursor in bottom left corner :sad:
|
532
|
+
// NOTE In recent versions (eg 128.0) moving by 0 x 0 doesn't work at all
|
496
533
|
await this.#browser.actions().move({ origin: selenium_webdriver_1.Origin.VIEWPORT, x: 0, y: 1 }).perform();
|
497
534
|
}
|
498
535
|
else {
|
@@ -504,7 +541,7 @@ class InternalBrowser {
|
|
504
541
|
const ignoreSelectors = Array.prototype.concat(ignoreElements).filter(Boolean);
|
505
542
|
if (!ignoreSelectors.length)
|
506
543
|
return null;
|
507
|
-
|
544
|
+
(0, logger_js_1.logger)().debug('Hiding ignored elements before capturing');
|
508
545
|
return await this.#browser.executeScript(function (ignoreSelectors) {
|
509
546
|
return window.__CREEVEY_INSERT_IGNORE_STYLES__(ignoreSelectors);
|
510
547
|
}, ignoreSelectors);
|
@@ -561,11 +598,11 @@ class InternalBrowser {
|
|
561
598
|
compositeImage.data[i + 3] = image.data[j + 3];
|
562
599
|
}
|
563
600
|
}
|
564
|
-
return compositeImage
|
601
|
+
return pngjs_1.PNG.sync.write(compositeImage);
|
565
602
|
}
|
566
603
|
async removeIgnoreStyles(ignoreStyles) {
|
567
604
|
if (ignoreStyles) {
|
568
|
-
|
605
|
+
(0, logger_js_1.logger)().debug('Revert hiding ignored elements');
|
569
606
|
await this.#browser.executeScript(function (ignoreStyles) {
|
570
607
|
window.__CREEVEY_REMOVE_IGNORE_STYLES__(ignoreStyles);
|
571
608
|
}, ignoreStyles);
|
@@ -597,7 +634,7 @@ class InternalBrowser {
|
|
597
634
|
this.#keepAliveInterval = setInterval(() => {
|
598
635
|
// NOTE Simple way to keep session alive
|
599
636
|
void this.#browser.getCurrentUrl().then((url) => {
|
600
|
-
logger_js_1.logger.debug('current url', chalk_1.default.magenta(url));
|
637
|
+
(0, logger_js_1.logger)().debug('current url', chalk_1.default.magenta(url));
|
601
638
|
});
|
602
639
|
}, 10 * 1000);
|
603
640
|
}
|