creevey 0.10.0-rc.0 → 0.10.0-rc.2
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/playwright/generator.d.ts +9 -0
- package/dist/playwright/generator.js +33 -9
- package/dist/playwright/generator.js.map +1 -1
- package/dist/playwright/reporter.js +1 -1
- package/dist/playwright/reporter.js.map +1 -1
- package/dist/server/index.js +15 -10
- package/dist/server/index.js.map +1 -1
- package/dist/server/reporters/creevey.js +2 -2
- package/dist/server/reporters/creevey.js.map +1 -1
- package/docs/examples/playwright-reporer/playwright.config.ts +1 -2
- package/docs/migration-0.9-to-0.10.md +41 -3
- package/docs/playwright-reporter.md +98 -285
- package/package.json +1 -1
- package/playwright.config.mts +1 -1
- package/src/playwright/generator.ts +48 -10
- package/src/playwright/reporter.ts +1 -1
- package/src/server/index.ts +13 -9
- package/src/server/reporters/creevey.ts +5 -2
@@ -21,5 +21,14 @@ export interface TestsConfig {
|
|
21
21
|
* @default true
|
22
22
|
*/
|
23
23
|
reusePageContext: boolean;
|
24
|
+
/**
|
25
|
+
* Enables trace recording for each test.
|
26
|
+
* @default false
|
27
|
+
*/
|
28
|
+
trace: boolean | {
|
29
|
+
screenshots?: boolean;
|
30
|
+
snapshots?: boolean;
|
31
|
+
sources?: boolean;
|
32
|
+
};
|
24
33
|
}
|
25
34
|
export declare function definePlaywrightTests(config?: Partial<TestsConfig>): void;
|
@@ -19,6 +19,7 @@ const defaultConfig = {
|
|
19
19
|
odiffOptions: { threshold: 0.1, antialiasing: true },
|
20
20
|
comparisonLibrary: 'pixelmatch',
|
21
21
|
reusePageContext: true,
|
22
|
+
trace: false,
|
22
23
|
};
|
23
24
|
// TODO: Use this Storybook function for building args for query params
|
24
25
|
// export const buildArgsParam = (initialArgs: Args | undefined, args: Args): string => {
|
@@ -49,6 +50,8 @@ async function takeScreenshot(page, storyId, captureElement, ignoreElements) {
|
|
49
50
|
const ignore = ignoreElements ? (Array.isArray(ignoreElements) ? ignoreElements : [ignoreElements]) : [];
|
50
51
|
const mask = ignore.map((selector) => page.locator(selector));
|
51
52
|
if (captureElement) {
|
53
|
+
// TODO Use page.locator(captureElement) instead of page.$(captureElement)
|
54
|
+
// TODO Test `#storybook-root > *` selector, probably we don't need `> *` and use `#storybook-root >*:first-child` instead
|
52
55
|
const element = await page.$(captureElement);
|
53
56
|
if (!element)
|
54
57
|
throw new Error(`Capture element '${captureElement}' not found for story '${storyId}'`);
|
@@ -72,8 +75,9 @@ function definePlaywrightTests(config) {
|
|
72
75
|
(0, assert_1.default)(cacheDir, 'Cache directory not found');
|
73
76
|
const stories = JSON.parse((0, fs_1.readFileSync)(path_1.default.join(cacheDir, 'stories.json'), 'utf-8'));
|
74
77
|
let globals = {};
|
78
|
+
let reusedContext;
|
75
79
|
let reusedPage;
|
76
|
-
const { diffOptions, odiffOptions, comparisonLibrary, reusePageContext } = {
|
80
|
+
const { diffOptions, odiffOptions, comparisonLibrary, reusePageContext, trace } = {
|
77
81
|
...defaultConfig,
|
78
82
|
...config,
|
79
83
|
};
|
@@ -93,12 +97,18 @@ function definePlaywrightTests(config) {
|
|
93
97
|
};
|
94
98
|
let assertImage;
|
95
99
|
test_1.test.beforeAll('Setup images context', async ({ browser }, { project }) => {
|
96
|
-
const { snapshotDir, outputDir } = project;
|
100
|
+
const { snapshotDir, outputDir, use: { viewport }, } = project;
|
97
101
|
if (reusePageContext) {
|
98
102
|
const storybookUrl = project.use.baseURL;
|
99
103
|
(0, assert_1.default)(storybookUrl, 'Storybook URL not found');
|
100
|
-
|
101
|
-
await
|
104
|
+
// TODO Record video
|
105
|
+
reusedContext = await browser.newContext({ viewport, screen: viewport ?? undefined });
|
106
|
+
if (trace) {
|
107
|
+
await reusedContext.tracing.start(typeof trace === 'object' ? trace : { screenshots: true, snapshots: true, sources: true });
|
108
|
+
}
|
109
|
+
reusedPage = await reusedContext.newPage();
|
110
|
+
await reusedPage.goto((0, webdriver_1.appendIframePath)(storybookUrl), { timeout: 60000 });
|
111
|
+
await reusedPage.waitForLoadState('networkidle');
|
102
112
|
await (0, helpers_1.waitForStorybookReady)(reusedPage);
|
103
113
|
}
|
104
114
|
if (comparisonLibrary === 'pixelmatch') {
|
@@ -124,10 +134,8 @@ function definePlaywrightTests(config) {
|
|
124
134
|
if (!reusePageContext) {
|
125
135
|
const storybookUrl = project.use.baseURL;
|
126
136
|
(0, assert_1.default)(storybookUrl, 'Storybook URL not found');
|
127
|
-
await page.goto(appendStoryQueryParams((0, webdriver_1.appendIframePath)(storybookUrl), storyId), {
|
128
|
-
|
129
|
-
timeout: 60000,
|
130
|
-
});
|
137
|
+
await page.goto(appendStoryQueryParams((0, webdriver_1.appendIframePath)(storybookUrl), storyId), { timeout: 60000 });
|
138
|
+
await page.waitForLoadState('networkidle');
|
131
139
|
await (0, helpers_1.waitForStorybookReady)(page);
|
132
140
|
// TODO: Pass globals to story
|
133
141
|
await updateGlobals(page, storybookGlobals);
|
@@ -142,6 +150,11 @@ function definePlaywrightTests(config) {
|
|
142
150
|
// TODO: DRY with withCreevey.ts
|
143
151
|
// NOTE: Copy-pasted from withCreevey.ts
|
144
152
|
const channel = window.__STORYBOOK_ADDONS_CHANNEL__;
|
153
|
+
async function sequence(fns) {
|
154
|
+
for (const fn of fns) {
|
155
|
+
await fn();
|
156
|
+
}
|
157
|
+
}
|
145
158
|
const waitForReady = shouldWaitForReady
|
146
159
|
? new Promise((resolve) => (window.__CREEVEY_SET_READY_FOR_CAPTURE__ = resolve))
|
147
160
|
: Promise.resolve();
|
@@ -175,7 +188,10 @@ function definePlaywrightTests(config) {
|
|
175
188
|
channel.emit(StorybookEvents.SET_CURRENT_STORY, { storyId });
|
176
189
|
}, 0);
|
177
190
|
try {
|
178
|
-
await Promise.race([
|
191
|
+
await Promise.race([
|
192
|
+
renderErrorPromise,
|
193
|
+
sequence([() => storyRenderedPromise, () => document.fonts.ready, () => waitForReady]),
|
194
|
+
]);
|
179
195
|
}
|
180
196
|
catch (reason) {
|
181
197
|
// NOTE Event `STORY_THREW_EXCEPTION` triggered only in react and vue frameworks and return Error instance
|
@@ -222,6 +238,14 @@ function definePlaywrightTests(config) {
|
|
222
238
|
}
|
223
239
|
}
|
224
240
|
});
|
241
|
+
if (trace && reusePageContext) {
|
242
|
+
test_1.test.afterAll('Save trace', async (_, { project }) => {
|
243
|
+
const { outputDir, name: projectName } = project;
|
244
|
+
await reusedContext.tracing.stop({
|
245
|
+
path: `${outputDir}/traces/${projectName}-${process.pid}.zip`,
|
246
|
+
});
|
247
|
+
});
|
248
|
+
}
|
225
249
|
for (const story of Object.values(stories)) {
|
226
250
|
const { name, title, parameters } = story;
|
227
251
|
const { captureElement, ignoreElements } = (parameters.creevey ?? {});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/playwright/generator.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/playwright/generator.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../src/playwright/reporter.ts"],"names":[],"mappings":";;;;;AAAA,2DAA6B;AAC7B,mCAAoC;AAEpC,0CAOqB;AACrB,sEAAgE;AAChE,oDAAqD;AACrD,iDAAiD;AACjD,0DAAmD;AACnD,oDAA4B;AAE5B;;;GAGG;AACH,MAAM,UAAU;IACN,KAAK,CAAgB;IAE7B;QACE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,SAA8B;QACpC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YAC/D,OAAO,CAAC,KAAK,CAAC,yBAAyB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnG,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB;QACrB,MAAM,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,yBAAyB;IACrB,YAAY,GAAwB,IAAI,CAAC;IACzC,GAAG,GAAsB,IAAI,CAAC;IAC9B,IAAI,CAAS;IACb,KAAK,CAAU;IACf,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,+CAA+C;IACtF,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IAEtC;;;OAGG;IACH,YAAY,OAA4C;QACtD,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,
|
1
|
+
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../src/playwright/reporter.ts"],"names":[],"mappings":"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"}
|
package/dist/server/index.js
CHANGED
@@ -54,7 +54,7 @@ const docker_js_1 = require("./docker.js");
|
|
54
54
|
const promises_1 = require("fs/promises");
|
55
55
|
const assert_1 = __importDefault(require("assert"));
|
56
56
|
const v = __importStar(require("valibot"));
|
57
|
-
const playwright_js_1 = require("
|
57
|
+
const playwright_js_1 = require("../playwright.js");
|
58
58
|
async function getPlaywrightVersion() {
|
59
59
|
const { default: { version }, } = await import('playwright-core/package.json', { with: { type: 'json' } });
|
60
60
|
return version;
|
@@ -199,17 +199,22 @@ async function default_1(command, options) {
|
|
199
199
|
}
|
200
200
|
}
|
201
201
|
if (v.is(types_js_1.WorkerOptionsSchema, options) && cluster_1.default.isWorker) {
|
202
|
-
if (config.webdriver !== playwright_js_1.PlaywrightWebdriver)
|
203
|
-
return;
|
204
202
|
let gridUrl = options.gridUrl;
|
205
203
|
const { browser = config_js_1.defaultBrowser, debug } = options;
|
206
|
-
if (
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
204
|
+
if (!gridUrl) {
|
205
|
+
if (config.webdriver === playwright_js_1.PlaywrightWebdriver) {
|
206
|
+
if (config.useDocker) {
|
207
|
+
const version = await getPlaywrightVersion();
|
208
|
+
gridUrl = await startPlaywright(config, browser, version, debug);
|
209
|
+
}
|
210
|
+
else {
|
211
|
+
const { browserName } = config.browsers[browser];
|
212
|
+
gridUrl = `creevey://${(0, utils_js_1.resolvePlaywrightBrowserType)(browserName)}`;
|
213
|
+
}
|
214
|
+
}
|
215
|
+
else {
|
216
|
+
(0, assert_1.default)(gridUrl, 'Grid URL is required for Selenium');
|
217
|
+
}
|
213
218
|
}
|
214
219
|
(0, logger_js_1.logger)().info(`Starting Worker for ${browser}`);
|
215
220
|
return (await import('./worker/start.js')).start(browser, gridUrl, config, options);
|
package/dist/server/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkJA,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
@@ -21,10 +21,10 @@ class CreeveyReporter {
|
|
21
21
|
this.getLogger(test.creevey).warn(chalk_1.default.cyan(test.fullTitle()));
|
22
22
|
});
|
23
23
|
runner.on(types_js_1.TEST_EVENTS.TEST_PASS, (test) => {
|
24
|
-
this.getLogger(test.creevey).info(chalk_1.default.cyan(test.fullTitle()), chalk_1.default.gray(`(${test.duration} ms)`));
|
24
|
+
this.getLogger(test.creevey).info(chalk_1.default.cyan(test.fullTitle()), test.duration ? chalk_1.default.gray(`(${test.duration} ms)`) : '');
|
25
25
|
});
|
26
26
|
runner.on(types_js_1.TEST_EVENTS.TEST_FAIL, (test, error) => {
|
27
|
-
this.getLogger(test.creevey).error(chalk_1.default.cyan(test.fullTitle()), chalk_1.default.gray(`(${test.duration} ms)`), '\n ', this.getErrors(error, (error, imageName) => `${chalk_1.default.bold(imageName ?? test.creevey.browserName)}:${error}`, (error) => error.stack ?? error.message).join('\n '));
|
27
|
+
this.getLogger(test.creevey).error(chalk_1.default.cyan(test.fullTitle()), test.duration ? chalk_1.default.gray(`(${test.duration} ms)`) : '', '\n ', this.getErrors(error, (error, imageName) => `${chalk_1.default.bold(imageName ?? test.creevey.browserName)}:${error}`, (error) => error.stack ?? error.message).join('\n '));
|
28
28
|
});
|
29
29
|
}
|
30
30
|
getLogger(options) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"creevey.js","sourceRoot":"","sources":["../../../src/server/reporters/creevey.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,wDAA8B;AAC9B,oFAA4C;AAC5C,6CAAqE;AAGrE,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;IAClB,MAAM,GAAyB,IAAI,CAAC;IAC5C,gDAAgD;IAChD,YAAY,MAAoB;QAC9B,MAAM,CAAC,EAAE,CAAC,sBAAW,CAAC,UAAU,EAAE,CAAC,IAAc,EAAE,EAAE;YACnD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,sBAAW,CAAC,SAAS,EAAE,CAAC,IAAc,EAAE,EAAE;YAClD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,
|
1
|
+
{"version":3,"file":"creevey.js","sourceRoot":"","sources":["../../../src/server/reporters/creevey.ts"],"names":[],"mappings":"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"}
|
@@ -7,8 +7,7 @@ export default defineConfig({
|
|
7
7
|
// Configure reporters
|
8
8
|
reporter: [
|
9
9
|
['list'],
|
10
|
-
|
11
|
-
['creevey/playwright/reporter', { debug: !!process.env.PWDEBUG }],
|
10
|
+
['creevey/playwright/reporter'],
|
12
11
|
],
|
13
12
|
// Reference images and report will be saved in these directories
|
14
13
|
snapshotDir: './images',
|
@@ -6,7 +6,45 @@ This guide outlines the key changes and steps required to update your Creevey se
|
|
6
6
|
|
7
7
|
## Breaking Changes
|
8
8
|
|
9
|
-
### 1.
|
9
|
+
### 1. CLI Commands Structure (Breaking Change)
|
10
|
+
|
11
|
+
Creevey 0.10 introduces a command-based CLI structure. You can no longer run Creevey without specifying a command.
|
12
|
+
|
13
|
+
**Before (0.9):**
|
14
|
+
|
15
|
+
```bash
|
16
|
+
# Running tests
|
17
|
+
creevey --ui
|
18
|
+
creevey -s --ui
|
19
|
+
creevey --debug
|
20
|
+
|
21
|
+
# Update mode (approving images all at once with no way to review them)
|
22
|
+
creevey --update
|
23
|
+
|
24
|
+
# Viewing reports
|
25
|
+
# Doesn't have this feature
|
26
|
+
```
|
27
|
+
|
28
|
+
**After (0.10):**
|
29
|
+
|
30
|
+
```bash
|
31
|
+
# Running tests
|
32
|
+
creevey test --ui
|
33
|
+
creevey test -s --ui
|
34
|
+
creevey test --debug
|
35
|
+
|
36
|
+
# Viewing reports (approving images)
|
37
|
+
creevey report
|
38
|
+
creevey report ./custom-report-dir
|
39
|
+
```
|
40
|
+
|
41
|
+
**Key Changes:**
|
42
|
+
|
43
|
+
- All test execution now requires the `test` command
|
44
|
+
- Image approval/update mode uses the `report` command instead of `-u/--update` flags
|
45
|
+
- Report viewing uses the `report` command
|
46
|
+
|
47
|
+
### 2. Browser Configuration in `creevey.config.ts`
|
10
48
|
|
11
49
|
The way browsers are configured has been updated to better distinguish between Selenium and Playwright settings.
|
12
50
|
|
@@ -62,7 +100,7 @@ const config: CreeveyConfig = {
|
|
62
100
|
export default config;
|
63
101
|
```
|
64
102
|
|
65
|
-
###
|
103
|
+
### 3. Mocha Removal and New `CreeveyTestContext` API
|
66
104
|
|
67
105
|
Creevey no longer uses the Mocha testing framework. Tests now use a `CreeveyTestContext` object passed as an argument to the test function.
|
68
106
|
|
@@ -103,7 +141,7 @@ it('should interact with an element using Playwright', async (context) => {
|
|
103
141
|
});
|
104
142
|
```
|
105
143
|
|
106
|
-
###
|
144
|
+
### 4. Reporter Configuration
|
107
145
|
|
108
146
|
Reporter setup has moved from command-line options to the `creevey.config.ts` file.
|
109
147
|
|
@@ -16,98 +16,120 @@ Add the Creevey reporter to your Playwright configuration file:
|
|
16
16
|
|
17
17
|
```typescript
|
18
18
|
// playwright.config.ts
|
19
|
-
import { defineConfig } from '@playwright/test';
|
19
|
+
import { defineConfig, devices } from '@playwright/test';
|
20
20
|
|
21
21
|
export default defineConfig({
|
22
|
+
testDir: './tests',
|
23
|
+
testMatch: 'visual.spec.ts',
|
24
|
+
globalSetup: 'creevey/playwright/setup',
|
25
|
+
// Configure reporters
|
22
26
|
reporter: [
|
23
27
|
['list'], // Standard Playwright reporter for console output
|
24
|
-
[
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
28
|
+
['creevey/playwright/reporter'],
|
29
|
+
],
|
30
|
+
// Reference images and report will be saved in these directories
|
31
|
+
snapshotDir: './images',
|
32
|
+
outputDir: './report',
|
33
|
+
use: {
|
34
|
+
viewport: { width: 1280, height: 720 },
|
35
|
+
baseURL: 'http://localhost:6006',
|
36
|
+
},
|
37
|
+
projects: [
|
38
|
+
{
|
39
|
+
name: 'chromium',
|
40
|
+
use: { ...devices['Desktop Chrome'] },
|
41
|
+
metadata: {
|
42
|
+
// Define storybook globals here (optional)
|
43
|
+
storybookGlobals: {
|
44
|
+
theme: 'dark',
|
45
|
+
},
|
32
46
|
},
|
33
|
-
|
47
|
+
},
|
34
48
|
],
|
35
|
-
|
49
|
+
webServer: {
|
50
|
+
command: 'yarn storybook dev --ci -p 6006',
|
51
|
+
url: 'http://localhost:6006',
|
52
|
+
reuseExistingServer: !process.env.CI,
|
53
|
+
},
|
36
54
|
});
|
37
55
|
```
|
38
56
|
|
39
|
-
|
57
|
+
### Required Configuration
|
40
58
|
|
41
|
-
|
59
|
+
- **Global Setup**: `globalSetup: 'creevey/playwright/setup'` - Required for proper initialization
|
60
|
+
- **Reporter**: `['creevey/playwright/reporter', options]` - The Creevey reporter
|
61
|
+
- **Output Directories**: Use standard Playwright `snapshotDir` and `outputDir` options
|
42
62
|
|
43
|
-
|
63
|
+
## Usage
|
44
64
|
|
45
|
-
|
65
|
+
### Basic Test Setup
|
46
66
|
|
47
|
-
|
48
|
-
import { test, expect } from '@playwright/test';
|
67
|
+
Create a visual test file using Creevey's `definePlaywrightTests()` function:
|
49
68
|
|
50
|
-
|
51
|
-
|
69
|
+
```typescript
|
70
|
+
// tests/visual.spec.ts
|
71
|
+
import { definePlaywrightTests } from 'creevey/playwright';
|
52
72
|
|
53
|
-
|
54
|
-
const screenshot = await page.screenshot();
|
55
|
-
await test.info().attach('example-screenshot', {
|
56
|
-
body: screenshot,
|
57
|
-
contentType: 'image/png',
|
58
|
-
});
|
59
|
-
});
|
73
|
+
definePlaywrightTests();
|
60
74
|
```
|
61
75
|
|
62
|
-
|
76
|
+
This simple setup will automatically:
|
63
77
|
|
64
|
-
|
65
|
-
|
78
|
+
- Discover your Storybook stories
|
79
|
+
- Generate Playwright tests for each story
|
80
|
+
- Take screenshots and compare them with reference images
|
81
|
+
- Integrate with the Creevey UI for reviewing differences
|
66
82
|
|
67
|
-
|
68
|
-
await page.goto('https://example.com');
|
83
|
+
### Storybook Globals Configuration
|
69
84
|
|
70
|
-
|
71
|
-
await expect(page).toHaveScreenshot('example-screenshot.png');
|
72
|
-
});
|
73
|
-
```
|
74
|
-
|
75
|
-
### Adding Creevey Metadata
|
76
|
-
|
77
|
-
You can add metadata to your tests to better organize them in the Creevey UI:
|
85
|
+
You can configure Storybook globals for each browser project:
|
78
86
|
|
79
87
|
```typescript
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
}
|
88
|
+
projects: [
|
89
|
+
{
|
90
|
+
name: 'chromium-light',
|
91
|
+
use: { ...devices['Desktop Chrome'] },
|
92
|
+
metadata: {
|
93
|
+
storybookGlobals: {
|
94
|
+
theme: 'light',
|
95
|
+
},
|
96
|
+
},
|
97
|
+
},
|
98
|
+
{
|
99
|
+
name: 'chromium-dark',
|
100
|
+
use: { ...devices['Desktop Chrome'] },
|
101
|
+
metadata: {
|
102
|
+
storybookGlobals: {
|
103
|
+
theme: 'dark',
|
104
|
+
},
|
105
|
+
},
|
106
|
+
},
|
107
|
+
];
|
89
108
|
```
|
90
109
|
|
91
|
-
|
110
|
+
## Running Tests
|
92
111
|
|
93
|
-
|
94
|
-
- `browser`: Browser name (chromium, firefox, webkit)
|
95
|
-
- `testName`: Custom test name (defaults to the test title)
|
112
|
+
Run your visual tests with Playwright:
|
96
113
|
|
97
|
-
|
98
|
-
|
99
|
-
|
114
|
+
```bash
|
115
|
+
# Run all tests
|
116
|
+
yarn playwright test
|
100
117
|
|
101
|
-
|
102
|
-
|
118
|
+
# Run with debug output
|
119
|
+
yarn playwright test --debug
|
103
120
|
|
104
|
-
Run your tests with Playwright:
|
105
121
|
|
106
|
-
|
107
|
-
|
122
|
+
# Run tests for specific browser
|
123
|
+
yarn playwright test --project=chromium
|
108
124
|
```
|
109
125
|
|
110
|
-
|
126
|
+
### Viewing Results
|
127
|
+
|
128
|
+
After running your tests, you can run `yarn creevey report` to start the Creevey UI to review results:
|
129
|
+
|
130
|
+
1. The reporter will output the URL where you can view results
|
131
|
+
2. Navigate to the provided URL in your browser
|
132
|
+
3. Browse test results, view image comparisons, and approve changes
|
111
133
|
|
112
134
|
### Approving Screenshots
|
113
135
|
|
@@ -117,241 +139,32 @@ You can approve screenshots directly from the Creevey UI by:
|
|
117
139
|
2. Reviewing the differences between expected and actual images
|
118
140
|
3. Clicking the "Approve" button to update the reference image
|
119
141
|
|
120
|
-
## Advanced Usage
|
121
|
-
|
122
|
-
### Custom Screenshot Names
|
123
|
-
|
124
|
-
You can customize screenshot names to better organize your visual tests:
|
125
|
-
|
126
|
-
```typescript
|
127
|
-
test('product page layout', async ({ page }) => {
|
128
|
-
await page.goto('https://example.com/products/1');
|
129
|
-
|
130
|
-
// Take multiple screenshots in a single test
|
131
|
-
await test.info().attach('product-header', {
|
132
|
-
body: await page.locator('.product-header').screenshot(),
|
133
|
-
contentType: 'image/png',
|
134
|
-
});
|
135
|
-
|
136
|
-
await test.info().attach('product-details', {
|
137
|
-
body: await page.locator('.product-details').screenshot(),
|
138
|
-
contentType: 'image/png',
|
139
|
-
});
|
140
|
-
});
|
141
|
-
```
|
142
|
-
|
143
|
-
### Multiple Screenshots in One Test
|
144
|
-
|
145
|
-
You can capture multiple screenshots in a single test:
|
146
|
-
|
147
|
-
```typescript
|
148
|
-
test('responsive design checks', async ({ page }) => {
|
149
|
-
await page.goto('https://example.com');
|
150
|
-
|
151
|
-
// Mobile view
|
152
|
-
await page.setViewportSize({ width: 375, height: 667 });
|
153
|
-
await test.info().attach('mobile-view', {
|
154
|
-
body: await page.screenshot(),
|
155
|
-
contentType: 'image/png',
|
156
|
-
});
|
157
|
-
|
158
|
-
// Tablet view
|
159
|
-
await page.setViewportSize({ width: 768, height: 1024 });
|
160
|
-
await test.info().attach('tablet-view', {
|
161
|
-
body: await page.screenshot(),
|
162
|
-
contentType: 'image/png',
|
163
|
-
});
|
164
|
-
|
165
|
-
// Desktop view
|
166
|
-
await page.setViewportSize({ width: 1280, height: 800 });
|
167
|
-
await test.info().attach('desktop-view', {
|
168
|
-
body: await page.screenshot(),
|
169
|
-
contentType: 'image/png',
|
170
|
-
});
|
171
|
-
});
|
172
|
-
```
|
173
|
-
|
174
|
-
### Custom Test Names
|
175
|
-
|
176
|
-
By default, the reporter will use the Playwright test title as the test name. You can customize how tests are named by setting meta data:
|
177
|
-
|
178
|
-
```typescript
|
179
|
-
test('home page visual test', async ({ page }) => {
|
180
|
-
test.info().annotations.push({
|
181
|
-
type: 'creevey',
|
182
|
-
description: JSON.stringify({
|
183
|
-
testName: 'custom-test-name',
|
184
|
-
browser: 'chrome', // Optional, to override browser name
|
185
|
-
}),
|
186
|
-
});
|
187
|
-
|
188
|
-
// Test implementation...
|
189
|
-
});
|
190
|
-
```
|
191
|
-
|
192
|
-
### Integration with Existing Creevey Configuration
|
193
|
-
|
194
|
-
If you're already using Creevey for other tests, you can share configuration:
|
195
|
-
|
196
|
-
```typescript
|
197
|
-
import { defineConfig } from '@playwright/test';
|
198
|
-
import creeveyConfig from './creevey.config.js';
|
199
|
-
|
200
|
-
export default defineConfig({
|
201
|
-
reporter: [
|
202
|
-
['list'],
|
203
|
-
[
|
204
|
-
'creevey/playwright-reporter',
|
205
|
-
{
|
206
|
-
reportDir: creeveyConfig.reportDir,
|
207
|
-
screenDir: creeveyConfig.screenDir,
|
208
|
-
port: 3001, // Use a different port to avoid conflicts
|
209
|
-
},
|
210
|
-
],
|
211
|
-
],
|
212
|
-
});
|
213
|
-
```
|
214
|
-
|
215
|
-
### Test Steps Integration
|
216
|
-
|
217
|
-
The reporter supports Playwright's test steps, capturing screenshots at each step:
|
218
|
-
|
219
|
-
```typescript
|
220
|
-
test('multi-step test', async ({ page }) => {
|
221
|
-
await test.step('Step 1: Navigate to home', async () => {
|
222
|
-
await page.goto('/');
|
223
|
-
// Screenshot captured from this step will be associated with "Step 1"
|
224
|
-
await test.info().attach('step1', {
|
225
|
-
body: await page.screenshot(),
|
226
|
-
contentType: 'image/png',
|
227
|
-
});
|
228
|
-
});
|
229
|
-
|
230
|
-
await test.step('Step 2: Click button', async () => {
|
231
|
-
await page.click('.button');
|
232
|
-
// This screenshot will be associated with "Step 2"
|
233
|
-
await test.info().attach('step2', {
|
234
|
-
body: await page.screenshot(),
|
235
|
-
contentType: 'image/png',
|
236
|
-
});
|
237
|
-
});
|
238
|
-
});
|
239
|
-
```
|
240
|
-
|
241
|
-
### Integration with Existing Creevey Server
|
242
|
-
|
243
|
-
If you're already running a Creevey server, you can configure the reporter to use it:
|
244
|
-
|
245
|
-
```typescript
|
246
|
-
[
|
247
|
-
CreeveyPlaywrightReporter,
|
248
|
-
{
|
249
|
-
useExistingServer: true, // Don't start a new server
|
250
|
-
port: 3000, // Port of the existing server
|
251
|
-
},
|
252
|
-
];
|
253
|
-
```
|
254
|
-
|
255
|
-
### Performance Optimization
|
256
|
-
|
257
|
-
For large test suites with many screenshots, you can enable performance optimizations:
|
258
|
-
|
259
|
-
```typescript
|
260
|
-
[
|
261
|
-
CreeveyPlaywrightReporter,
|
262
|
-
{
|
263
|
-
batchProcessing: true, // Process screenshots in batches
|
264
|
-
maxConcurrency: 4, // Maximum concurrent screenshot processing
|
265
|
-
lazyInit: true, // Initialize components on demand
|
266
|
-
},
|
267
|
-
];
|
268
|
-
```
|
269
|
-
|
270
|
-
## API Reference
|
271
|
-
|
272
|
-
### Reporter Options
|
273
|
-
|
274
|
-
| Option | Type | Default | Description |
|
275
|
-
| ------------------------- | ------- | ------------ | ----------------------------------------------------- |
|
276
|
-
| `reportDir` | string | `'./report'` | Directory where Creevey will store reports |
|
277
|
-
| `screenDir` | string | `'./images'` | Directory where reference images are stored |
|
278
|
-
| `port` | number | `3000` | Port number for the Creevey UI server |
|
279
|
-
| `debug` | boolean | `false` | Enable debug logging |
|
280
|
-
| `uiEnabled` | boolean | `true` | Enable or disable the UI server |
|
281
|
-
| `useExistingServer` | boolean | `false` | Use an existing Creevey server instance |
|
282
|
-
| `batchProcessing` | boolean | `false` | Process screenshots in batches for better performance |
|
283
|
-
| `maxConcurrency` | number | `2` | Maximum concurrent screenshot processing operations |
|
284
|
-
| `lazyInit` | boolean | `false` | Initialize components on demand for faster startup |
|
285
|
-
| `retainOrphanedImages` | boolean | `false` | Keep images not associated with current tests |
|
286
|
-
| `customComparisonOptions` | object | `undefined` | Custom options for image comparison |
|
287
|
-
|
288
142
|
## Troubleshooting
|
289
143
|
|
290
144
|
### Common Issues
|
291
145
|
|
292
|
-
|
293
|
-
- **Missing screenshots**: Ensure your tests are attaching screenshots with unique names or using `toHaveScreenshot()`.
|
294
|
-
- **Path issues**: If reference images aren't found, check that the `screenDir` path is correct and accessible.
|
295
|
-
|
296
|
-
If screenshots are not appearing in the Creevey UI:
|
297
|
-
|
298
|
-
1. Ensure your screenshots are being properly attached to test results
|
299
|
-
2. Check that the content type is set to 'image/png' when attaching
|
300
|
-
3. Enable debug mode in the reporter configuration to see detailed logs
|
301
|
-
|
302
|
-
### Server Issues
|
303
|
-
|
304
|
-
If the Creevey server fails to start:
|
305
|
-
|
306
|
-
1. Check if the configured port is already in use
|
307
|
-
2. Ensure the report directory is writable
|
308
|
-
3. Look for error messages in the console output
|
309
|
-
|
310
|
-
### Debug Mode
|
311
|
-
|
312
|
-
Enable debug logging for more detailed information:
|
313
|
-
|
314
|
-
```typescript
|
315
|
-
[
|
316
|
-
CreeveyPlaywrightReporter,
|
317
|
-
{
|
318
|
-
debug: true,
|
319
|
-
// Other options...
|
320
|
-
},
|
321
|
-
];
|
322
|
-
```
|
146
|
+
**Tests not discovering stories**:
|
323
147
|
|
324
|
-
|
148
|
+
- Ensure your Storybook server is running on the configured URL
|
149
|
+
- Check that `globalSetup: 'creevey/playwright/setup'` is included in your config
|
150
|
+
- Verify your `baseURL` points to your Storybook instance
|
325
151
|
|
326
|
-
|
152
|
+
**Screenshots not being captured**:
|
327
153
|
|
328
|
-
-
|
329
|
-
-
|
330
|
-
- All errors are logged with appropriate severity levels and won't cause your tests to fail
|
154
|
+
- Make sure you're using the `definePlaywrightTests()` function
|
155
|
+
- Check that `snapshotDir` is properly configured and writable
|
331
156
|
|
332
|
-
|
157
|
+
**Port conflicts**:
|
333
158
|
|
334
|
-
|
159
|
+
- If Storybook fails to start, ensure the port isn't already in use
|
160
|
+
- Configure a different port in the `webServer` configuration
|
335
161
|
|
336
|
-
|
337
|
-
[
|
338
|
-
CreeveyPlaywrightReporter,
|
339
|
-
{
|
340
|
-
debug: true,
|
341
|
-
},
|
342
|
-
];
|
343
|
-
```
|
162
|
+
### Storybook Issues
|
344
163
|
|
345
|
-
|
164
|
+
If tests can't connect to Storybook:
|
346
165
|
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
{
|
351
|
-
debug: true,
|
352
|
-
logFile: './creevey-reporter.log',
|
353
|
-
},
|
354
|
-
];
|
355
|
-
```
|
166
|
+
1. Ensure Storybook starts successfully with `yarn storybook dev`
|
167
|
+
2. Check that the URL in `webServer.url` matches your Storybook instance
|
168
|
+
3. Verify your `baseURL` is correctly configured
|
356
169
|
|
357
170
|
For more help, please check the main Creevey documentation or open an issue on GitHub.
|
package/package.json
CHANGED
package/playwright.config.mts
CHANGED
@@ -14,7 +14,7 @@ export default defineConfig({
|
|
14
14
|
retries: process.env.CI ? 2 : 0,
|
15
15
|
reporter: [
|
16
16
|
!process.env.PWDEBUG ? [defaultReporter] : ['null'],
|
17
|
-
['./src/playwright/reporter.ts'
|
17
|
+
['./src/playwright/reporter.ts'],
|
18
18
|
// NOTE: use `playwright test --ui` to run tests with Creevey reporter
|
19
19
|
],
|
20
20
|
use: {
|
@@ -3,7 +3,7 @@ import assert from 'assert';
|
|
3
3
|
import { readFileSync } from 'fs';
|
4
4
|
import type { PixelmatchOptions } from 'pixelmatch';
|
5
5
|
import type { ODiffOptions } from 'odiff-bin';
|
6
|
-
import { test, Page } from '@playwright/test';
|
6
|
+
import { test, Page, BrowserContext } from '@playwright/test';
|
7
7
|
import isEqual from 'lodash/isEqual.js';
|
8
8
|
import { CreeveyStoryParams, isObject, StoriesRaw, StorybookEvents, StorybookGlobals } from '../types';
|
9
9
|
import { getOdiffAssert, getPixelmatchAssert, ImageContext } from '../server/compare';
|
@@ -31,6 +31,11 @@ export interface TestsConfig {
|
|
31
31
|
* @default true
|
32
32
|
*/
|
33
33
|
reusePageContext: boolean;
|
34
|
+
/**
|
35
|
+
* Enables trace recording for each test.
|
36
|
+
* @default false
|
37
|
+
*/
|
38
|
+
trace: boolean | { screenshots?: boolean; snapshots?: boolean; sources?: boolean };
|
34
39
|
}
|
35
40
|
|
36
41
|
const cacheDir = process.env.CREEVEY_CACHE_DIR;
|
@@ -39,6 +44,7 @@ const defaultConfig: TestsConfig = {
|
|
39
44
|
odiffOptions: { threshold: 0.1, antialiasing: true },
|
40
45
|
comparisonLibrary: 'pixelmatch',
|
41
46
|
reusePageContext: true,
|
47
|
+
trace: false,
|
42
48
|
};
|
43
49
|
|
44
50
|
// TODO: Use this Storybook function for building args for query params
|
@@ -80,6 +86,8 @@ async function takeScreenshot(
|
|
80
86
|
const mask = ignore.map((selector) => page.locator(selector));
|
81
87
|
|
82
88
|
if (captureElement) {
|
89
|
+
// TODO Use page.locator(captureElement) instead of page.$(captureElement)
|
90
|
+
// TODO Test `#storybook-root > *` selector, probably we don't need `> *` and use `#storybook-root >*:first-child` instead
|
83
91
|
const element = await page.$(captureElement);
|
84
92
|
if (!element) throw new Error(`Capture element '${captureElement}' not found for story '${storyId}'`);
|
85
93
|
return element.screenshot({
|
@@ -103,9 +111,10 @@ export function definePlaywrightTests(config?: Partial<TestsConfig>): void {
|
|
103
111
|
|
104
112
|
const stories = JSON.parse(readFileSync(path.join(cacheDir, 'stories.json'), 'utf-8')) as StoriesRaw;
|
105
113
|
let globals: StorybookGlobals = {};
|
114
|
+
let reusedContext: BrowserContext;
|
106
115
|
let reusedPage: Page;
|
107
116
|
|
108
|
-
const { diffOptions, odiffOptions, comparisonLibrary, reusePageContext } = {
|
117
|
+
const { diffOptions, odiffOptions, comparisonLibrary, reusePageContext, trace } = {
|
109
118
|
...defaultConfig,
|
110
119
|
...config,
|
111
120
|
};
|
@@ -128,14 +137,27 @@ export function definePlaywrightTests(config?: Partial<TestsConfig>): void {
|
|
128
137
|
let assertImage: (actual: Buffer, imageName?: string) => Promise<void>;
|
129
138
|
|
130
139
|
test.beforeAll('Setup images context', async ({ browser }, { project }) => {
|
131
|
-
const {
|
140
|
+
const {
|
141
|
+
snapshotDir,
|
142
|
+
outputDir,
|
143
|
+
use: { viewport },
|
144
|
+
} = project;
|
145
|
+
|
132
146
|
if (reusePageContext) {
|
133
147
|
const storybookUrl = project.use.baseURL;
|
134
148
|
|
135
149
|
assert(storybookUrl, 'Storybook URL not found');
|
136
150
|
|
137
|
-
|
138
|
-
await
|
151
|
+
// TODO Record video
|
152
|
+
reusedContext = await browser.newContext({ viewport, screen: viewport ?? undefined });
|
153
|
+
if (trace) {
|
154
|
+
await reusedContext.tracing.start(
|
155
|
+
typeof trace === 'object' ? trace : { screenshots: true, snapshots: true, sources: true },
|
156
|
+
);
|
157
|
+
}
|
158
|
+
reusedPage = await reusedContext.newPage();
|
159
|
+
await reusedPage.goto(appendIframePath(storybookUrl), { timeout: 60000 });
|
160
|
+
await reusedPage.waitForLoadState('networkidle');
|
139
161
|
await waitForStorybookReady(reusedPage);
|
140
162
|
}
|
141
163
|
if (comparisonLibrary === 'pixelmatch') {
|
@@ -174,10 +196,8 @@ export function definePlaywrightTests(config?: Partial<TestsConfig>): void {
|
|
174
196
|
|
175
197
|
assert(storybookUrl, 'Storybook URL not found');
|
176
198
|
|
177
|
-
await page.goto(appendStoryQueryParams(appendIframePath(storybookUrl), storyId), {
|
178
|
-
|
179
|
-
timeout: 60000,
|
180
|
-
});
|
199
|
+
await page.goto(appendStoryQueryParams(appendIframePath(storybookUrl), storyId), { timeout: 60000 });
|
200
|
+
await page.waitForLoadState('networkidle');
|
181
201
|
await waitForStorybookReady(page);
|
182
202
|
// TODO: Pass globals to story
|
183
203
|
await updateGlobals(page, storybookGlobals);
|
@@ -201,6 +221,12 @@ export function definePlaywrightTests(config?: Partial<TestsConfig>): void {
|
|
201
221
|
// NOTE: Copy-pasted from withCreevey.ts
|
202
222
|
const channel = window.__STORYBOOK_ADDONS_CHANNEL__;
|
203
223
|
|
224
|
+
async function sequence(fns: (() => Promise<unknown>)[]): Promise<void> {
|
225
|
+
for (const fn of fns) {
|
226
|
+
await fn();
|
227
|
+
}
|
228
|
+
}
|
229
|
+
|
204
230
|
const waitForReady = shouldWaitForReady
|
205
231
|
? new Promise<void>((resolve) => (window.__CREEVEY_SET_READY_FOR_CAPTURE__ = resolve))
|
206
232
|
: Promise.resolve();
|
@@ -241,7 +267,10 @@ export function definePlaywrightTests(config?: Partial<TestsConfig>): void {
|
|
241
267
|
}, 0);
|
242
268
|
|
243
269
|
try {
|
244
|
-
await Promise.race([
|
270
|
+
await Promise.race([
|
271
|
+
renderErrorPromise,
|
272
|
+
sequence([() => storyRenderedPromise, () => document.fonts.ready, () => waitForReady]),
|
273
|
+
]);
|
245
274
|
} catch (reason) {
|
246
275
|
// NOTE Event `STORY_THREW_EXCEPTION` triggered only in react and vue frameworks and return Error instance
|
247
276
|
// NOTE Event `STORY_ERRORED` return error-like object without `name` field
|
@@ -295,6 +324,15 @@ export function definePlaywrightTests(config?: Partial<TestsConfig>): void {
|
|
295
324
|
}
|
296
325
|
});
|
297
326
|
|
327
|
+
if (trace && reusePageContext) {
|
328
|
+
test.afterAll('Save trace', async (_, { project }) => {
|
329
|
+
const { outputDir, name: projectName } = project;
|
330
|
+
await reusedContext.tracing.stop({
|
331
|
+
path: `${outputDir}/traces/${projectName}-${process.pid}.zip`,
|
332
|
+
});
|
333
|
+
});
|
334
|
+
}
|
335
|
+
|
298
336
|
for (const story of Object.values(stories)) {
|
299
337
|
const { name, title, parameters } = story;
|
300
338
|
const { captureElement, ignoreElements } = (parameters.creevey ?? {}) as CreeveyStoryParams;
|
@@ -62,7 +62,7 @@ class CreeveyPlaywrightReporter implements Reporter {
|
|
62
62
|
*/
|
63
63
|
constructor(options?: { port?: number; debug?: boolean }) {
|
64
64
|
this.port = options?.port ?? 3000;
|
65
|
-
this.debug = options?.debug ??
|
65
|
+
this.debug = options?.debug ?? !!process.env.PWDEBUG;
|
66
66
|
}
|
67
67
|
|
68
68
|
/**
|
package/src/server/index.ts
CHANGED
@@ -23,7 +23,7 @@ import { buildImage } from './docker.js';
|
|
23
23
|
import { mkdir, writeFile } from 'fs/promises';
|
24
24
|
import assert from 'assert';
|
25
25
|
import * as v from 'valibot';
|
26
|
-
import { PlaywrightWebdriver } from '
|
26
|
+
import { PlaywrightWebdriver } from '../playwright.js';
|
27
27
|
|
28
28
|
async function getPlaywrightVersion(): Promise<string> {
|
29
29
|
const {
|
@@ -192,17 +192,21 @@ export default async function (command: 'report' | 'test' | 'worker', options: O
|
|
192
192
|
}
|
193
193
|
|
194
194
|
if (v.is(WorkerOptionsSchema, options) && cluster.isWorker) {
|
195
|
-
if (config.webdriver !== PlaywrightWebdriver) return;
|
196
|
-
|
197
195
|
let gridUrl = options.gridUrl;
|
198
196
|
const { browser = defaultBrowser, debug } = options;
|
199
197
|
|
200
|
-
if (
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
198
|
+
if (!gridUrl) {
|
199
|
+
if (config.webdriver === PlaywrightWebdriver) {
|
200
|
+
if (config.useDocker) {
|
201
|
+
const version = await getPlaywrightVersion();
|
202
|
+
gridUrl = await startPlaywright(config, browser, version, debug);
|
203
|
+
} else {
|
204
|
+
const { browserName } = config.browsers[browser] as BrowserConfigObject;
|
205
|
+
gridUrl = `creevey://${resolvePlaywrightBrowserType(browserName)}`;
|
206
|
+
}
|
207
|
+
} else {
|
208
|
+
assert(gridUrl, 'Grid URL is required for Selenium');
|
209
|
+
}
|
206
210
|
}
|
207
211
|
|
208
212
|
logger().info(`Starting Worker for ${browser}`);
|
@@ -18,12 +18,15 @@ export class CreeveyReporter {
|
|
18
18
|
this.getLogger(test.creevey).warn(chalk.cyan(test.fullTitle()));
|
19
19
|
});
|
20
20
|
runner.on(TEST_EVENTS.TEST_PASS, (test: FakeTest) => {
|
21
|
-
this.getLogger(test.creevey).info(
|
21
|
+
this.getLogger(test.creevey).info(
|
22
|
+
chalk.cyan(test.fullTitle()),
|
23
|
+
test.duration ? chalk.gray(`(${test.duration} ms)`) : '',
|
24
|
+
);
|
22
25
|
});
|
23
26
|
runner.on(TEST_EVENTS.TEST_FAIL, (test: FakeTest, error) => {
|
24
27
|
this.getLogger(test.creevey).error(
|
25
28
|
chalk.cyan(test.fullTitle()),
|
26
|
-
chalk.gray(`(${test.duration} ms)`),
|
29
|
+
test.duration ? chalk.gray(`(${test.duration} ms)`) : '',
|
27
30
|
'\n ',
|
28
31
|
this.getErrors(
|
29
32
|
error,
|