creevey 0.10.0-beta.8 → 0.10.0-rc.0
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/AUTHORS +2 -0
- package/CHANGELOG.md +281 -0
- package/README.md +19 -41
- package/dist/client/addon/components/Addon.js +18 -8
- package/dist/client/addon/components/Addon.js.map +1 -1
- package/dist/client/addon/components/Panel.js +4 -4
- package/dist/client/addon/components/Panel.js.map +1 -1
- package/dist/client/addon/components/TestSelect.js +2 -2
- package/dist/client/addon/components/TestSelect.js.map +1 -1
- package/dist/client/addon/components/Tools.js +19 -9
- package/dist/client/addon/components/Tools.js.map +1 -1
- package/dist/client/addon/controller.d.ts +1 -1
- package/dist/client/addon/controller.js +3 -3
- package/dist/client/addon/controller.js.map +1 -1
- package/dist/client/addon/decorator.d.ts +1 -1
- package/dist/client/addon/makeDecorator.d.ts +9 -0
- package/dist/client/addon/makeDecorator.js +48 -0
- package/dist/client/addon/makeDecorator.js.map +1 -0
- package/dist/client/addon/manager.js +38 -39
- package/dist/client/addon/manager.js.map +1 -1
- package/dist/client/addon/preset.d.ts +0 -1
- package/dist/client/addon/preset.js +3 -2
- package/dist/client/addon/preset.js.map +1 -1
- package/dist/client/addon/preview.d.ts +1 -1
- package/dist/client/addon/withCreevey.d.ts +5 -3
- package/dist/client/addon/withCreevey.js +14 -21
- package/dist/client/addon/withCreevey.js.map +1 -1
- package/dist/client/shared/components/ImagesView/BlendView.d.ts +2 -2
- package/dist/client/shared/components/ImagesView/BlendView.js +18 -8
- package/dist/client/shared/components/ImagesView/BlendView.js.map +1 -1
- package/dist/client/shared/components/ImagesView/ImagesView.js +1 -1
- package/dist/client/shared/components/ImagesView/ImagesView.js.map +1 -1
- package/dist/client/shared/components/ImagesView/SideBySideView.d.ts +2 -2
- package/dist/client/shared/components/ImagesView/SideBySideView.js +19 -9
- package/dist/client/shared/components/ImagesView/SideBySideView.js.map +1 -1
- package/dist/client/shared/components/ImagesView/SlideView.d.ts +2 -2
- package/dist/client/shared/components/ImagesView/SlideView.js +19 -9
- package/dist/client/shared/components/ImagesView/SlideView.js.map +1 -1
- package/dist/client/shared/components/ImagesView/SwapView.d.ts +2 -2
- package/dist/client/shared/components/ImagesView/SwapView.js +31 -9
- package/dist/client/shared/components/ImagesView/SwapView.js.map +1 -1
- package/dist/client/shared/components/ImagesView/common.d.ts +1 -1
- package/dist/client/shared/components/PageFooter/PageFooter.js +1 -1
- package/dist/client/shared/components/PageFooter/PageFooter.js.map +1 -1
- package/dist/client/shared/components/PageFooter/Paging.js +1 -1
- package/dist/client/shared/components/PageFooter/Paging.js.map +1 -1
- package/dist/client/shared/components/PageHeader/ImagePreview.d.ts +2 -2
- package/dist/client/shared/components/PageHeader/ImagePreview.js +2 -1
- package/dist/client/shared/components/PageHeader/ImagePreview.js.map +1 -1
- package/dist/client/shared/components/PageHeader/PageHeader.js +34 -13
- package/dist/client/shared/components/PageHeader/PageHeader.js.map +1 -1
- package/dist/client/shared/components/ResultsPage.d.ts +2 -2
- package/dist/client/shared/components/ResultsPage.js +45 -15
- package/dist/client/shared/components/ResultsPage.js.map +1 -1
- package/dist/client/shared/creeveyClientApi.js +18 -1
- package/dist/client/shared/creeveyClientApi.js.map +1 -1
- package/dist/client/shared/helpers.d.ts +1 -3
- package/dist/client/shared/helpers.js +4 -19
- package/dist/client/shared/helpers.js.map +1 -1
- package/dist/client/web/CreeveyApp.d.ts +1 -0
- package/dist/client/web/CreeveyApp.js +44 -15
- package/dist/client/web/CreeveyApp.js.map +1 -1
- package/dist/client/web/CreeveyContext.d.ts +6 -0
- package/dist/client/web/CreeveyContext.js +21 -7
- package/dist/client/web/CreeveyContext.js.map +1 -1
- package/dist/client/web/CreeveyLoader.d.ts +1 -1
- package/dist/client/web/CreeveyLoader.js +3 -3
- package/dist/client/web/CreeveyLoader.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/Checkbox.d.ts +4 -4
- package/dist/client/web/CreeveyView/SideBar/Checkbox.js +36 -6
- package/dist/client/web/CreeveyView/SideBar/Checkbox.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/Search.js +20 -10
- package/dist/client/web/CreeveyView/SideBar/Search.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/SideBar.js +26 -12
- package/dist/client/web/CreeveyView/SideBar/SideBar.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/SideBarFooter.js +67 -13
- package/dist/client/web/CreeveyView/SideBar/SideBarFooter.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js +32 -12
- package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/SuiteLink.d.ts +6 -6
- package/dist/client/web/CreeveyView/SideBar/SuiteLink.js +20 -13
- package/dist/client/web/CreeveyView/SideBar/SuiteLink.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/TestLink.js +20 -13
- package/dist/client/web/CreeveyView/SideBar/TestLink.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.d.ts +2 -2
- package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.js +2 -2
- package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/TestsStatus.d.ts +2 -2
- package/dist/client/web/CreeveyView/SideBar/TestsStatus.js +3 -2
- package/dist/client/web/CreeveyView/SideBar/TestsStatus.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/Toggle.js +1 -1
- package/dist/client/web/CreeveyView/SideBar/Toggle.js.map +1 -1
- package/dist/client/web/KeyboardEventsContext.d.ts +1 -8
- package/dist/client/web/KeyboardEventsContext.js +79 -64
- package/dist/client/web/KeyboardEventsContext.js.map +1 -1
- package/dist/client/web/assets/index-CtSq3IhG.js +518 -0
- package/dist/client/web/index.html +1 -1
- package/dist/client/web/index.js +26 -11
- package/dist/client/web/index.js.map +1 -1
- package/dist/client/web/themes.d.ts +2 -0
- package/dist/client/web/themes.js +22 -0
- package/dist/client/web/themes.js.map +1 -0
- package/dist/creevey.d.ts +1 -1
- package/dist/creevey.js +122 -41
- package/dist/creevey.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/playwright/generator.d.ts +25 -0
- package/dist/playwright/generator.js +243 -0
- package/dist/playwright/generator.js.map +1 -0
- package/dist/playwright/helpers.d.ts +2 -0
- package/dist/playwright/helpers.js +29 -0
- package/dist/playwright/helpers.js.map +1 -0
- package/dist/playwright/reporter.d.ts +83 -0
- package/dist/playwright/reporter.js +334 -0
- package/dist/playwright/reporter.js.map +1 -0
- package/dist/playwright/setup.d.ts +3 -0
- package/dist/playwright/setup.js +72 -0
- package/dist/playwright/setup.js.map +1 -0
- package/dist/playwright.d.ts +1 -0
- package/dist/playwright.js +3 -1
- package/dist/playwright.js.map +1 -1
- package/dist/server/compare.d.ts +18 -0
- package/dist/server/compare.js +182 -0
- package/dist/server/compare.js.map +1 -0
- package/dist/server/config.d.ts +3 -3
- package/dist/server/config.js +75 -8
- package/dist/server/config.js.map +1 -1
- package/dist/server/connection.d.ts +3 -0
- package/dist/server/connection.js +28 -0
- package/dist/server/connection.js.map +1 -0
- package/dist/server/docker.d.ts +1 -1
- package/dist/server/docker.js +54 -32
- package/dist/server/docker.js.map +1 -1
- package/dist/server/index.d.ts +2 -2
- package/dist/server/index.js +165 -64
- 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 +20 -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/pool.d.ts +1 -0
- package/dist/server/master/pool.js +5 -3
- package/dist/server/master/pool.js.map +1 -1
- package/dist/server/master/queue.d.ts +1 -1
- package/dist/server/master/queue.js +14 -6
- package/dist/server/master/queue.js.map +1 -1
- package/dist/server/master/runner.d.ts +6 -6
- package/dist/server/master/runner.js +98 -130
- package/dist/server/master/runner.js.map +1 -1
- package/dist/server/master/server.d.ts +1 -1
- package/dist/server/master/server.js +193 -88
- package/dist/server/master/server.js.map +1 -1
- package/dist/server/master/start.d.ts +1 -2
- package/dist/server/master/start.js +13 -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 +282 -0
- package/dist/server/master/testsManager.js.map +1 -0
- package/dist/server/playwright/docker-file.d.ts +1 -1
- package/dist/server/playwright/docker-file.js +17 -8
- package/dist/server/playwright/docker-file.js.map +1 -1
- package/dist/server/playwright/docker.d.ts +2 -1
- package/dist/server/playwright/docker.js +10 -2
- package/dist/server/playwright/docker.js.map +1 -1
- package/dist/server/playwright/index-source.mjs +16 -0
- package/dist/server/playwright/internal.d.ts +7 -7
- package/dist/server/playwright/internal.js +144 -84
- package/dist/server/playwright/internal.js.map +1 -1
- package/dist/server/playwright/webdriver.d.ts +3 -3
- package/dist/server/playwright/webdriver.js +0 -6
- package/dist/server/playwright/webdriver.js.map +1 -1
- package/dist/server/providers/browser.js +4 -3
- package/dist/server/providers/browser.js.map +1 -1
- package/dist/server/providers/hybrid.js +2 -2
- package/dist/server/providers/hybrid.js.map +1 -1
- package/dist/server/report.d.ts +10 -0
- package/dist/server/report.js +45 -0
- package/dist/server/report.js.map +1 -0
- package/dist/server/reporters/creevey.d.ts +7 -0
- package/dist/server/reporters/creevey.js +63 -0
- package/dist/server/reporters/creevey.js.map +1 -0
- package/dist/server/reporters/index.d.ts +2 -0
- package/dist/server/reporters/index.js +16 -0
- package/dist/server/reporters/index.js.map +1 -0
- package/dist/server/reporters/junit.d.ts +16 -0
- package/dist/server/reporters/junit.js +167 -0
- package/dist/server/reporters/junit.js.map +1 -0
- package/dist/server/reporters/teamcity.d.ts +7 -0
- package/dist/server/reporters/teamcity.js +60 -0
- package/dist/server/reporters/teamcity.js.map +1 -0
- package/dist/server/selenium/internal.d.ts +4 -4
- package/dist/server/selenium/internal.js +56 -40
- package/dist/server/selenium/internal.js.map +1 -1
- package/dist/server/selenium/selenoid.js +12 -6
- package/dist/server/selenium/selenoid.js.map +1 -1
- package/dist/server/selenium/webdriver.d.ts +3 -3
- package/dist/server/selenium/webdriver.js +4 -8
- package/dist/server/selenium/webdriver.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/telemetry.js +3 -3
- package/dist/server/telemetry.js.map +1 -1
- package/dist/server/testsFiles/parser.js +45 -5
- package/dist/server/testsFiles/parser.js.map +1 -1
- package/dist/server/utils.d.ts +23 -0
- package/dist/server/utils.js +114 -15
- package/dist/server/utils.js.map +1 -1
- package/dist/server/webdriver.d.ts +1 -1
- package/dist/server/worker/context.d.ts +3 -0
- package/dist/server/worker/context.js +15 -0
- package/dist/server/worker/context.js.map +1 -0
- package/dist/server/worker/match-image.d.ts +8 -12
- package/dist/server/worker/match-image.js +11 -178
- package/dist/server/worker/match-image.js.map +1 -1
- package/dist/server/worker/start.d.ts +2 -2
- package/dist/server/worker/start.js +41 -64
- package/dist/server/worker/start.js.map +1 -1
- package/dist/shared/index.d.ts +1 -1
- package/dist/shared/index.js +9 -7
- package/dist/shared/index.js.map +1 -1
- package/dist/types.d.ts +84 -43
- package/dist/types.js +65 -1
- package/dist/types.js.map +1 -1
- package/docs/cli.md +80 -0
- package/docs/config.md +179 -165
- package/docs/examples/playwright-reporer/playwright.config.ts +37 -0
- package/docs/migration-0.9-to-0.10.md +144 -0
- package/docs/playwright-reporter.md +357 -0
- package/docs/storybook.md +60 -0
- package/docs/tests.md +50 -45
- package/package.json +78 -83
- package/playwright.config.mts +46 -0
- package/src/client/addon/components/Addon.tsx +1 -1
- package/src/client/addon/components/Panel.tsx +4 -4
- package/src/client/addon/components/TestSelect.tsx +2 -2
- package/src/client/addon/components/Tools.tsx +2 -2
- package/src/client/addon/controller.ts +4 -4
- package/src/client/addon/makeDecorator.ts +69 -0
- package/src/client/addon/manager.ts +38 -37
- package/src/client/addon/preset.ts +2 -1
- package/src/client/addon/withCreevey.ts +16 -19
- package/src/client/shared/components/ImagesView/BlendView.tsx +1 -1
- package/src/client/shared/components/ImagesView/ImagesView.tsx +1 -1
- package/src/client/shared/components/ImagesView/SideBySideView.tsx +2 -2
- package/src/client/shared/components/ImagesView/SlideView.tsx +2 -2
- package/src/client/shared/components/ImagesView/SwapView.tsx +20 -2
- package/src/client/shared/components/ImagesView/common.ts +1 -1
- package/src/client/shared/components/PageFooter/PageFooter.tsx +1 -1
- package/src/client/shared/components/PageFooter/Paging.tsx +1 -1
- package/src/client/shared/components/PageHeader/ImagePreview.tsx +2 -1
- package/src/client/shared/components/PageHeader/PageHeader.tsx +23 -7
- package/src/client/shared/components/ResultsPage.tsx +33 -10
- package/src/client/shared/creeveyClientApi.ts +19 -1
- package/src/client/shared/helpers.ts +4 -24
- package/src/client/web/CreeveyApp.tsx +30 -9
- package/src/client/web/CreeveyContext.tsx +11 -0
- package/src/client/web/CreeveyLoader.tsx +2 -2
- package/src/client/web/CreeveyView/SideBar/Checkbox.tsx +3 -3
- package/src/client/web/CreeveyView/SideBar/Search.tsx +4 -4
- package/src/client/web/CreeveyView/SideBar/SideBar.tsx +11 -6
- package/src/client/web/CreeveyView/SideBar/SideBarFooter.tsx +48 -15
- package/src/client/web/CreeveyView/SideBar/SideBarHeader.tsx +20 -5
- package/src/client/web/CreeveyView/SideBar/SuiteLink.tsx +12 -12
- package/src/client/web/CreeveyView/SideBar/TestLink.tsx +10 -10
- package/src/client/web/CreeveyView/SideBar/TestStatusIcon.tsx +2 -2
- package/src/client/web/CreeveyView/SideBar/TestsStatus.tsx +3 -2
- package/src/client/web/CreeveyView/SideBar/Toggle.tsx +1 -1
- package/src/client/web/KeyboardEventsContext.tsx +61 -73
- package/src/client/web/index.tsx +10 -5
- package/src/client/web/themes.ts +24 -0
- package/src/creevey.ts +92 -38
- package/src/playwright/generator.ts +322 -0
- package/src/playwright/helpers.ts +31 -0
- package/src/playwright/reporter.ts +381 -0
- package/src/playwright/setup.ts +84 -0
- package/src/playwright.ts +1 -0
- package/src/server/compare.ts +260 -0
- package/src/server/config.ts +52 -9
- package/src/server/connection.ts +26 -0
- package/src/server/docker.ts +62 -34
- package/src/server/index.ts +166 -79
- 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 +16 -0
- package/src/server/master/handlers/stories-handler.ts +20 -0
- package/src/server/master/master.ts +10 -27
- package/src/server/master/pool.ts +7 -3
- package/src/server/master/queue.ts +21 -7
- package/src/server/master/runner.ts +123 -134
- package/src/server/master/server.ts +214 -101
- package/src/server/master/start.ts +19 -41
- package/src/server/master/testsManager.ts +316 -0
- package/src/server/playwright/docker-file.ts +20 -8
- package/src/server/playwright/docker.ts +16 -3
- package/src/server/playwright/index-source.mjs +16 -0
- package/src/server/playwright/internal.ts +176 -103
- package/src/server/playwright/webdriver.ts +4 -10
- package/src/server/providers/browser.ts +4 -3
- package/src/server/providers/hybrid.ts +2 -3
- package/src/server/report.ts +51 -0
- package/src/server/reporters/creevey.ts +71 -0
- package/src/server/reporters/index.ts +11 -0
- package/src/server/reporters/junit.ts +207 -0
- package/src/server/reporters/teamcity.ts +74 -0
- package/src/server/selenium/internal.ts +70 -53
- package/src/server/selenium/selenoid.ts +13 -6
- package/src/server/selenium/webdriver.ts +8 -12
- package/src/server/shutdown.ts +19 -0
- package/src/server/stories.ts +1 -12
- package/src/server/telemetry.ts +3 -3
- package/src/server/testsFiles/parser.ts +52 -4
- package/src/server/utils.ts +124 -16
- package/src/server/webdriver.ts +1 -1
- package/src/server/worker/context.ts +14 -0
- package/src/server/worker/match-image.ts +16 -248
- package/src/server/worker/start.ts +49 -79
- package/src/shared/index.ts +10 -8
- package/src/types.ts +91 -58
- package/types/global.d.ts +1 -0
- package/dist/client/web/assets/index-DB8lHlJw.js +0 -591
- package/dist/server/reporter.d.ts +0 -26
- package/dist/server/reporter.js +0 -108
- package/dist/server/reporter.js.map +0 -1
- package/dist/server/update.d.ts +0 -2
- package/dist/server/update.js +0 -53
- package/dist/server/update.js.map +0 -1
- package/src/server/reporter.ts +0 -139
- package/src/server/update.ts +0 -74
package/dist/types.d.ts
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
import
|
1
|
+
import * as v from 'valibot';
|
2
2
|
import type { Worker as ClusterWorker } from 'cluster';
|
3
|
-
import type Pixelmatch from 'pixelmatch';
|
4
|
-
import type { ODiffOptions } from 'odiff-bin';
|
5
3
|
import type { expect } from 'chai';
|
6
4
|
import type EventEmitter from 'events';
|
7
|
-
import {
|
8
|
-
|
5
|
+
import type { ODiffOptions } from 'odiff-bin';
|
6
|
+
import type { LaunchOptions } from 'playwright-core';
|
7
|
+
import type { PixelmatchOptions } from 'pixelmatch';
|
8
|
+
import type { StoryContextForEnhancers, DecoratorFunction } from 'storybook/internal/types';
|
9
9
|
export interface SetStoriesData {
|
10
10
|
v?: number;
|
11
11
|
globalParameters: {
|
@@ -88,6 +88,10 @@ export interface BrowserConfigObject {
|
|
88
88
|
* Storybook's globals to set in a specific browser
|
89
89
|
* @see https://github.com/storybookjs/storybook/blob/v6.0.0/docs/essentials/toolbars-and-globals.md
|
90
90
|
*/
|
91
|
+
storybookGlobals?: StorybookGlobals;
|
92
|
+
/**
|
93
|
+
* @deprecated Use `storybookGlobals` instead
|
94
|
+
*/
|
91
95
|
_storybookGlobals?: StorybookGlobals;
|
92
96
|
/**
|
93
97
|
* Specify custom docker image. Used only with `useDocker == true`
|
@@ -114,11 +118,17 @@ export interface BrowserConfigObject {
|
|
114
118
|
platformName?: string;
|
115
119
|
[name: string]: unknown;
|
116
120
|
};
|
117
|
-
playwrightOptions?: Omit<LaunchOptions, 'logger'
|
121
|
+
playwrightOptions?: Omit<LaunchOptions, 'logger'> & {
|
122
|
+
trace?: {
|
123
|
+
screenshots?: boolean;
|
124
|
+
snapshots?: boolean;
|
125
|
+
sources?: boolean;
|
126
|
+
};
|
127
|
+
};
|
118
128
|
}
|
119
129
|
export type StorybookGlobals = Record<string, unknown>;
|
120
130
|
export type BrowserConfig = boolean | string | BrowserConfigObject;
|
121
|
-
export type CreeveyWebdriverConstructor = new (browser: string, gridUrl: string, config: Config, options:
|
131
|
+
export type CreeveyWebdriverConstructor = new (browser: string, gridUrl: string, config: Config, options: WorkerOptions) => CreeveyWebdriver;
|
122
132
|
export interface CreeveyWebdriver {
|
123
133
|
getSessionId(): Promise<string>;
|
124
134
|
openBrowser(fresh?: boolean): Promise<CreeveyWebdriver | null>;
|
@@ -140,6 +150,7 @@ export interface DockerAuth {
|
|
140
150
|
serveraddress?: string;
|
141
151
|
}
|
142
152
|
export type BaseReporter = new (runner: EventEmitter, options: {
|
153
|
+
reportDir: string;
|
143
154
|
reporterOptions: any;
|
144
155
|
}) => void;
|
145
156
|
export interface Config {
|
@@ -157,6 +168,11 @@ export interface Config {
|
|
157
168
|
* Url where storybook hosted on
|
158
169
|
*/
|
159
170
|
resolveStorybookUrl?: () => Promise<string>;
|
171
|
+
/**
|
172
|
+
* Command to automatically start Storybook if it is not running.
|
173
|
+
* For example, `npm run storybook` or `yarn storybook` etc.
|
174
|
+
*/
|
175
|
+
storybookAutorunCmd?: string;
|
160
176
|
/**
|
161
177
|
* Absolute path to directory with reference images
|
162
178
|
* @default path.join(process.cwd(), './images')
|
@@ -170,8 +186,9 @@ export interface Config {
|
|
170
186
|
/**
|
171
187
|
* Specify a custom reporter for test results. Creevey accepts only mocha-like reporters
|
172
188
|
* @optional
|
189
|
+
* @default 'creevey'
|
173
190
|
*/
|
174
|
-
reporter: BaseReporter;
|
191
|
+
reporter: BaseReporter | 'creevey' | 'teamcity' | 'junit';
|
175
192
|
/**
|
176
193
|
* Options which are used by reporter
|
177
194
|
*/
|
@@ -188,11 +205,12 @@ export interface Config {
|
|
188
205
|
testTimeout: number;
|
189
206
|
/**
|
190
207
|
* Define pixelmatch diff options
|
191
|
-
* @default { threshold: 0.
|
208
|
+
* @default { threshold: 0.1, includeAA: false }
|
192
209
|
*/
|
193
|
-
diffOptions:
|
210
|
+
diffOptions: PixelmatchOptions;
|
194
211
|
/**
|
195
|
-
*
|
212
|
+
* Define odiff diff options
|
213
|
+
* @default { threshold: 0.1, antialiasing: true }
|
196
214
|
*/
|
197
215
|
odiffOptions: ODiffOptions;
|
198
216
|
/**
|
@@ -212,20 +230,17 @@ export interface Config {
|
|
212
230
|
/**
|
213
231
|
* Creevey has two built-in stories providers.
|
214
232
|
*
|
215
|
-
* `
|
216
|
-
* This provider builds and runs storybook in nodejs env, that allows write interaction tests by using Selenium API.
|
217
|
-
* The downside is it depends from project build specific and slightly increases init time.
|
218
|
-
*
|
219
|
-
* `browserStoriesProvider` - The second one is used by default with CSFv3 storybook feature.
|
220
|
-
* It load stories from storybook which is running in browser, like storyshots or loki do it.
|
233
|
+
* `browserStoriesProvider` - Extracts stories directly from the Storybook UI. It loads stories from storybook which is running in browser, like storyshots or loki do it.
|
221
234
|
* The downside of this, you can't use interaction tests in Creevey, unless you use CSFv3.
|
222
235
|
* Where you can define `play` method for each story
|
223
236
|
*
|
237
|
+
* `hybridStoriesProvider` - Combines stories from Storybook with tests from separate files. This is the default provider used in the configuration.
|
238
|
+
*
|
224
239
|
* Usage
|
225
240
|
* ``` typescript
|
226
|
-
* import { nodejsStoriesProvider as provider } from 'creevey'
|
227
|
-
* // or
|
228
241
|
* import { browserStoriesProvider as provider } from 'creevey'
|
242
|
+
* // or
|
243
|
+
* import { hybridStoriesProvider as provider } from 'creevey'
|
229
244
|
*
|
230
245
|
* // Creevey config
|
231
246
|
* module.exports = {
|
@@ -286,26 +301,36 @@ export interface StoriesProvider {
|
|
286
301
|
providerName?: string;
|
287
302
|
}
|
288
303
|
export type CreeveyConfig = Partial<Config>;
|
289
|
-
export
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
304
|
+
export declare const OptionsSchema: v.ObjectSchema<{
|
305
|
+
readonly ui: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
|
306
|
+
readonly storybookStart: v.OptionalSchema<v.UnionSchema<[v.StringSchema<undefined>, v.BooleanSchema<undefined>], undefined>, undefined>;
|
307
|
+
readonly config: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
308
|
+
readonly debug: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
|
309
|
+
readonly port: v.NumberSchema<undefined>;
|
310
|
+
readonly failFast: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
|
311
|
+
readonly reportDir: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
312
|
+
readonly screenDir: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
313
|
+
readonly storybookUrl: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
314
|
+
readonly storybookPort: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
|
315
|
+
readonly reporter: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
316
|
+
readonly odiff: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
|
317
|
+
readonly trace: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
|
318
|
+
readonly docker: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
|
319
|
+
}, undefined>;
|
320
|
+
export declare const WorkerOptionsSchema: v.ObjectSchema<{
|
321
|
+
readonly browser: v.StringSchema<undefined>;
|
322
|
+
readonly storybookUrl: v.StringSchema<undefined>;
|
323
|
+
readonly gridUrl: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
324
|
+
readonly config: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
325
|
+
readonly debug: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
|
326
|
+
readonly trace: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
|
327
|
+
readonly reportDir: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
328
|
+
readonly screenDir: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
329
|
+
readonly odiff: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
|
330
|
+
readonly port: v.NumberSchema<undefined>;
|
331
|
+
}, undefined>;
|
332
|
+
export type Options = v.InferOutput<typeof OptionsSchema>;
|
333
|
+
export type WorkerOptions = v.InferOutput<typeof WorkerOptionsSchema>;
|
309
334
|
export type WorkerError = 'browser' | 'test' | 'unknown';
|
310
335
|
export type WorkerMessage = {
|
311
336
|
type: 'ready';
|
@@ -376,8 +401,14 @@ export interface Images {
|
|
376
401
|
export type TestStatus = 'unknown' | 'pending' | 'running' | 'failed' | 'approved' | 'success' | 'retrying';
|
377
402
|
export interface TestResult {
|
378
403
|
status: 'failed' | 'success';
|
404
|
+
retries: number;
|
379
405
|
images?: Partial<Record<string, Images>>;
|
380
406
|
error?: string;
|
407
|
+
duration?: number;
|
408
|
+
attachments?: string[];
|
409
|
+
sessionId?: string;
|
410
|
+
browserName?: string;
|
411
|
+
workerId?: number;
|
381
412
|
}
|
382
413
|
export declare class ImagesError extends Error {
|
383
414
|
images?: string | Partial<Record<string, string>>;
|
@@ -410,8 +441,8 @@ export interface BaseCreeveyTestContext {
|
|
410
441
|
imageName?: string;
|
411
442
|
screenshot: Buffer;
|
412
443
|
}[];
|
413
|
-
matchImage: (image: Buffer, imageName?: string) => Promise<void>;
|
414
|
-
matchImages: (images: Record<string, Buffer>) => Promise<void>;
|
444
|
+
matchImage: (image: Buffer | string, imageName?: string) => Promise<void>;
|
445
|
+
matchImages: (images: Record<string, Buffer | string>) => Promise<void>;
|
415
446
|
}
|
416
447
|
export interface CreeveyTestContext extends BaseCreeveyTestContext {
|
417
448
|
takeScreenshot: () => Promise<Buffer>;
|
@@ -421,6 +452,8 @@ export interface CreeveyTestContext extends BaseCreeveyTestContext {
|
|
421
452
|
export declare enum TEST_EVENTS {
|
422
453
|
RUN_BEGIN = "start",
|
423
454
|
RUN_END = "end",
|
455
|
+
SUITE_BEGIN = "suite",
|
456
|
+
SUITE_END = "suite end",
|
424
457
|
TEST_BEGIN = "test",
|
425
458
|
TEST_END = "test end",
|
426
459
|
TEST_FAIL = "fail",
|
@@ -441,19 +474,27 @@ export interface FakeTest {
|
|
441
474
|
title: string;
|
442
475
|
fullTitle: () => string;
|
443
476
|
titlePath: () => string[];
|
444
|
-
currentRetry: () => number;
|
477
|
+
currentRetry: () => number | undefined;
|
445
478
|
retires: () => number;
|
446
479
|
slow: () => number;
|
447
480
|
duration?: number;
|
448
481
|
state?: 'failed' | 'passed';
|
449
482
|
speed?: 'slow' | 'medium' | 'fast';
|
450
|
-
err?:
|
483
|
+
err?: string;
|
451
484
|
attachments?: string[];
|
485
|
+
creevey: {
|
486
|
+
sessionId: string;
|
487
|
+
browserName: string;
|
488
|
+
workerId: number;
|
489
|
+
willRetry: boolean;
|
490
|
+
images: Partial<Record<string, Partial<Images>>>;
|
491
|
+
};
|
452
492
|
}
|
453
493
|
export interface CreeveyStatus {
|
454
494
|
isRunning: boolean;
|
455
495
|
tests: Partial<Record<string, TestData>>;
|
456
496
|
browsers: string[];
|
497
|
+
isUpdateMode: boolean;
|
457
498
|
}
|
458
499
|
export interface CreeveyUpdate {
|
459
500
|
isRunning?: boolean;
|
package/dist/types.js
CHANGED
@@ -1,6 +1,39 @@
|
|
1
1
|
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
19
|
+
var ownKeys = function(o) {
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
21
|
+
var ar = [];
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
23
|
+
return ar;
|
24
|
+
};
|
25
|
+
return ownKeys(o);
|
26
|
+
};
|
27
|
+
return function (mod) {
|
28
|
+
if (mod && mod.__esModule) return mod;
|
29
|
+
var result = {};
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
31
|
+
__setModuleDefault(result, mod);
|
32
|
+
return result;
|
33
|
+
};
|
34
|
+
})();
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.TEST_EVENTS = exports.ImagesError = exports.StorybookEvents = void 0;
|
36
|
+
exports.TEST_EVENTS = exports.ImagesError = exports.WorkerOptionsSchema = exports.OptionsSchema = exports.StorybookEvents = void 0;
|
4
37
|
exports.noop = noop;
|
5
38
|
exports.isDefined = isDefined;
|
6
39
|
exports.isTest = isTest;
|
@@ -12,6 +45,7 @@ exports.isProcessMessage = isProcessMessage;
|
|
12
45
|
exports.isWorkerMessage = isWorkerMessage;
|
13
46
|
exports.isStoriesMessage = isStoriesMessage;
|
14
47
|
exports.isTestMessage = isTestMessage;
|
48
|
+
const v = __importStar(require("valibot"));
|
15
49
|
var StorybookEvents;
|
16
50
|
(function (StorybookEvents) {
|
17
51
|
StorybookEvents["SET_STORIES"] = "setStories";
|
@@ -24,6 +58,34 @@ var StorybookEvents;
|
|
24
58
|
StorybookEvents["SET_GLOBALS"] = "setGlobals";
|
25
59
|
StorybookEvents["UPDATE_GLOBALS"] = "updateGlobals";
|
26
60
|
})(StorybookEvents || (exports.StorybookEvents = StorybookEvents = {}));
|
61
|
+
exports.OptionsSchema = v.object({
|
62
|
+
ui: v.optional(v.boolean()),
|
63
|
+
storybookStart: v.optional(v.union([v.string(), v.boolean()])),
|
64
|
+
config: v.optional(v.string()),
|
65
|
+
debug: v.optional(v.boolean()),
|
66
|
+
port: v.number(),
|
67
|
+
failFast: v.optional(v.boolean()),
|
68
|
+
reportDir: v.optional(v.string()),
|
69
|
+
screenDir: v.optional(v.string()),
|
70
|
+
storybookUrl: v.optional(v.string()),
|
71
|
+
storybookPort: v.optional(v.number()),
|
72
|
+
reporter: v.optional(v.string()),
|
73
|
+
odiff: v.optional(v.boolean()),
|
74
|
+
trace: v.optional(v.boolean()),
|
75
|
+
docker: v.optional(v.boolean()),
|
76
|
+
});
|
77
|
+
exports.WorkerOptionsSchema = v.object({
|
78
|
+
browser: v.string(),
|
79
|
+
storybookUrl: v.string(),
|
80
|
+
gridUrl: v.optional(v.string()),
|
81
|
+
config: v.optional(v.string()),
|
82
|
+
debug: v.optional(v.boolean()),
|
83
|
+
trace: v.optional(v.boolean()),
|
84
|
+
reportDir: v.optional(v.string()),
|
85
|
+
screenDir: v.optional(v.string()),
|
86
|
+
odiff: v.optional(v.boolean()),
|
87
|
+
port: v.number(),
|
88
|
+
});
|
27
89
|
class ImagesError extends Error {
|
28
90
|
images;
|
29
91
|
}
|
@@ -32,6 +94,8 @@ var TEST_EVENTS;
|
|
32
94
|
(function (TEST_EVENTS) {
|
33
95
|
TEST_EVENTS["RUN_BEGIN"] = "start";
|
34
96
|
TEST_EVENTS["RUN_END"] = "end";
|
97
|
+
TEST_EVENTS["SUITE_BEGIN"] = "suite";
|
98
|
+
TEST_EVENTS["SUITE_END"] = "suite end";
|
35
99
|
TEST_EVENTS["TEST_BEGIN"] = "test";
|
36
100
|
TEST_EVENTS["TEST_END"] = "test end";
|
37
101
|
TEST_EVENTS["TEST_FAIL"] = "fail";
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqlBA,oBAEC;AAED,8BAEC;AAED,wBASC;AAED,4BAEC;AAED,4BAEC;AAGD,gCAEC;AAED,oCAEC;AAED,4CAEC;AAED,0CAEC;AAED,4CAEC;AAED,sCAEC;AAvoBD,2CAA6B;AA8B7B,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;AA4SY,QAAA,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC3B,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9D,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC9B,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACjC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACjC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACjC,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACpC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACrC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAChC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC9B,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;CAChC,CAAC,CAAC;AAEU,QAAA,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC/B,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC9B,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC9B,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC9B,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACjC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACjC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAgEH,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"}
|
package/docs/cli.md
ADDED
@@ -0,0 +1,80 @@
|
|
1
|
+
## Creevey CLI Commands and Options
|
2
|
+
|
3
|
+
Creevey provides two main commands for different purposes:
|
4
|
+
|
5
|
+
### Commands
|
6
|
+
|
7
|
+
#### `creevey test [options]`
|
8
|
+
|
9
|
+
Run visual regression tests.
|
10
|
+
|
11
|
+
**Options:**
|
12
|
+
|
13
|
+
- `--ui` — Launch web UI for running tests and reviewing test results
|
14
|
+
- `-s, --storybook-start [cmd]` — Start Storybook automatically (optional command can be specified)
|
15
|
+
- `-c, --config <config>` — Path to config file (default: `.creevey/config.ts` or `creevey.config.ts`)
|
16
|
+
- `-d, --debug` — Enable debug mode (also enables recording video and traces if Playwright is used)
|
17
|
+
- `-p, --port <port>` — Port for UI server (default: `3000`)
|
18
|
+
- `--fail-fast` — Stop tests after first failure
|
19
|
+
- `--report-dir <dir>` — Directory for test reports
|
20
|
+
- `--screen-dir <dir>` — Directory for reference images
|
21
|
+
- `--storybook-url <url>` — Storybook server URL
|
22
|
+
- `--storybook-port <port>` — Storybook server port
|
23
|
+
- `--reporter <reporter>` — **[DEPRECATED]** Use config file instead
|
24
|
+
- `--odiff` — Use odiff for image comparison
|
25
|
+
- `--trace` — Enable trace mode (more verbose than debug)
|
26
|
+
- `--no-docker` — Disable Docker usage
|
27
|
+
|
28
|
+
**Examples:**
|
29
|
+
|
30
|
+
```bash
|
31
|
+
# Run tests with UI
|
32
|
+
creevey test --ui
|
33
|
+
|
34
|
+
# Start Storybook automatically and run tests
|
35
|
+
creevey test -s --ui
|
36
|
+
|
37
|
+
# Run tests with custom config and debug mode
|
38
|
+
creevey test -c ./my-config.ts --debug
|
39
|
+
|
40
|
+
# Run tests with fail-fast mode
|
41
|
+
creevey test --fail-fast
|
42
|
+
|
43
|
+
# Run tests without Docker
|
44
|
+
creevey test --no-docker
|
45
|
+
```
|
46
|
+
|
47
|
+
#### `creevey report [reportDir]`
|
48
|
+
|
49
|
+
Launch web UI to review and approve test results from a previous test run.
|
50
|
+
|
51
|
+
**Options:**
|
52
|
+
|
53
|
+
- `-c, --config <config>` — Path to config file
|
54
|
+
- `-p, --port <port>` — Port for UI server (default: `3000`)
|
55
|
+
- `--screen-dir <dir>` — Directory for reference images
|
56
|
+
|
57
|
+
**Examples:**
|
58
|
+
|
59
|
+
```bash
|
60
|
+
# Launch report UI with default report directory
|
61
|
+
creevey report
|
62
|
+
|
63
|
+
# Launch report UI with specific report directory
|
64
|
+
creevey report ./custom-report
|
65
|
+
|
66
|
+
# Launch report UI on custom port
|
67
|
+
creevey report -p 8080
|
68
|
+
```
|
69
|
+
|
70
|
+
### Global Options
|
71
|
+
|
72
|
+
These options are available for all commands:
|
73
|
+
|
74
|
+
- `--help, -h` — Show help information
|
75
|
+
- `--version, -v` — Show version information
|
76
|
+
|
77
|
+
### Migration Notes
|
78
|
+
|
79
|
+
- The `--reporter` option has been deprecated. Configure reporters in your config file instead.
|
80
|
+
- The `-u, --update` option has been removed. Use the `report` command instead.
|