creevey 0.10.0-beta.43 → 0.10.0-beta.45
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/CHANGELOG.md +282 -0
- package/dist/client/addon/controller.js +1 -1
- package/dist/client/addon/controller.js.map +1 -1
- package/dist/client/addon/withCreevey.js +1 -18
- package/dist/client/addon/withCreevey.js.map +1 -1
- package/dist/client/shared/components/PageHeader/PageHeader.js +13 -4
- package/dist/client/shared/components/PageHeader/PageHeader.js.map +1 -1
- package/dist/client/shared/creeveyClientApi.js +10 -0
- package/dist/client/shared/creeveyClientApi.js.map +1 -1
- package/dist/client/web/CreeveyApp.d.ts +1 -0
- package/dist/client/web/CreeveyApp.js +1 -0
- package/dist/client/web/CreeveyApp.js.map +1 -1
- package/dist/client/web/CreeveyContext.d.ts +1 -0
- package/dist/client/web/CreeveyContext.js +1 -0
- package/dist/client/web/CreeveyContext.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/SideBarFooter.js +9 -8
- package/dist/client/web/CreeveyView/SideBar/SideBarFooter.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js +13 -3
- package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/SuiteLink.js +2 -3
- package/dist/client/web/CreeveyView/SideBar/SuiteLink.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/TestLink.js +2 -3
- package/dist/client/web/CreeveyView/SideBar/TestLink.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/TestsStatus.js +1 -0
- package/dist/client/web/CreeveyView/SideBar/TestsStatus.js.map +1 -1
- package/dist/client/web/assets/{index-C47njyZV.js → index-BU4jjKVC.js} +68 -68
- package/dist/client/web/index.html +1 -1
- package/dist/client/web/index.js +8 -3
- package/dist/client/web/index.js.map +1 -1
- package/dist/creevey.d.ts +1 -1
- package/dist/creevey.js +1 -22
- package/dist/creevey.js.map +1 -1
- package/dist/playwright-reporter.d.ts +2 -0
- package/dist/playwright-reporter.js +5 -0
- package/dist/playwright-reporter.js.map +1 -0
- package/dist/playwright.d.ts +1 -1
- package/dist/server/config.js +8 -1
- package/dist/server/config.js.map +1 -1
- package/dist/server/index.js +12 -5
- package/dist/server/index.js.map +1 -1
- package/dist/server/master/api.d.ts +11 -6
- package/dist/server/master/api.js +88 -25
- package/dist/server/master/api.js.map +1 -1
- package/dist/server/master/handlers/capture-handler.d.ts +5 -0
- package/dist/server/master/handlers/capture-handler.js +25 -0
- package/dist/server/master/handlers/capture-handler.js.map +1 -0
- package/dist/server/master/handlers/index.d.ts +4 -0
- package/dist/server/master/handlers/index.js +21 -0
- package/dist/server/master/handlers/index.js.map +1 -0
- package/dist/server/master/handlers/ping-handler.d.ts +2 -0
- package/dist/server/master/handlers/ping-handler.js +8 -0
- package/dist/server/master/handlers/ping-handler.js.map +1 -0
- package/dist/server/master/handlers/static-handler.d.ts +1 -0
- package/dist/server/master/handlers/static-handler.js +22 -0
- package/dist/server/master/handlers/static-handler.js.map +1 -0
- package/dist/server/master/handlers/stories-handler.d.ts +4 -0
- package/dist/server/master/handlers/stories-handler.js +24 -0
- package/dist/server/master/handlers/stories-handler.js.map +1 -0
- package/dist/server/master/master.js +7 -24
- package/dist/server/master/master.js.map +1 -1
- package/dist/server/master/runner.d.ts +4 -6
- package/dist/server/master/runner.js +30 -127
- package/dist/server/master/runner.js.map +1 -1
- package/dist/server/master/server.js +191 -89
- package/dist/server/master/server.js.map +1 -1
- package/dist/server/master/start.d.ts +1 -2
- package/dist/server/master/start.js +11 -29
- package/dist/server/master/start.js.map +1 -1
- package/dist/server/master/testsManager.d.ts +81 -0
- package/dist/server/master/testsManager.js +281 -0
- package/dist/server/master/testsManager.js.map +1 -0
- package/dist/server/playwright/docker-file.js +2 -2
- package/dist/server/playwright/docker-file.js.map +1 -1
- package/dist/server/playwright/reporter.d.ts +87 -0
- package/dist/server/playwright/reporter.js +351 -0
- package/dist/server/playwright/reporter.js.map +1 -0
- package/dist/server/selenium/internal.js +20 -2
- package/dist/server/selenium/internal.js.map +1 -1
- package/dist/server/selenium/selenoid.js +4 -0
- package/dist/server/selenium/selenoid.js.map +1 -1
- package/dist/server/shutdown.d.ts +1 -0
- package/dist/server/shutdown.js +23 -0
- package/dist/server/shutdown.js.map +1 -0
- package/dist/server/stories.d.ts +0 -1
- package/dist/server/stories.js +0 -12
- package/dist/server/stories.js.map +1 -1
- package/dist/server/ui-update.d.ts +10 -0
- package/dist/server/ui-update.js +39 -0
- package/dist/server/ui-update.js.map +1 -0
- package/dist/server/utils.d.ts +6 -0
- package/dist/server/utils.js +39 -8
- package/dist/server/utils.js.map +1 -1
- package/dist/server/worker/start.js +1 -1
- package/dist/server/worker/start.js.map +1 -1
- package/dist/types.d.ts +14 -8
- package/dist/types.js.map +1 -1
- package/docs/examples/playwright-reporter-example.ts +202 -0
- package/docs/migration-0.9-to-0.10.md +144 -0
- package/docs/playwright-reporter.md +357 -0
- package/package.json +10 -14
- package/src/client/addon/controller.ts +1 -1
- package/src/client/addon/withCreevey.ts +2 -16
- package/src/client/shared/components/PageHeader/PageHeader.tsx +18 -4
- package/src/client/shared/creeveyClientApi.ts +10 -0
- package/src/client/web/CreeveyApp.tsx +2 -0
- package/src/client/web/CreeveyContext.tsx +2 -0
- package/src/client/web/CreeveyView/SideBar/SideBarFooter.tsx +19 -17
- package/src/client/web/CreeveyView/SideBar/SideBarHeader.tsx +18 -3
- package/src/client/web/CreeveyView/SideBar/SuiteLink.tsx +9 -7
- package/src/client/web/CreeveyView/SideBar/TestLink.tsx +8 -6
- package/src/client/web/CreeveyView/SideBar/TestsStatus.tsx +1 -0
- package/src/client/web/index.tsx +8 -3
- package/src/creevey.ts +1 -24
- package/src/playwright-reporter.ts +3 -0
- package/src/server/config.ts +9 -1
- package/src/server/index.ts +13 -6
- package/src/server/master/api.ts +94 -28
- package/src/server/master/handlers/capture-handler.ts +20 -0
- package/src/server/master/handlers/index.ts +4 -0
- package/src/server/master/handlers/ping-handler.ts +6 -0
- package/src/server/master/handlers/static-handler.ts +18 -0
- package/src/server/master/handlers/stories-handler.ts +20 -0
- package/src/server/master/master.ts +10 -27
- package/src/server/master/runner.ts +38 -132
- package/src/server/master/server.ts +210 -98
- package/src/server/master/start.ts +17 -41
- package/src/server/master/testsManager.ts +315 -0
- package/src/server/playwright/docker-file.ts +2 -2
- package/src/server/playwright/reporter.ts +386 -0
- package/src/server/selenium/internal.ts +23 -3
- package/src/server/selenium/selenoid.ts +5 -0
- package/src/server/shutdown.ts +19 -0
- package/src/server/stories.ts +1 -12
- package/src/server/ui-update.ts +46 -0
- package/src/server/utils.ts +40 -9
- package/src/server/worker/start.ts +1 -1
- package/src/types.ts +14 -8
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"stories.js","sourceRoot":"","sources":["../../src/server/stories.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"stories.js","sourceRoot":"","sources":["../../src/server/stories.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { Config } from '../types.js';
|
2
|
+
/**
|
3
|
+
* UI Update Mode implementation.
|
4
|
+
* This mode allows users to review and approve screenshots from the browser interface.
|
5
|
+
* It combines the functionality of both --ui and --update flags.
|
6
|
+
*
|
7
|
+
* @param config Creevey configuration
|
8
|
+
* @param port Port to run the server on
|
9
|
+
*/
|
10
|
+
export declare function uiUpdate(config: Config, port: number): Promise<void>;
|
@@ -0,0 +1,39 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.uiUpdate = uiUpdate;
|
4
|
+
const logger_js_1 = require("./logger.js");
|
5
|
+
const testsManager_js_1 = require("./master/testsManager.js");
|
6
|
+
const server_js_1 = require("./master/server.js");
|
7
|
+
const api_js_1 = require("./master/api.js");
|
8
|
+
/**
|
9
|
+
* UI Update Mode implementation.
|
10
|
+
* This mode allows users to review and approve screenshots from the browser interface.
|
11
|
+
* It combines the functionality of both --ui and --update flags.
|
12
|
+
*
|
13
|
+
* @param config Creevey configuration
|
14
|
+
* @param port Port to run the server on
|
15
|
+
*/
|
16
|
+
async function uiUpdate(config, port) {
|
17
|
+
(0, logger_js_1.logger)().info('Starting UI Update Mode');
|
18
|
+
// Initialize TestsManager with the configured directories
|
19
|
+
const testsManager = new testsManager_js_1.TestsManager(config.screenDir, config.reportDir);
|
20
|
+
// Load tests from the report
|
21
|
+
const testsFromReport = testsManager.loadTestsFromReport();
|
22
|
+
if (Object.keys(testsFromReport).length === 0) {
|
23
|
+
(0, logger_js_1.logger)().warn('No tests found in report. Run tests first to generate report data.');
|
24
|
+
return;
|
25
|
+
}
|
26
|
+
// Set tests in the manager
|
27
|
+
testsManager.updateTests(testsFromReport);
|
28
|
+
// Start API server with UI enabled
|
29
|
+
const resolveApi = (0, server_js_1.start)(config.reportDir, port, true);
|
30
|
+
// Initialize API
|
31
|
+
const api = new api_js_1.CreeveyApi(testsManager);
|
32
|
+
// Resolve the API for the server
|
33
|
+
resolveApi(api);
|
34
|
+
// Save test data to make it available for the UI
|
35
|
+
await testsManager.saveTestData();
|
36
|
+
(0, logger_js_1.logger)().info(`UI Update Mode started on http://localhost:${port}/`);
|
37
|
+
(0, logger_js_1.logger)().info('You can now review and approve screenshots from the browser.');
|
38
|
+
}
|
39
|
+
//# sourceMappingURL=ui-update.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ui-update.js","sourceRoot":"","sources":["../../src/server/ui-update.ts"],"names":[],"mappings":";;AAcA,4BA+BC;AA5CD,2CAAqC;AACrC,8DAAwD;AACxD,kDAA0D;AAC1D,4CAA6C;AAE7C;;;;;;;GAOG;AACI,KAAK,UAAU,QAAQ,CAAC,MAAc,EAAE,IAAY;IACzD,IAAA,kBAAM,GAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAEzC,0DAA0D;IAC1D,MAAM,YAAY,GAAG,IAAI,8BAAY,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAE1E,6BAA6B;IAC7B,MAAM,eAAe,GAAG,YAAY,CAAC,mBAAmB,EAAE,CAAC;IAE3D,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9C,IAAA,kBAAM,GAAE,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;QACpF,OAAO;IACT,CAAC;IAED,2BAA2B;IAC3B,YAAY,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAE1C,mCAAmC;IACnC,MAAM,UAAU,GAAG,IAAA,iBAAW,EAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAE7D,iBAAiB;IACjB,MAAM,GAAG,GAAG,IAAI,mBAAU,CAAC,YAAY,CAAC,CAAC;IAEzC,iCAAiC;IACjC,UAAU,CAAC,GAAG,CAAC,CAAC;IAEhB,iDAAiD;IACjD,MAAM,YAAY,CAAC,YAAY,EAAE,CAAC;IAElC,IAAA,kBAAM,GAAE,CAAC,IAAI,CAAC,8CAA8C,IAAI,GAAG,CAAC,CAAC;IACrE,IAAA,kBAAM,GAAE,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;AAChF,CAAC"}
|
package/dist/server/utils.d.ts
CHANGED
@@ -24,6 +24,7 @@ export declare function shouldSkipByOption(browser: string, meta: {
|
|
24
24
|
title: string;
|
25
25
|
name: string;
|
26
26
|
}, skipOption: SkipOption | SkipOption[], reason: string, test?: string): string | boolean;
|
27
|
+
export declare function shutdownOnException(reason: unknown): void;
|
27
28
|
export declare function shutdownWorkers(): Promise<void>;
|
28
29
|
export declare function gracefullyKill(worker: Worker): void;
|
29
30
|
export declare function killTree(rootPid: number): Promise<void>;
|
@@ -39,4 +40,9 @@ export declare function readDirRecursive(dirPath: string): string[];
|
|
39
40
|
export declare function tryToLoadTestsData(filename: string): Partial<Record<string, ServerTest>> | undefined;
|
40
41
|
export declare function loadThroughTSX<T>(callback: (load: (modulePath: string) => Promise<T>) => Promise<T>): Promise<T>;
|
41
42
|
export declare function waitOnUrl(waitUrl: string, timeout: number, delay: number): Promise<void>;
|
43
|
+
/**
|
44
|
+
* Copies static assets to the report directory
|
45
|
+
* @param reportDir Directory where the report will be generated
|
46
|
+
*/
|
47
|
+
export declare function copyStatics(reportDir: string): Promise<void>;
|
42
48
|
export {};
|
package/dist/server/utils.js
CHANGED
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.downloadBinary = exports.isInsideDocker = exports.skipOptionKeys = exports.configExt = exports.isShuttingDown = void 0;
|
7
7
|
exports.shouldSkip = shouldSkip;
|
8
8
|
exports.shouldSkipByOption = shouldSkipByOption;
|
9
|
+
exports.shutdownOnException = shutdownOnException;
|
9
10
|
exports.shutdownWorkers = shutdownWorkers;
|
10
11
|
exports.gracefullyKill = gracefullyKill;
|
11
12
|
exports.killTree = killTree;
|
@@ -19,19 +20,21 @@ exports.readDirRecursive = readDirRecursive;
|
|
19
20
|
exports.tryToLoadTestsData = tryToLoadTestsData;
|
20
21
|
exports.loadThroughTSX = loadThroughTSX;
|
21
22
|
exports.waitOnUrl = waitOnUrl;
|
23
|
+
exports.copyStatics = copyStatics;
|
22
24
|
const fs_1 = __importDefault(require("fs"));
|
23
|
-
const
|
25
|
+
const path_1 = __importDefault(require("path"));
|
24
26
|
const http_1 = __importDefault(require("http"));
|
27
|
+
const https_1 = __importDefault(require("https"));
|
28
|
+
const assert_1 = __importDefault(require("assert"));
|
25
29
|
const cluster_1 = __importDefault(require("cluster"));
|
26
|
-
const
|
30
|
+
const pidtree_1 = __importDefault(require("pidtree"));
|
27
31
|
const url_1 = require("url");
|
28
32
|
const api_1 = require("tsx/esm/api");
|
29
33
|
const api_2 = require("tsx/cjs/api");
|
30
34
|
const types_js_1 = require("../types.js");
|
31
35
|
const messages_js_1 = require("./messages.js");
|
32
36
|
const webdriver_js_1 = require("./webdriver.js");
|
33
|
-
const
|
34
|
-
const pidtree_1 = __importDefault(require("pidtree"));
|
37
|
+
const logger_js_1 = require("./logger.js");
|
35
38
|
const importMetaUrl = (0, url_1.pathToFileURL)(__filename).href;
|
36
39
|
exports.isShuttingDown = { current: false };
|
37
40
|
exports.configExt = ['.js', '.mjs', '.ts', '.cjs', '.mts', '.cts'];
|
@@ -82,6 +85,17 @@ function shouldSkipByOption(browser, meta, skipOption, reason, test) {
|
|
82
85
|
const skipByTest = !(0, types_js_1.isDefined)(test) || matchBy(tests, test);
|
83
86
|
return skipByBrowser && skipByKind && skipByStory && skipByTest && reason;
|
84
87
|
}
|
88
|
+
function shutdownOnException(reason) {
|
89
|
+
if (exports.isShuttingDown.current)
|
90
|
+
return;
|
91
|
+
const error = reason instanceof Error ? (reason.stack ?? reason.message) : reason;
|
92
|
+
(0, logger_js_1.logger)().error(error);
|
93
|
+
process.exitCode = -1;
|
94
|
+
if (cluster_1.default.isWorker)
|
95
|
+
(0, messages_js_1.emitWorkerMessage)({ type: 'error', payload: { subtype: 'unknown', error } });
|
96
|
+
if (cluster_1.default.isPrimary)
|
97
|
+
void shutdownWorkers();
|
98
|
+
}
|
85
99
|
async function shutdownWorkers() {
|
86
100
|
exports.isShuttingDown.current = true;
|
87
101
|
await Promise.all(Object.values(cluster_1.default.workers ?? {})
|
@@ -132,7 +146,7 @@ function resolvePlaywrightBrowserType(browserName) {
|
|
132
146
|
}
|
133
147
|
async function getCreeveyCache() {
|
134
148
|
const { default: findCacheDir } = await import('find-cache-dir');
|
135
|
-
return findCacheDir({ name: 'creevey', cwd:
|
149
|
+
return findCacheDir({ name: 'creevey', cwd: path_1.default.dirname((0, url_1.fileURLToPath)(importMetaUrl)) });
|
136
150
|
}
|
137
151
|
async function runSequence(seq, predicate) {
|
138
152
|
for (const fn of seq) {
|
@@ -196,15 +210,17 @@ function tryToLoadTestsData(filename) {
|
|
196
210
|
}
|
197
211
|
const [nodeVersion] = process.versions.node.split('.').map(Number);
|
198
212
|
async function loadThroughTSX(callback) {
|
199
|
-
|
200
|
-
const
|
213
|
+
const unregisterESM = nodeVersion > 18 ? (0, api_1.register)() : types_js_1.noop;
|
214
|
+
const unregisterCJS = (0, api_2.register)();
|
201
215
|
const result = await callback((modulePath) => nodeVersion > 18
|
202
216
|
? import(modulePath)
|
203
217
|
: // eslint-disable-next-line @typescript-eslint/no-require-imports
|
204
218
|
Promise.resolve(require(modulePath)));
|
205
219
|
// NOTE: `unregister` type is `(() => Promise<void>) | (() => void)`
|
206
220
|
// eslint-disable-next-line @typescript-eslint/await-thenable, @typescript-eslint/no-confusing-void-expression
|
207
|
-
await
|
221
|
+
await unregisterCJS();
|
222
|
+
// eslint-disable-next-line @typescript-eslint/await-thenable, @typescript-eslint/no-confusing-void-expression
|
223
|
+
await unregisterESM();
|
208
224
|
return result;
|
209
225
|
}
|
210
226
|
function waitOnUrl(waitUrl, timeout, delay) {
|
@@ -234,4 +250,19 @@ function waitOnUrl(waitUrl, timeout, delay) {
|
|
234
250
|
}, delay);
|
235
251
|
})));
|
236
252
|
}
|
253
|
+
/**
|
254
|
+
* Copies static assets to the report directory
|
255
|
+
* @param reportDir Directory where the report will be generated
|
256
|
+
*/
|
257
|
+
async function copyStatics(reportDir) {
|
258
|
+
const clientDir = path_1.default.join(path_1.default.dirname((0, url_1.fileURLToPath)(importMetaUrl)), '../../dist/client/web');
|
259
|
+
const assets = (await fs_1.default.promises.readdir(path_1.default.join(clientDir, 'assets'), { withFileTypes: true }))
|
260
|
+
.filter((dirent) => dirent.isFile())
|
261
|
+
.map((dirent) => dirent.name);
|
262
|
+
await fs_1.default.promises.mkdir(path_1.default.join(reportDir, 'assets'), { recursive: true });
|
263
|
+
await fs_1.default.promises.copyFile(path_1.default.join(clientDir, 'index.html'), path_1.default.join(reportDir, 'index.html'));
|
264
|
+
for (const asset of assets) {
|
265
|
+
await fs_1.default.promises.copyFile(path_1.default.join(clientDir, 'assets', asset), path_1.default.join(reportDir, 'assets', asset));
|
266
|
+
}
|
267
|
+
}
|
237
268
|
//# sourceMappingURL=utils.js.map
|
package/dist/server/utils.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/server/utils.ts"],"names":[],"mappings":";;;;;;
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/server/utils.ts"],"names":[],"mappings":"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"}
|
@@ -189,7 +189,7 @@ async function start(browser, gridUrl, config, options) {
|
|
189
189
|
browserName: baseContext.browserName,
|
190
190
|
workerId: process.pid,
|
191
191
|
images: imagesContext.images,
|
192
|
-
error: serializeError(error),
|
192
|
+
error: error ? serializeError(error) : undefined,
|
193
193
|
duration,
|
194
194
|
attachments: imagesContext.attachments,
|
195
195
|
retries: message.payload.retries,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/server/worker/start.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/server/worker/start.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
@@ -225,20 +225,17 @@ export interface Config {
|
|
225
225
|
/**
|
226
226
|
* Creevey has two built-in stories providers.
|
227
227
|
*
|
228
|
-
* `
|
229
|
-
* This provider builds and runs storybook in nodejs env, that allows write interaction tests by using Selenium API.
|
230
|
-
* The downside is it depends from project build specific and slightly increases init time.
|
231
|
-
*
|
232
|
-
* `browserStoriesProvider` - The second one is used by default with CSFv3 storybook feature.
|
233
|
-
* It load stories from storybook which is running in browser, like storyshots or loki do it.
|
228
|
+
* `browserStoriesProvider` - Extracts stories directly from the Storybook UI. It loads stories from storybook which is running in browser, like storyshots or loki do it.
|
234
229
|
* The downside of this, you can't use interaction tests in Creevey, unless you use CSFv3.
|
235
230
|
* Where you can define `play` method for each story
|
236
231
|
*
|
232
|
+
* `hybridStoriesProvider` - Combines stories from Storybook with tests from separate files. This is the default provider used in the configuration.
|
233
|
+
*
|
237
234
|
* Usage
|
238
235
|
* ``` typescript
|
239
|
-
* import { nodejsStoriesProvider as provider } from 'creevey'
|
240
|
-
* // or
|
241
236
|
* import { browserStoriesProvider as provider } from 'creevey'
|
237
|
+
* // or
|
238
|
+
* import { hybridStoriesProvider as provider } from 'creevey'
|
242
239
|
*
|
243
240
|
* // Creevey config
|
244
241
|
* module.exports = {
|
@@ -303,7 +300,15 @@ export interface Options {
|
|
303
300
|
_: string[];
|
304
301
|
config?: string;
|
305
302
|
port: number;
|
303
|
+
/**
|
304
|
+
* Run in UI mode with web interface for reviewing test results
|
305
|
+
* When used with `update` flag, enables UI Update Mode for approving screenshots
|
306
|
+
*/
|
306
307
|
ui: boolean;
|
308
|
+
/**
|
309
|
+
* Run in update mode to approve failed tests
|
310
|
+
* When used with `ui` flag, enables UI Update Mode for approving screenshots from browser
|
311
|
+
*/
|
307
312
|
update: boolean | string;
|
308
313
|
debug: boolean;
|
309
314
|
trace: boolean;
|
@@ -486,6 +491,7 @@ export interface CreeveyStatus {
|
|
486
491
|
isRunning: boolean;
|
487
492
|
tests: Partial<Record<string, TestData>>;
|
488
493
|
browsers: string[];
|
494
|
+
isUpdateMode: boolean;
|
489
495
|
}
|
490
496
|
export interface CreeveyUpdate {
|
491
497
|
isRunning?: boolean;
|
package/dist/types.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AA6lBA,oBAEC;AAED,8BAEC;AAED,wBASC;AAED,4BAEC;AAED,4BAEC;AAGD,gCAEC;AAED,oCAEC;AAED,4CAEC;AAED,0CAEC;AAED,4CAEC;AAED,sCAEC;AApmBD,IAAY,eAUX;AAVD,WAAY,eAAe;IACzB,6CAA0B,CAAA;IAC1B,wDAAqC,CAAA;IACrC,iDAA8B,CAAA;IAC9B,mDAAgC,CAAA;IAChC,iDAA8B,CAAA;IAC9B,gEAA6C,CAAA;IAC7C,wDAAqC,CAAA;IACrC,6CAA0B,CAAA;IAC1B,mDAAgC,CAAA;AAClC,CAAC,EAVW,eAAe,+BAAf,eAAe,QAU1B;AAmYD,MAAa,WAAY,SAAQ,KAAK;IACpC,MAAM,CAA4C;CACnD;AAFD,kCAEC;AAwCD,IAAY,WASX;AATD,WAAY,WAAW;IACrB,kCAAmB,CAAA;IACnB,8BAAe,CAAA;IACf,oCAAqB,CAAA;IACrB,sCAAuB,CAAA;IACvB,kCAAmB,CAAA;IACnB,oCAAqB,CAAA;IACrB,iCAAkB,CAAA;IAClB,iCAAkB,CAAA;AACpB,CAAC,EATW,WAAW,2BAAX,WAAW,QAStB;AAkHD,SAAgB,IAAI;IAClB,UAAU;AACZ,CAAC;AAED,SAAgB,SAAS,CAAI,KAA2B;IACtD,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/C,CAAC;AAED,SAAgB,MAAM,CAAC,CAA8B;IACnD,OAAO,CACL,SAAS,CAAC,CAAC,CAAC;QACZ,QAAQ,CAAC,CAAC,CAAC;QACX,IAAI,IAAI,CAAC;QACT,SAAS,IAAI,CAAC;QACd,OAAO,CAAC,CAAC,EAAE,IAAI,QAAQ;QACvB,OAAO,CAAC,CAAC,OAAO,IAAI,QAAQ,CAC7B,CAAC;AACJ,CAAC;AAED,SAAgB,QAAQ,CAAC,CAAU;IACjC,OAAO,OAAO,CAAC,IAAI,QAAQ,IAAI,CAAC,IAAI,IAAI,CAAC;AAC3C,CAAC;AAED,SAAgB,QAAQ,CAAC,CAAU;IACjC,OAAO,OAAO,CAAC,IAAI,QAAQ,CAAC;AAC9B,CAAC;AAED,8DAA8D;AAC9D,SAAgB,UAAU,CAAC,CAAU;IACnC,OAAO,OAAO,CAAC,IAAI,UAAU,CAAC;AAChC,CAAC;AAED,SAAgB,YAAY,CAAC,KAAc;IACzC,OAAO,KAAK,YAAY,WAAW,IAAI,QAAQ,IAAI,KAAK,CAAC;AAC3D,CAAC;AAED,SAAgB,gBAAgB,CAAC,OAAgB;IAC/C,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC;AACjD,CAAC;AAED,SAAgB,eAAe,CAAC,OAAgB;IAC9C,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC;AAChE,CAAC;AAED,SAAgB,gBAAgB,CAAC,OAAgB;IAC/C,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC;AACjE,CAAC;AAED,SAAgB,aAAa,CAAC,OAAgB;IAC5C,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC;AAC9D,CAAC"}
|
@@ -0,0 +1,202 @@
|
|
1
|
+
/**
|
2
|
+
* Example of using Creevey's Playwright Reporter
|
3
|
+
*
|
4
|
+
* This example demonstrates:
|
5
|
+
* 1. Basic configuration in playwright.config.ts
|
6
|
+
* 2. Taking and comparing screenshots in tests
|
7
|
+
* 3. Using custom test names for better organization
|
8
|
+
* 4. Advanced features like test steps and error handling
|
9
|
+
* 5. Performance optimizations for large test suites
|
10
|
+
*/
|
11
|
+
|
12
|
+
// playwright.config.ts
|
13
|
+
import { defineConfig } from '@playwright/test';
|
14
|
+
|
15
|
+
export default defineConfig({
|
16
|
+
testDir: './tests',
|
17
|
+
use: {
|
18
|
+
// Browser options
|
19
|
+
viewport: { width: 1280, height: 720 },
|
20
|
+
// Base URL to use in navigation
|
21
|
+
baseURL: 'https://example.com',
|
22
|
+
},
|
23
|
+
// Configure reporters
|
24
|
+
reporter: [
|
25
|
+
['html'], // Standard Playwright HTML reporter
|
26
|
+
['list'], // Console output
|
27
|
+
// Creevey reporter with custom configuration
|
28
|
+
['creevey/playwright-reporter', {
|
29
|
+
reportDir: './visual-test-results',
|
30
|
+
screenDir: './visual-reference-images',
|
31
|
+
port: 3030,
|
32
|
+
// Performance optimizations
|
33
|
+
batchProcessing: true,
|
34
|
+
maxConcurrency: 4,
|
35
|
+
lazyInit: true,
|
36
|
+
// Error handling
|
37
|
+
debug: true,
|
38
|
+
logFile: './creevey-debug.log',
|
39
|
+
// Custom comparison options
|
40
|
+
customComparisonOptions: {
|
41
|
+
threshold: 0.1, // More tolerant comparison
|
42
|
+
ignoreAntialiasing: true
|
43
|
+
}
|
44
|
+
}]
|
45
|
+
],
|
46
|
+
});
|
47
|
+
|
48
|
+
// Example test file: tests/visual.spec.ts
|
49
|
+
import { test, expect } from '@playwright/test';
|
50
|
+
|
51
|
+
// Basic screenshot test
|
52
|
+
test('homepage visual test', async ({ page }) => {
|
53
|
+
await page.goto('/');
|
54
|
+
|
55
|
+
// Wait for content to stabilize
|
56
|
+
await page.waitForTimeout(1000);
|
57
|
+
|
58
|
+
// Take a screenshot and compare it
|
59
|
+
await expect(page).toHaveScreenshot('homepage.png');
|
60
|
+
});
|
61
|
+
|
62
|
+
// Test with custom elements and masks
|
63
|
+
test('product page with dynamic content', async ({ page }) => {
|
64
|
+
await page.goto('/products/sample');
|
65
|
+
|
66
|
+
// Mask dynamic elements like timestamps or user-specific data
|
67
|
+
await expect(page).toHaveScreenshot('product-page.png', {
|
68
|
+
mask: [page.locator('.timestamp'), page.locator('.user-greeting')]
|
69
|
+
});
|
70
|
+
});
|
71
|
+
|
72
|
+
// Test with custom viewport size
|
73
|
+
test('mobile view', async ({ page }) => {
|
74
|
+
// Override viewport for this test
|
75
|
+
await page.setViewportSize({ width: 375, height: 667 });
|
76
|
+
|
77
|
+
await page.goto('/');
|
78
|
+
|
79
|
+
// Wait for any responsive adjustments
|
80
|
+
await page.waitForTimeout(500);
|
81
|
+
|
82
|
+
await expect(page).toHaveScreenshot('homepage-mobile.png');
|
83
|
+
});
|
84
|
+
|
85
|
+
// Test with custom Creevey metadata
|
86
|
+
test('checkout flow with custom test naming', async ({ page }) => {
|
87
|
+
// Add custom Creevey metadata
|
88
|
+
test.info().annotations.push({
|
89
|
+
type: 'creevey',
|
90
|
+
description: JSON.stringify({
|
91
|
+
testName: 'checkout-flow',
|
92
|
+
browser: 'chromium',
|
93
|
+
// Additional metadata as needed
|
94
|
+
storyPath: ['E-commerce', 'Checkout']
|
95
|
+
})
|
96
|
+
});
|
97
|
+
|
98
|
+
await page.goto('/cart');
|
99
|
+
await page.click('.checkout-button');
|
100
|
+
|
101
|
+
// Take multiple screenshots in the same test
|
102
|
+
await test.info().attach('step1-shipping', {
|
103
|
+
body: await page.screenshot(),
|
104
|
+
contentType: 'image/png'
|
105
|
+
});
|
106
|
+
|
107
|
+
await page.fill('#address', '123 Test St');
|
108
|
+
await page.click('.continue-button');
|
109
|
+
|
110
|
+
await test.info().attach('step2-payment', {
|
111
|
+
body: await page.screenshot(),
|
112
|
+
contentType: 'image/png'
|
113
|
+
});
|
114
|
+
|
115
|
+
// Final verification
|
116
|
+
await expect(page.locator('.payment-form')).toBeVisible();
|
117
|
+
});
|
118
|
+
|
119
|
+
// Test using test steps for better organization
|
120
|
+
test('multi-step checkout process', async ({ page }) => {
|
121
|
+
// Setup test metadata
|
122
|
+
test.info().annotations.push({
|
123
|
+
type: 'creevey',
|
124
|
+
description: JSON.stringify({
|
125
|
+
testName: 'multi-step-checkout',
|
126
|
+
storyPath: ['E-commerce', 'Checkout', 'Steps']
|
127
|
+
})
|
128
|
+
});
|
129
|
+
|
130
|
+
await test.step('Step 1: Navigate to cart', async () => {
|
131
|
+
await page.goto('/cart');
|
132
|
+
// Screenshot will be named with the step name prefix
|
133
|
+
await test.info().attach('cart-view', {
|
134
|
+
body: await page.screenshot(),
|
135
|
+
contentType: 'image/png'
|
136
|
+
});
|
137
|
+
});
|
138
|
+
|
139
|
+
await test.step('Step 2: Begin checkout', async () => {
|
140
|
+
await page.click('.checkout-button');
|
141
|
+
await page.waitForSelector('#checkout-form');
|
142
|
+
await test.info().attach('checkout-form', {
|
143
|
+
body: await page.screenshot(),
|
144
|
+
contentType: 'image/png'
|
145
|
+
});
|
146
|
+
});
|
147
|
+
|
148
|
+
await test.step('Step 3: Fill shipping details', async () => {
|
149
|
+
await page.fill('#name', 'Test User');
|
150
|
+
await page.fill('#address', '123 Test St');
|
151
|
+
await page.fill('#city', 'Test City');
|
152
|
+
await page.fill('#zip', '12345');
|
153
|
+
await test.info().attach('shipping-details', {
|
154
|
+
body: await page.screenshot(),
|
155
|
+
contentType: 'image/png'
|
156
|
+
});
|
157
|
+
});
|
158
|
+
|
159
|
+
await test.step('Step 4: Submit and verify', async () => {
|
160
|
+
await page.click('.submit-button');
|
161
|
+
await page.waitForSelector('.confirmation-page');
|
162
|
+
await test.info().attach('confirmation', {
|
163
|
+
body: await page.screenshot(),
|
164
|
+
contentType: 'image/png'
|
165
|
+
});
|
166
|
+
});
|
167
|
+
});
|
168
|
+
|
169
|
+
// Test demonstrating error handling
|
170
|
+
test('test with error handling', async ({ page }) => {
|
171
|
+
try {
|
172
|
+
await page.goto('/potentially-unstable-page');
|
173
|
+
|
174
|
+
// Try to take a screenshot even if page is not in ideal state
|
175
|
+
try {
|
176
|
+
await test.info().attach('best-effort-screenshot', {
|
177
|
+
body: await page.screenshot(),
|
178
|
+
contentType: 'image/png'
|
179
|
+
});
|
180
|
+
} catch (screenshotError) {
|
181
|
+
console.warn('Could not take screenshot, continuing test:', (screenshotError as Error).message);
|
182
|
+
}
|
183
|
+
|
184
|
+
// Continue with test if possible
|
185
|
+
await page.click('.button');
|
186
|
+
|
187
|
+
// Always try to capture final state
|
188
|
+
await test.info().attach('final-state', {
|
189
|
+
body: await page.screenshot(),
|
190
|
+
contentType: 'image/png'
|
191
|
+
});
|
192
|
+
} catch (error) {
|
193
|
+
// Capture error state
|
194
|
+
await test.info().attach('error-state', {
|
195
|
+
body: await page.screenshot(),
|
196
|
+
contentType: 'image/png'
|
197
|
+
});
|
198
|
+
|
199
|
+
// Re-throw to fail the test
|
200
|
+
throw error;
|
201
|
+
}
|
202
|
+
});
|