creevey 0.10.0-beta.9 → 0.10.0-rc.1
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 +2 -2
- 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 +5 -20
- 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 +19 -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 +1 -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 +22 -10
- 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 +22 -9
- package/dist/client/web/CreeveyApp.js.map +1 -1
- package/dist/client/web/CreeveyContext.d.ts +1 -0
- package/dist/client/web/CreeveyContext.js +18 -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 +18 -8
- 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 +28 -17
- 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 -11
- package/dist/client/web/CreeveyView/SideBar/SuiteLink.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/TestLink.js +20 -11
- 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.js +17 -7
- 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 +34 -0
- package/dist/playwright/generator.js +267 -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 +166 -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 +137 -79
- 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 +3 -3
- package/dist/server/selenium/internal.js +48 -34
- 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 +113 -13
- 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 +27 -63
- 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 +36 -0
- package/docs/migration-0.9-to-0.10.md +182 -0
- package/docs/playwright-reporter.md +170 -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 +2 -2
- 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 +10 -18
- 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 +2 -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 +1 -1
- package/src/client/shared/components/PageHeader/PageHeader.tsx +23 -7
- package/src/client/shared/components/ResultsPage.tsx +6 -4
- package/src/client/shared/creeveyClientApi.ts +19 -1
- package/src/client/shared/helpers.ts +4 -24
- package/src/client/web/CreeveyApp.tsx +5 -2
- package/src/client/web/CreeveyContext.tsx +2 -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 +1 -1
- package/src/client/web/CreeveyView/SideBar/SideBar.tsx +11 -6
- package/src/client/web/CreeveyView/SideBar/SideBarFooter.tsx +21 -19
- package/src/client/web/CreeveyView/SideBar/SideBarHeader.tsx +20 -5
- package/src/client/web/CreeveyView/SideBar/SuiteLink.tsx +10 -8
- package/src/client/web/CreeveyView/SideBar/TestLink.tsx +9 -7
- 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/index.tsx +10 -5
- package/src/client/web/themes.ts +24 -0
- package/src/creevey.ts +92 -38
- package/src/playwright/generator.ts +360 -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 +165 -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 +169 -96
- 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 +74 -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 +62 -45
- 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 +123 -14
- 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 +32 -75
- 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-BE9CL5_G.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/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.
|
package/docs/config.md
CHANGED
@@ -1,212 +1,226 @@
|
|
1
|
-
|
1
|
+
# Creevey Configuration Examples
|
2
2
|
|
3
|
-
|
3
|
+
Creevey is highly configurable and can be tailored to your specific needs. Here are some examples of how to configure Creevey for your Storybook.
|
4
4
|
|
5
|
-
|
6
|
-
- `--ui` — Start runner web server
|
7
|
-
- `--update` — Approve all images from `report` directory
|
8
|
-
- `--port` — Specify port for web server. Default `3000`
|
9
|
-
- `--reportDir` — Path where reports will be stored
|
10
|
-
- `--screenDir` — Path where reference images are located
|
11
|
-
- `--debug` — Enable debug output
|
5
|
+
## Zero Configuration
|
12
6
|
|
13
|
-
|
7
|
+
The simplest way to get started with Creevey, just run it without any configuration:
|
14
8
|
|
15
|
-
|
9
|
+
```bash
|
10
|
+
yarn creevey test -s
|
11
|
+
```
|
12
|
+
|
13
|
+
This will start Creevey with default settings, using Chrome as the browser and also start Storybook hosted at `http://localhost:6006`. Adding `--ui` flag will start the web server for the UI Runner.
|
14
|
+
|
15
|
+
**NOTE** By default, Creevey uses Selenium WebDriver, but it's done for backward compatibility and it's recommended to define webdriver explicitly in the configuration.
|
16
16
|
|
17
17
|
```ts
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
},
|
18
|
+
// creevey.config.ts
|
19
|
+
import { SeleniumWebdriver } from 'creevey/selenium';
|
20
|
+
|
21
|
+
const config = {
|
22
|
+
webdriver: SeleniumWebdriver,
|
23
|
+
};
|
24
|
+
|
25
|
+
// or use Playwright instead
|
26
|
+
|
27
|
+
import { PlaywrightWebdriver } from 'creevey/playwright';
|
28
|
+
|
29
|
+
const config = {
|
30
|
+
webdriver: PlaywrightWebdriver,
|
32
31
|
};
|
33
32
|
```
|
34
33
|
|
35
|
-
|
34
|
+
## Basic Configuration
|
36
35
|
|
37
|
-
|
36
|
+
The minimal configuration to test your stories might be:
|
38
37
|
|
39
38
|
```ts
|
40
|
-
|
39
|
+
// creevey.config.ts
|
40
|
+
import { CreeveyConfig } from 'creevey';
|
41
|
+
import { PlaywrightWebdriver } from 'creevey/playwright';
|
42
|
+
|
43
|
+
const config: CreeveyConfig = {
|
44
|
+
webdriver: PlaywrightWebdriver,
|
41
45
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
+
// The URL where your Storybook is hosted
|
47
|
+
storybookUrl: 'http://localhost:9000',
|
48
|
+
|
49
|
+
// Define which browsers to use for testing
|
50
|
+
browsers: {
|
51
|
+
chromium: {
|
52
|
+
// The browser type name which will be used by Playwright
|
53
|
+
browserName: 'chromium',
|
54
|
+
// Default viewport dimensions
|
55
|
+
viewport: { width: 1024, height: 768 },
|
56
|
+
// Limit of retries for failed tests
|
57
|
+
maxRetries: 2,
|
58
|
+
},
|
59
|
+
},
|
60
|
+
};
|
46
61
|
|
47
|
-
|
48
|
-
|
62
|
+
export default config;
|
63
|
+
```
|
49
64
|
|
50
|
-
|
51
|
-
screenDir: path.join(__dirname, '../images'),
|
65
|
+
## Multiple Browsers Configuration
|
52
66
|
|
53
|
-
|
54
|
-
reportDir: path.join(__dirname, '../report'),
|
67
|
+
It's possible to est your stories across different browsers:
|
55
68
|
|
56
|
-
|
57
|
-
|
69
|
+
```ts
|
70
|
+
// creevey.config.ts
|
71
|
+
import { CreeveyConfig } from 'creevey';
|
72
|
+
import { PlaywrightWebdriver } from 'creevey/playwright';
|
58
73
|
|
59
|
-
|
60
|
-
|
74
|
+
const config: CreeveyConfig = {
|
75
|
+
webdriver: PlaywrightWebdriver,
|
61
76
|
|
62
|
-
// Describe browsers and their options
|
63
77
|
browsers: {
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
otherChrome: {
|
69
|
-
browserName: 'chrome',
|
70
|
-
// Define initial viewport size
|
71
|
-
viewport: { width: 1024, height: 720 },
|
72
|
-
// Increase parallel sessions
|
78
|
+
chromium: {
|
79
|
+
browserName: 'chromium',
|
80
|
+
// Amount of parallel browser sessions
|
73
81
|
limit: 2,
|
74
|
-
/* Also you can define any browser capabilities here */
|
75
|
-
version: '86.0',
|
76
|
-
// It's possible to set Storybook's globals
|
77
|
-
// https://github.com/storybookjs/storybook/blob/v6.0.0/docs/essentials/toolbars-and-globals.md
|
78
|
-
// NOTE: This is an experimental feature and will be replaced in future
|
79
|
-
_storybookGlobals: {
|
80
|
-
myTheme: 'dark',
|
81
|
-
},
|
82
82
|
},
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
browserName: 'internet explorer',
|
87
|
-
// Like user another Selenium Grid url
|
88
|
-
gridUrl: '<anotherGridUrl>/wd/hub',
|
89
|
-
// Or use different storybook instance
|
90
|
-
storybookUrl: 'http://mystoryhost:6007',
|
91
|
-
// And use you own docker image
|
92
|
-
// By default Creevey will use selenoid image according browser name and version:
|
93
|
-
// `selenoid/${browserName}:${version ?? 'latest'}` image
|
94
|
-
dockerImage: 'microsoft/ie:11.0',
|
83
|
+
firefox: {
|
84
|
+
browserName: 'firefox',
|
85
|
+
limit: 2,
|
95
86
|
},
|
96
87
|
},
|
88
|
+
};
|
89
|
+
|
90
|
+
export default config;
|
91
|
+
```
|
92
|
+
|
93
|
+
## Test stories with different themes
|
94
|
+
|
95
|
+
Test your components with different themes:
|
97
96
|
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
97
|
+
```ts
|
98
|
+
// creevey.config.ts
|
99
|
+
import { CreeveyConfig } from 'creevey';
|
100
|
+
import { PlaywrightWebdriver } from 'creevey/playwright';
|
101
|
+
|
102
|
+
const config: CreeveyConfig = {
|
103
|
+
webdriver: PlaywrightWebdriver,
|
104
|
+
browsers: {
|
105
|
+
dark: {
|
106
|
+
browserName: 'chromium',
|
107
|
+
// Define a storybook globals which will be applied to the stories
|
108
|
+
_storybookGlobals: {
|
109
|
+
theme: 'dark',
|
110
|
+
},
|
102
111
|
},
|
103
|
-
|
104
|
-
|
112
|
+
light: {
|
113
|
+
browserName: 'chromium',
|
114
|
+
_storybookGlobals: {
|
115
|
+
theme: 'light',
|
116
|
+
},
|
105
117
|
},
|
106
118
|
},
|
107
119
|
};
|
120
|
+
|
121
|
+
export default config;
|
108
122
|
```
|
109
123
|
|
110
|
-
|
124
|
+
## Using dedicated Selenium Grid server
|
111
125
|
|
112
|
-
|
126
|
+
Use Selenium Grid for distributed testing:
|
113
127
|
|
114
|
-
```
|
115
|
-
// .
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
128
|
+
```ts
|
129
|
+
// creevey.config.ts
|
130
|
+
import { CreeveyConfig } from 'creevey';
|
131
|
+
import { SeleniumWebdriver } from 'creevey/selenium';
|
132
|
+
|
133
|
+
const config: CreeveyConfig = {
|
134
|
+
webdriver: SeleniumWebdriver,
|
135
|
+
// Selenium Grid connection settings
|
136
|
+
gridUrl: 'http://selenium-hub:4444/wd/hub',
|
137
|
+
browsers: {
|
138
|
+
chrome: {
|
139
|
+
browserName: 'chrome',
|
140
|
+
// You can define any additional selenium capabilities here
|
141
|
+
// https://w3c.github.io/webdriver/#capabilities
|
142
|
+
seleniumCapabilities: {
|
143
|
+
browserVersion: '128.0',
|
144
|
+
platformName: 'linux',
|
145
|
+
},
|
121
146
|
},
|
122
147
|
},
|
123
148
|
};
|
149
|
+
|
150
|
+
export default config;
|
124
151
|
```
|
125
152
|
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
153
|
+
## Playwright configuration options
|
154
|
+
|
155
|
+
Leverage Playwright for testing:
|
156
|
+
|
157
|
+
```ts
|
158
|
+
// creevey.config.ts
|
159
|
+
import { CreeveyConfig } from 'creevey';
|
160
|
+
import { PlaywrightWebdriver } from 'creevey/playwright';
|
161
|
+
|
162
|
+
const config: CreeveyConfig = {
|
163
|
+
webdriver: PlaywrightWebdriver,
|
164
|
+
browsers: {
|
165
|
+
chromium: {
|
166
|
+
browserName: 'chromium',
|
167
|
+
// Playwright-specific options
|
168
|
+
// https://playwright.dev/docs/api/class-browsertype#browser-type-launch-server
|
169
|
+
playwrightOptions: {
|
170
|
+
headless: false,
|
171
|
+
channel: 'chrome-canary',
|
172
|
+
slowMo: 50, // Slow down Playwright operations by 50ms
|
144
173
|
},
|
145
174
|
},
|
146
175
|
},
|
147
|
-
} as Meta & CreeveyMeta;
|
148
|
-
|
149
|
-
export const Basic: Story & CreeveyStory = () => <MyComponent />;
|
150
|
-
Basic.parameters = {
|
151
|
-
creevey: {
|
152
|
-
captureElement: '.container',
|
153
|
-
// elements to ignore in capturing screenshot
|
154
|
-
ignoreElements: ['button', '.local-time'],
|
155
|
-
// Delay before test starts in ms
|
156
|
-
delay: 1000,
|
157
|
-
tests: {
|
158
|
-
/* ... */
|
159
|
-
},
|
160
|
-
},
|
161
176
|
};
|
177
|
+
|
178
|
+
export default config;
|
162
179
|
```
|
163
180
|
|
164
|
-
|
181
|
+
## Advanced Configuration
|
182
|
+
|
183
|
+
Comprehensive example combining multiple features and additional options:
|
165
184
|
|
166
185
|
```ts
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
186
|
+
// creevey.config.ts
|
187
|
+
import path from 'path';
|
188
|
+
import MochaJUnitReporter from 'mocha-junit-reporter';
|
189
|
+
import { CreeveyConfig } from 'creevey';
|
190
|
+
import { PlaywrightWebdriver } from 'creevey/playwright';
|
191
|
+
|
192
|
+
const config: CreeveyConfig = {
|
193
|
+
webdriver: PlaywrightWebdriver,
|
194
|
+
|
195
|
+
// It's possible to resolve Storybook URL at the runtime
|
196
|
+
resolveStorybookUrl: () =>
|
197
|
+
fetch('https://example.com/resolve-ip')
|
198
|
+
.then((res) => res.text())
|
199
|
+
.then((data) => `http://${data}:6006`),
|
200
|
+
|
201
|
+
// Define custom reference screenshots directory
|
202
|
+
screenDir: path.join(process.cwd(), 'screenshots'),
|
203
|
+
|
204
|
+
// Define custom report directory
|
205
|
+
reportDir: path.join(process.cwd(), 'reports'),
|
206
|
+
|
207
|
+
// Define path where Creevey tests are located
|
208
|
+
testDir: path.join(process.cwd(), 'tests'),
|
209
|
+
|
210
|
+
// You can use any Mocha-like reporter
|
211
|
+
reporter: MochaJUnitReporter,
|
176
212
|
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
- `skip: { 'Skip reason message': { stories: ['simple', 'special'] } }`
|
192
|
-
- `skip: { 'Skip reason message': { stories: /.*large$/ } }`
|
193
|
-
- Skip specific tests:
|
194
|
-
- `skip: { 'Skip reason message': { tests: 'click' } }`
|
195
|
-
- `skip: { 'Skip reason message': { tests: ['hover', 'click'] } }`
|
196
|
-
- `skip: { 'Skip reason message': { tests: /^press.*$/ } }`
|
197
|
-
- Multiple skip options:
|
198
|
-
- for one reason
|
199
|
-
```
|
200
|
-
skip: {
|
201
|
-
"reason": [{ /* ... */ }, { /* ... */ }],
|
202
|
-
}
|
203
|
-
```
|
204
|
-
- for several reasons
|
205
|
-
```
|
206
|
-
skip: {
|
207
|
-
"reason 1": { /* ... */ },
|
208
|
-
"reason 2": { /* ... */ },
|
209
|
-
}
|
210
|
-
```
|
211
|
-
|
212
|
-
NOTE: If you try to skip stories by story name, the storybook name format will be used (For more info see [storybook-export-vs-name-handling](https://storybook.js.org/docs/formats/component-story-format/#storybook-export-vs-name-handling))
|
213
|
+
// Pixelmatch options
|
214
|
+
diffOptions: { threshold: 0.1 },
|
215
|
+
|
216
|
+
// Regex pattern to match test files
|
217
|
+
testsRegex: /\.creevey\.ts$/,
|
218
|
+
|
219
|
+
// Disable using docker, to start browsers locally, it's useful for CI
|
220
|
+
useDocker: process.env.CI,
|
221
|
+
|
222
|
+
browsers: {
|
223
|
+
/* ... */
|
224
|
+
},
|
225
|
+
};
|
226
|
+
```
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import { defineConfig, devices } from '@playwright/test';
|
2
|
+
|
3
|
+
export default defineConfig({
|
4
|
+
testDir: './tests',
|
5
|
+
testMatch: 'visual.spec.ts',
|
6
|
+
globalSetup: 'creevey/playwright/setup',
|
7
|
+
// Configure reporters
|
8
|
+
reporter: [
|
9
|
+
['list'],
|
10
|
+
['creevey/playwright/reporter'],
|
11
|
+
],
|
12
|
+
// Reference images and report will be saved in these directories
|
13
|
+
snapshotDir: './images',
|
14
|
+
outputDir: './report',
|
15
|
+
use: {
|
16
|
+
viewport: { width: 1280, height: 720 },
|
17
|
+
baseURL: 'http://localhost:6006',
|
18
|
+
},
|
19
|
+
projects: [
|
20
|
+
{
|
21
|
+
name: 'chromium',
|
22
|
+
use: { ...devices['Desktop Chrome'] },
|
23
|
+
metadata: {
|
24
|
+
// Define storybook globals here
|
25
|
+
storybookGlobals: {
|
26
|
+
theme: 'dark',
|
27
|
+
},
|
28
|
+
},
|
29
|
+
}
|
30
|
+
],
|
31
|
+
webServer: {
|
32
|
+
command: 'yarn storybook dev --ci -p 6006',
|
33
|
+
url: 'http://localhost:6006',
|
34
|
+
reuseExistingServer: !process.env.CI,
|
35
|
+
},
|
36
|
+
});
|