creevey 0.9.0-beta.2 → 0.9.0-beta.21
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/.yarnrc.yml +1 -0
- package/CHANGELOG.md +51 -0
- package/README.md +11 -3
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +5 -0
- package/dist/cli.js.map +1 -0
- package/dist/client/addon/components/Addon.d.ts +8 -0
- package/dist/client/addon/components/Addon.js +57 -0
- package/dist/client/addon/components/Addon.js.map +1 -0
- package/dist/client/addon/components/Icons.js +18 -0
- package/dist/client/addon/components/Icons.js.map +1 -0
- package/{lib/types → dist}/client/addon/components/Panel.d.ts +1 -1
- package/dist/client/addon/components/Panel.js +32 -0
- package/dist/client/addon/components/Panel.js.map +1 -0
- package/{lib/types → dist}/client/addon/components/TestSelect.d.ts +1 -2
- package/dist/client/addon/components/TestSelect.js +33 -0
- package/dist/client/addon/components/TestSelect.js.map +1 -0
- package/dist/client/addon/components/Tools.d.ts +6 -0
- package/dist/client/addon/components/Tools.js +89 -0
- package/dist/client/addon/components/Tools.js.map +1 -0
- package/{lib/types/client/addon/Manager.d.ts → dist/client/addon/controller.d.ts} +9 -8
- package/dist/client/addon/controller.js +208 -0
- package/dist/client/addon/controller.js.map +1 -0
- package/dist/client/addon/decorator.d.ts +1 -0
- package/dist/client/addon/decorator.js +6 -0
- package/dist/client/addon/decorator.js.map +1 -0
- package/dist/client/addon/index.d.ts +2 -0
- package/dist/client/addon/index.js +19 -0
- package/dist/client/addon/index.js.map +1 -0
- package/dist/client/addon/manager.js +41 -0
- package/dist/client/addon/manager.js.map +1 -0
- package/dist/client/addon/preset.d.ts +2 -0
- package/dist/client/addon/preset.js +6 -0
- package/dist/client/addon/preset.js.map +1 -0
- package/dist/client/addon/preview.d.ts +4 -0
- package/dist/client/addon/preview.js +8 -0
- package/dist/client/addon/preview.js.map +1 -0
- package/dist/client/addon/readyForCapture.js +7 -0
- package/dist/client/addon/readyForCapture.js.map +1 -0
- package/{lib/types → dist}/client/addon/utils.d.ts +2 -1
- package/dist/client/addon/utils.js +27 -0
- package/dist/client/addon/utils.js.map +1 -0
- package/{lib/types → dist}/client/addon/withCreevey.d.ts +6 -5
- package/dist/client/addon/withCreevey.js +286 -0
- package/dist/client/addon/withCreevey.js.map +1 -0
- package/dist/client/shared/components/ImagesView/BlendView.d.ts +5 -0
- package/dist/client/shared/components/ImagesView/BlendView.js +74 -0
- package/dist/client/shared/components/ImagesView/BlendView.js.map +1 -0
- package/dist/client/shared/components/ImagesView/ImagesView.d.ts +9 -0
- package/dist/client/shared/components/ImagesView/ImagesView.js +43 -0
- package/dist/client/shared/components/ImagesView/ImagesView.js.map +1 -0
- package/dist/client/shared/components/ImagesView/SideBySideView.d.ts +5 -0
- package/dist/client/shared/components/ImagesView/SideBySideView.js +121 -0
- package/dist/client/shared/components/ImagesView/SideBySideView.js.map +1 -0
- package/dist/client/shared/components/ImagesView/SlideView.d.ts +5 -0
- package/dist/client/shared/components/ImagesView/SlideView.js +136 -0
- package/dist/client/shared/components/ImagesView/SlideView.js.map +1 -0
- package/dist/client/shared/components/ImagesView/SwapView.d.ts +5 -0
- package/dist/client/shared/components/ImagesView/SwapView.js +72 -0
- package/dist/client/shared/components/ImagesView/SwapView.js.map +1 -0
- package/{lib/types/client/shared/components/ImagesView/ImagesView.d.ts → dist/client/shared/components/ImagesView/common.d.ts} +1 -11
- package/dist/client/shared/components/ImagesView/common.js +14 -0
- package/dist/client/shared/components/ImagesView/common.js.map +1 -0
- package/dist/client/shared/components/ImagesView/index.d.ts +5 -0
- package/dist/client/shared/components/ImagesView/index.js +14 -0
- package/dist/client/shared/components/ImagesView/index.js.map +1 -0
- package/{lib/types → dist}/client/shared/components/PageFooter/PageFooter.d.ts +0 -1
- package/dist/client/shared/components/PageFooter/PageFooter.js +25 -0
- package/dist/client/shared/components/PageFooter/PageFooter.js.map +1 -0
- package/{lib/types → dist}/client/shared/components/PageFooter/Paging.d.ts +1 -2
- package/dist/client/shared/components/PageFooter/Paging.js +68 -0
- package/dist/client/shared/components/PageFooter/Paging.js.map +1 -0
- package/{lib/types → dist}/client/shared/components/PageHeader/ImagePreview.d.ts +3 -1
- package/dist/client/shared/components/PageHeader/ImagePreview.js +61 -0
- package/dist/client/shared/components/PageHeader/ImagePreview.js.map +1 -0
- package/{lib/types → dist}/client/shared/components/PageHeader/PageHeader.d.ts +2 -5
- package/dist/client/shared/components/PageHeader/PageHeader.js +86 -0
- package/dist/client/shared/components/PageHeader/PageHeader.js.map +1 -0
- package/{lib/types → dist}/client/shared/components/ResultsPage.d.ts +5 -5
- package/dist/client/shared/components/ResultsPage.js +95 -0
- package/dist/client/shared/components/ResultsPage.js.map +1 -0
- package/{lib/types → dist}/client/shared/creeveyClientApi.d.ts +1 -1
- package/dist/client/shared/creeveyClientApi.js +53 -0
- package/dist/client/shared/creeveyClientApi.js.map +1 -0
- package/{lib/types → dist}/client/shared/helpers.d.ts +3 -3
- package/dist/client/shared/helpers.js +381 -0
- package/dist/client/shared/helpers.js.map +1 -0
- package/{lib/types → dist}/client/shared/viewMode.d.ts +1 -1
- package/dist/client/shared/viewMode.js +11 -0
- package/dist/client/shared/viewMode.js.map +1 -0
- package/dist/client/web/202.js +1 -0
- package/dist/client/web/270.js +43 -0
- package/dist/client/web/752.js +1 -0
- package/{lib/types → dist}/client/web/CreeveyApp.d.ts +2 -3
- package/dist/client/web/CreeveyApp.js +130 -0
- package/dist/client/web/CreeveyApp.js.map +1 -0
- package/{lib/types → dist}/client/web/CreeveyContext.d.ts +1 -1
- package/dist/client/web/CreeveyContext.js +17 -0
- package/dist/client/web/CreeveyContext.js.map +1 -0
- package/dist/client/web/CreeveyLoader.d.ts +3 -0
- package/dist/client/web/CreeveyLoader.js +52 -0
- package/dist/client/web/CreeveyLoader.js.map +1 -0
- package/{lib/types → dist}/client/web/CreeveyView/SideBar/Checkbox.d.ts +6 -3
- package/dist/client/web/CreeveyView/SideBar/Checkbox.js +86 -0
- package/dist/client/web/CreeveyView/SideBar/Checkbox.js.map +1 -0
- package/dist/client/web/CreeveyView/SideBar/Search.js +125 -0
- package/dist/client/web/CreeveyView/SideBar/Search.js.map +1 -0
- package/{lib/types → dist}/client/web/CreeveyView/SideBar/SideBar.d.ts +2 -2
- package/dist/client/web/CreeveyView/SideBar/SideBar.js +101 -0
- package/dist/client/web/CreeveyView/SideBar/SideBar.js.map +1 -0
- package/{lib/types → dist}/client/web/CreeveyView/SideBar/SideBarHeader.d.ts +2 -3
- package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js +113 -0
- package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js.map +1 -0
- package/dist/client/web/CreeveyView/SideBar/SuiteLink.d.ts +38 -0
- package/dist/client/web/CreeveyView/SideBar/SuiteLink.js +108 -0
- package/dist/client/web/CreeveyView/SideBar/SuiteLink.js.map +1 -0
- package/{lib/types → dist}/client/web/CreeveyView/SideBar/TestLink.d.ts +1 -2
- package/dist/client/web/CreeveyView/SideBar/TestLink.js +63 -0
- package/dist/client/web/CreeveyView/SideBar/TestLink.js.map +1 -0
- package/{lib/types → dist}/client/web/CreeveyView/SideBar/TestStatusIcon.d.ts +4 -2
- package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.js +52 -0
- package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.js.map +1 -0
- package/dist/client/web/CreeveyView/SideBar/TestsStatus.d.ts +11 -0
- package/dist/client/web/CreeveyView/SideBar/TestsStatus.js +74 -0
- package/dist/client/web/CreeveyView/SideBar/TestsStatus.js.map +1 -0
- package/dist/client/web/CreeveyView/SideBar/Toggle.js +69 -0
- package/dist/client/web/CreeveyView/SideBar/Toggle.js.map +1 -0
- package/dist/client/web/CreeveyView/SideBar/index.d.ts +1 -0
- package/dist/client/web/CreeveyView/SideBar/index.js +6 -0
- package/dist/client/web/CreeveyView/SideBar/index.js.map +1 -0
- package/{lib/types → dist}/client/web/KeyboardEventsContext.d.ts +6 -4
- package/dist/client/web/KeyboardEventsContext.js +116 -0
- package/dist/client/web/KeyboardEventsContext.js.map +1 -0
- package/{lib/types → dist}/client/web/index.d.ts +1 -1
- package/{lib/cjs → dist}/client/web/index.html +12 -3
- package/dist/client/web/index.js +75 -0
- package/dist/client/web/index.js.map +1 -0
- package/dist/client/web/main.js +79 -0
- package/dist/client/web/main.js.LICENSE.txt +34 -0
- package/dist/creevey.d.ts +1 -0
- package/dist/creevey.js +52 -0
- package/dist/creevey.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/{lib/types → dist}/server/config.d.ts +1 -1
- package/dist/server/config.js +84 -0
- package/dist/server/config.js.map +1 -0
- package/{lib/types → dist}/server/docker.d.ts +2 -2
- package/dist/server/docker.js +122 -0
- package/dist/server/docker.js.map +1 -0
- package/{lib/types → dist}/server/index.d.ts +1 -1
- package/dist/server/index.js +47 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/logger.d.ts +10 -0
- package/dist/server/logger.js +25 -0
- package/dist/server/logger.js.map +1 -0
- package/{lib/types → dist}/server/master/api.d.ts +1 -1
- package/dist/server/master/api.js +50 -0
- package/dist/server/master/api.js.map +1 -0
- package/dist/server/master/index.d.ts +3 -0
- package/dist/server/master/index.js +110 -0
- package/dist/server/master/index.js.map +1 -0
- package/{lib/types → dist}/server/master/master.d.ts +2 -2
- package/dist/server/master/master.js +40 -0
- package/dist/server/master/master.js.map +1 -0
- package/{lib/types → dist}/server/master/pool.d.ts +1 -2
- package/dist/server/master/pool.js +186 -0
- package/dist/server/master/pool.js.map +1 -0
- package/{lib/types → dist}/server/master/runner.d.ts +3 -8
- package/dist/server/master/runner.js +172 -0
- package/dist/server/master/runner.js.map +1 -0
- package/dist/server/master/server.d.ts +2 -0
- package/dist/server/master/server.js +114 -0
- package/dist/server/master/server.js.map +1 -0
- package/{lib/types → dist}/server/messages.d.ts +13 -14
- package/dist/server/messages.js +222 -0
- package/dist/server/messages.js.map +1 -0
- package/{lib/types → dist}/server/selenium/browser.d.ts +5 -3
- package/dist/server/selenium/browser.js +634 -0
- package/dist/server/selenium/browser.js.map +1 -0
- package/dist/server/selenium/index.d.ts +2 -0
- package/dist/server/selenium/index.js +19 -0
- package/dist/server/selenium/index.js.map +1 -0
- package/{lib/types → dist}/server/selenium/selenoid.d.ts +1 -1
- package/dist/server/selenium/selenoid.js +120 -0
- package/dist/server/selenium/selenoid.js.map +1 -0
- package/{lib/types → dist}/server/stories.d.ts +2 -7
- package/dist/server/stories.js +92 -0
- package/dist/server/stories.js.map +1 -0
- package/dist/server/storybook/providers/browser.d.ts +2 -0
- package/dist/server/storybook/providers/browser.js +60 -0
- package/dist/server/storybook/providers/browser.js.map +1 -0
- package/dist/server/storybook/providers/hybrid.d.ts +2 -0
- package/dist/server/storybook/providers/hybrid.js +59 -0
- package/dist/server/storybook/providers/hybrid.js.map +1 -0
- package/dist/server/telemetry.d.ts +2 -0
- package/dist/server/telemetry.js +196 -0
- package/dist/server/telemetry.js.map +1 -0
- package/{lib/types → dist}/server/testsFiles/parser.d.ts +2 -6
- package/dist/server/testsFiles/parser.js +50 -0
- package/dist/server/testsFiles/parser.js.map +1 -0
- package/dist/server/update.d.ts +2 -0
- package/dist/server/update.js +53 -0
- package/dist/server/update.js.map +1 -0
- package/{lib/types → dist}/server/utils.d.ts +11 -7
- package/dist/server/utils.js +142 -0
- package/dist/server/utils.js.map +1 -0
- package/{lib/types → dist}/server/worker/chai-image.d.ts +1 -2
- package/dist/server/worker/chai-image.js +113 -0
- package/dist/server/worker/chai-image.js.map +1 -0
- package/{lib/types → dist}/server/worker/helpers.d.ts +1 -1
- package/dist/server/worker/helpers.js +57 -0
- package/dist/server/worker/helpers.js.map +1 -0
- package/dist/server/worker/index.d.ts +1 -0
- package/dist/server/worker/index.js +6 -0
- package/dist/server/worker/index.js.map +1 -0
- package/dist/server/worker/reporter.js +130 -0
- package/dist/server/worker/reporter.js.map +1 -0
- package/dist/server/worker/worker.d.ts +4 -0
- package/dist/server/worker/worker.js +213 -0
- package/dist/server/worker/worker.js.map +1 -0
- package/dist/shared/index.d.ts +7 -0
- package/dist/shared/index.js +77 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/serializeRegExp.d.ts +9 -0
- package/dist/shared/serializeRegExp.js +25 -0
- package/dist/shared/serializeRegExp.js.map +1 -0
- package/{lib/types → dist}/types.d.ts +73 -103
- package/dist/types.js +61 -0
- package/dist/types.js.map +1 -0
- package/docs/config.md +30 -30
- package/docs/tests.md +3 -3
- package/eslint.config.mjs +62 -0
- package/manager/README.md +3 -0
- package/manager/package.json +3 -0
- package/package.json +137 -165
- package/preset/README.md +3 -0
- package/preset/package.json +3 -0
- package/preview/README.md +3 -0
- package/preview/package.json +3 -0
- package/src/cli.ts +3 -0
- package/src/client/addon/components/Addon.tsx +53 -0
- package/src/client/addon/components/Icons.tsx +28 -0
- package/src/client/addon/components/Panel.tsx +53 -0
- package/src/client/addon/components/TestSelect.tsx +48 -0
- package/src/client/addon/components/Tools.tsx +93 -0
- package/src/client/addon/controller.ts +224 -0
- package/src/client/addon/decorator.ts +3 -0
- package/src/client/addon/index.ts +2 -0
- package/src/client/addon/manager.ts +44 -0
- package/src/client/addon/preset.ts +3 -0
- package/src/client/addon/preview.ts +7 -0
- package/src/client/addon/readyForCapture.ts +9 -0
- package/src/client/addon/utils.tsx +24 -0
- package/src/client/addon/withCreevey.ts +326 -0
- package/src/client/shared/components/ImagesView/BlendView.tsx +71 -0
- package/src/client/shared/components/ImagesView/ImagesView.tsx +62 -0
- package/src/client/shared/components/ImagesView/SideBySideView.tsx +139 -0
- package/src/client/shared/components/ImagesView/SlideView.tsx +146 -0
- package/src/client/shared/components/ImagesView/SwapView.tsx +81 -0
- package/src/client/shared/components/ImagesView/common.ts +23 -0
- package/src/client/shared/components/ImagesView/index.ts +5 -0
- package/src/client/shared/components/PageFooter/PageFooter.tsx +44 -0
- package/src/client/shared/components/PageFooter/Paging.tsx +105 -0
- package/src/client/shared/components/PageHeader/ImagePreview.tsx +82 -0
- package/src/client/shared/components/PageHeader/PageHeader.tsx +123 -0
- package/src/client/shared/components/ResultsPage.tsx +135 -0
- package/src/client/shared/creeveyClientApi.ts +64 -0
- package/src/client/shared/helpers.ts +422 -0
- package/src/client/shared/viewMode.ts +10 -0
- package/src/client/web/CreeveyApp.tsx +177 -0
- package/src/client/web/CreeveyContext.tsx +20 -0
- package/src/client/web/CreeveyLoader.tsx +56 -0
- package/src/client/web/CreeveyView/SideBar/Checkbox.tsx +118 -0
- package/src/client/web/CreeveyView/SideBar/Search.tsx +140 -0
- package/src/client/web/CreeveyView/SideBar/SideBar.tsx +125 -0
- package/src/client/web/CreeveyView/SideBar/SideBarHeader.tsx +138 -0
- package/src/client/web/CreeveyView/SideBar/SuiteLink.tsx +118 -0
- package/src/client/web/CreeveyView/SideBar/TestLink.tsx +67 -0
- package/src/client/web/CreeveyView/SideBar/TestStatusIcon.tsx +58 -0
- package/src/client/web/CreeveyView/SideBar/TestsStatus.tsx +105 -0
- package/src/client/web/CreeveyView/SideBar/Toggle.tsx +85 -0
- package/src/client/web/CreeveyView/SideBar/index.ts +1 -0
- package/src/client/web/KeyboardEventsContext.tsx +121 -0
- package/src/client/web/index.html +28 -0
- package/src/client/web/index.tsx +63 -0
- package/src/creevey.ts +47 -0
- package/src/index.ts +4 -0
- package/src/server/config.ts +83 -0
- package/src/server/docker.ts +136 -0
- package/src/server/index.ts +51 -0
- package/{lib/esm/server/logger.js → src/server/logger.ts} +8 -7
- package/src/server/master/api.ts +55 -0
- package/src/server/master/index.ts +111 -0
- package/src/server/master/master.ts +47 -0
- package/src/server/master/pool.ts +203 -0
- package/src/server/master/runner.ts +189 -0
- package/src/server/master/server.ts +124 -0
- package/src/server/messages.ts +273 -0
- package/src/server/selenium/browser.ts +834 -0
- package/src/server/selenium/index.ts +2 -0
- package/src/server/selenium/selenoid.ts +154 -0
- package/src/server/stories.ts +133 -0
- package/src/server/storybook/providers/browser.ts +58 -0
- package/src/server/storybook/providers/hybrid.ts +70 -0
- package/src/server/telemetry.ts +212 -0
- package/src/server/testsFiles/parser.ts +60 -0
- package/src/server/update.ts +74 -0
- package/src/server/utils.ts +184 -0
- package/src/server/worker/chai-image.ts +147 -0
- package/src/server/worker/helpers.ts +61 -0
- package/src/server/worker/index.ts +1 -0
- package/src/server/worker/reporter.ts +170 -0
- package/src/server/worker/worker.ts +234 -0
- package/src/shared/index.ts +76 -0
- package/src/shared/serializeRegExp.ts +26 -0
- package/src/types.ts +500 -0
- package/types/chai.d.ts +0 -1
- package/types/global.d.ts +5 -0
- package/types/mocha.d.ts +1 -1
- package/webpack.config.mjs +46 -0
- package/lib/cjs/cli.js +0 -5
- package/lib/cjs/client/addon/Manager.js +0 -412
- package/lib/cjs/client/addon/components/Addon.js +0 -76
- package/lib/cjs/client/addon/components/Icons.js +0 -42
- package/lib/cjs/client/addon/components/Panel.js +0 -68
- package/lib/cjs/client/addon/components/TestSelect.js +0 -63
- package/lib/cjs/client/addon/components/Tools.js +0 -114
- package/lib/cjs/client/addon/decorator.js +0 -11
- package/lib/cjs/client/addon/preset.js +0 -81
- package/lib/cjs/client/addon/readyForCapture.js +0 -12
- package/lib/cjs/client/addon/register.js +0 -96
- package/lib/cjs/client/addon/utils.js +0 -38
- package/lib/cjs/client/addon/withCreevey.js +0 -531
- package/lib/cjs/client/shared/components/ImagesView/BlendView.js +0 -85
- package/lib/cjs/client/shared/components/ImagesView/ImagesView.js +0 -88
- package/lib/cjs/client/shared/components/ImagesView/SideBySideView.js +0 -176
- package/lib/cjs/client/shared/components/ImagesView/SlideView.js +0 -179
- package/lib/cjs/client/shared/components/ImagesView/SwapView.js +0 -110
- package/lib/cjs/client/shared/components/ImagesView/index.js +0 -45
- package/lib/cjs/client/shared/components/PageFooter/PageFooter.js +0 -46
- package/lib/cjs/client/shared/components/PageFooter/Paging.js +0 -98
- package/lib/cjs/client/shared/components/PageHeader/ImagePreview.js +0 -78
- package/lib/cjs/client/shared/components/PageHeader/PageHeader.js +0 -144
- package/lib/cjs/client/shared/components/ResultsPage.js +0 -173
- package/lib/cjs/client/shared/creeveyClientApi.js +0 -103
- package/lib/cjs/client/shared/helpers.js +0 -482
- package/lib/cjs/client/shared/viewMode.js +0 -17
- package/lib/cjs/client/web/1.js +0 -13
- package/lib/cjs/client/web/2.js +0 -1
- package/lib/cjs/client/web/main.js +0 -38
- package/lib/cjs/creevey.js +0 -71
- package/lib/cjs/index.js +0 -62
- package/lib/cjs/server/config.js +0 -96
- package/lib/cjs/server/docker.js +0 -150
- package/lib/cjs/server/extract.js +0 -50
- package/lib/cjs/server/index.js +0 -83
- package/lib/cjs/server/loaders/babel/creevey-plugin.js +0 -88
- package/lib/cjs/server/loaders/babel/helpers.js +0 -479
- package/lib/cjs/server/loaders/babel/register.js +0 -126
- package/lib/cjs/server/loaders/hooks/mdx.js +0 -30
- package/lib/cjs/server/loaders/hooks/svelte.js +0 -65
- package/lib/cjs/server/loaders/webpack/compile.js +0 -286
- package/lib/cjs/server/loaders/webpack/creevey-loader.js +0 -174
- package/lib/cjs/server/loaders/webpack/dummy-hmr.js +0 -44
- package/lib/cjs/server/loaders/webpack/mdx-loader.js +0 -72
- package/lib/cjs/server/loaders/webpack/start.js +0 -41
- package/lib/cjs/server/logger.js +0 -47
- package/lib/cjs/server/master/api.js +0 -71
- package/lib/cjs/server/master/index.js +0 -146
- package/lib/cjs/server/master/master.js +0 -57
- package/lib/cjs/server/master/pool.js +0 -206
- package/lib/cjs/server/master/runner.js +0 -294
- package/lib/cjs/server/master/server.js +0 -129
- package/lib/cjs/server/messages.js +0 -266
- package/lib/cjs/server/selenium/browser.js +0 -680
- package/lib/cjs/server/selenium/index.js +0 -31
- package/lib/cjs/server/selenium/selenoid.js +0 -174
- package/lib/cjs/server/stories.js +0 -170
- package/lib/cjs/server/storybook/entry.js +0 -68
- package/lib/cjs/server/storybook/helpers.js +0 -165
- package/lib/cjs/server/storybook/providers/browser.js +0 -78
- package/lib/cjs/server/storybook/providers/hybrid.js +0 -84
- package/lib/cjs/server/storybook/providers/nodejs.js +0 -239
- package/lib/cjs/server/testsFiles/parser.js +0 -72
- package/lib/cjs/server/testsFiles/register.js +0 -48
- package/lib/cjs/server/update.js +0 -83
- package/lib/cjs/server/utils.js +0 -185
- package/lib/cjs/server/worker/chai-image.js +0 -142
- package/lib/cjs/server/worker/helpers.js +0 -69
- package/lib/cjs/server/worker/index.js +0 -15
- package/lib/cjs/server/worker/reporter.js +0 -120
- package/lib/cjs/server/worker/worker.js +0 -278
- package/lib/cjs/shared.js +0 -124
- package/lib/cjs/types.js +0 -74
- package/lib/esm/cli.js +0 -4
- package/lib/esm/client/addon/Manager.js +0 -396
- package/lib/esm/client/addon/components/Addon.js +0 -58
- package/lib/esm/client/addon/components/Icons.js +0 -27
- package/lib/esm/client/addon/components/Panel.js +0 -49
- package/lib/esm/client/addon/components/TestSelect.js +0 -49
- package/lib/esm/client/addon/components/Tools.js +0 -91
- package/lib/esm/client/addon/decorator.js +0 -2
- package/lib/esm/client/addon/preset.js +0 -56
- package/lib/esm/client/addon/readyForCapture.js +0 -5
- package/lib/esm/client/addon/register.js +0 -75
- package/lib/esm/client/addon/utils.js +0 -31
- package/lib/esm/client/addon/withCreevey.js +0 -509
- package/lib/esm/client/shared/components/ImagesView/BlendView.js +0 -63
- package/lib/esm/client/shared/components/ImagesView/ImagesView.js +0 -65
- package/lib/esm/client/shared/components/ImagesView/SideBySideView.js +0 -151
- package/lib/esm/client/shared/components/ImagesView/SlideView.js +0 -154
- package/lib/esm/client/shared/components/ImagesView/SwapView.js +0 -88
- package/lib/esm/client/shared/components/ImagesView/index.js +0 -5
- package/lib/esm/client/shared/components/PageFooter/PageFooter.js +0 -32
- package/lib/esm/client/shared/components/PageFooter/Paging.js +0 -84
- package/lib/esm/client/shared/components/PageHeader/ImagePreview.js +0 -64
- package/lib/esm/client/shared/components/PageHeader/PageHeader.js +0 -120
- package/lib/esm/client/shared/components/ResultsPage.js +0 -143
- package/lib/esm/client/shared/creeveyClientApi.js +0 -94
- package/lib/esm/client/shared/helpers.js +0 -424
- package/lib/esm/client/shared/viewMode.js +0 -6
- package/lib/esm/creevey.js +0 -56
- package/lib/esm/index.js +0 -7
- package/lib/esm/server/config.js +0 -73
- package/lib/esm/server/docker.js +0 -123
- package/lib/esm/server/extract.js +0 -34
- package/lib/esm/server/index.js +0 -64
- package/lib/esm/server/loaders/babel/creevey-plugin.js +0 -74
- package/lib/esm/server/loaders/babel/helpers.js +0 -462
- package/lib/esm/server/loaders/babel/register.js +0 -105
- package/lib/esm/server/loaders/hooks/mdx.js +0 -15
- package/lib/esm/server/loaders/hooks/svelte.js +0 -49
- package/lib/esm/server/loaders/webpack/compile.js +0 -263
- package/lib/esm/server/loaders/webpack/creevey-loader.js +0 -153
- package/lib/esm/server/loaders/webpack/dummy-hmr.js +0 -36
- package/lib/esm/server/loaders/webpack/mdx-loader.js +0 -58
- package/lib/esm/server/loaders/webpack/start.js +0 -27
- package/lib/esm/server/master/api.js +0 -60
- package/lib/esm/server/master/index.js +0 -125
- package/lib/esm/server/master/master.js +0 -38
- package/lib/esm/server/master/pool.js +0 -187
- package/lib/esm/server/master/runner.js +0 -272
- package/lib/esm/server/master/server.js +0 -105
- package/lib/esm/server/messages.js +0 -234
- package/lib/esm/server/selenium/browser.js +0 -647
- package/lib/esm/server/selenium/index.js +0 -2
- package/lib/esm/server/selenium/selenoid.js +0 -151
- package/lib/esm/server/stories.js +0 -151
- package/lib/esm/server/storybook/entry.js +0 -44
- package/lib/esm/server/storybook/helpers.js +0 -106
- package/lib/esm/server/storybook/providers/browser.js +0 -61
- package/lib/esm/server/storybook/providers/hybrid.js +0 -64
- package/lib/esm/server/storybook/providers/nodejs.js +0 -217
- package/lib/esm/server/testsFiles/parser.js +0 -50
- package/lib/esm/server/testsFiles/register.js +0 -35
- package/lib/esm/server/update.js +0 -65
- package/lib/esm/server/utils.js +0 -146
- package/lib/esm/server/worker/chai-image.js +0 -130
- package/lib/esm/server/worker/helpers.js +0 -60
- package/lib/esm/server/worker/index.js +0 -1
- package/lib/esm/server/worker/reporter.js +0 -98
- package/lib/esm/server/worker/worker.js +0 -248
- package/lib/esm/shared.js +0 -93
- package/lib/esm/types.js +0 -43
- package/lib/types/cli.d.ts +0 -1
- package/lib/types/client/addon/components/Addon.d.ts +0 -8
- package/lib/types/client/addon/components/Tools.d.ts +0 -6
- package/lib/types/client/addon/decorator.d.ts +0 -1
- package/lib/types/client/addon/preset.d.ts +0 -24
- package/lib/types/client/addon/register.d.ts +0 -3
- package/lib/types/client/shared/components/ImagesView/BlendView.d.ts +0 -3
- package/lib/types/client/shared/components/ImagesView/SideBySideView.d.ts +0 -3
- package/lib/types/client/shared/components/ImagesView/SlideView.d.ts +0 -3
- package/lib/types/client/shared/components/ImagesView/SwapView.d.ts +0 -3
- package/lib/types/client/shared/components/ImagesView/index.d.ts +0 -5
- package/lib/types/client/web/CreeveyLoader.d.ts +0 -3
- package/lib/types/client/web/CreeveyView/SideBar/SuiteLink.d.ts +0 -33
- package/lib/types/client/web/CreeveyView/SideBar/TestsStatus.d.ts +0 -9
- package/lib/types/client/web/CreeveyView/SideBar/index.d.ts +0 -1
- package/lib/types/index.d.ts +0 -3
- package/lib/types/server/extract.d.ts +0 -2
- package/lib/types/server/loaders/babel/creevey-plugin.d.ts +0 -1
- package/lib/types/server/loaders/babel/helpers.d.ts +0 -19
- package/lib/types/server/loaders/babel/register.d.ts +0 -5
- package/lib/types/server/loaders/hooks/mdx.d.ts +0 -1
- package/lib/types/server/loaders/hooks/svelte.d.ts +0 -1
- package/lib/types/server/loaders/webpack/compile.d.ts +0 -2
- package/lib/types/server/loaders/webpack/creevey-loader.d.ts +0 -2
- package/lib/types/server/loaders/webpack/dummy-hmr.d.ts +0 -10
- package/lib/types/server/loaders/webpack/mdx-loader.d.ts +0 -6
- package/lib/types/server/loaders/webpack/start.d.ts +0 -1
- package/lib/types/server/logger.d.ts +0 -6
- package/lib/types/server/master/index.d.ts +0 -3
- package/lib/types/server/master/server.d.ts +0 -2
- package/lib/types/server/selenium/index.d.ts +0 -2
- package/lib/types/server/storybook/entry.d.ts +0 -18
- package/lib/types/server/storybook/helpers.d.ts +0 -24
- package/lib/types/server/storybook/providers/browser.d.ts +0 -4
- package/lib/types/server/storybook/providers/hybrid.d.ts +0 -4
- package/lib/types/server/storybook/providers/nodejs.d.ts +0 -9
- package/lib/types/server/testsFiles/register.d.ts +0 -2
- package/lib/types/server/update.d.ts +0 -2
- package/lib/types/server/worker/index.d.ts +0 -1
- package/lib/types/server/worker/worker.d.ts +0 -4
- package/lib/types/shared.d.ts +0 -16
- package/preset.js +0 -9
- package/storybook-static/stories.json +0 -21
- package/types/babel__register.d.ts +0 -1
- package/types/event-source-polyfill.d.ts +0 -6
- package/types/mdx.d.ts +0 -6
- /package/{lib/types → dist}/client/addon/components/Icons.d.ts +0 -0
- /package/{lib/types/creevey.d.ts → dist/client/addon/manager.d.ts} +0 -0
- /package/{lib/types → dist}/client/addon/readyForCapture.d.ts +0 -0
- /package/{lib/types → dist}/client/web/CreeveyView/SideBar/Search.d.ts +0 -0
- /package/{lib/types → dist}/client/web/CreeveyView/SideBar/Toggle.d.ts +0 -0
- /package/{lib/types → dist}/server/worker/reporter.d.ts +0 -0
@@ -1,35 +1,28 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
import type { API as StorybookAPI } from '@storybook/api';
|
4
|
-
import type { DecoratorFunction } from '@storybook/addons';
|
5
|
-
import type { IKey } from 'selenium-webdriver/lib/input';
|
1
|
+
import type { StoryContextForEnhancers, DecoratorFunction } from '@storybook/csf';
|
2
|
+
import type { IKey } from 'selenium-webdriver/lib/input.js';
|
6
3
|
import type { Worker as ClusterWorker } from 'cluster';
|
7
4
|
import type { until, WebDriver, WebElementPromise } from 'selenium-webdriver';
|
8
5
|
import type Pixelmatch from 'pixelmatch';
|
9
6
|
import type { Context } from 'mocha';
|
10
|
-
|
11
|
-
export
|
7
|
+
import type { expect } from 'chai';
|
8
|
+
export type DiffOptions = typeof Pixelmatch extends (x1: any, x2: any, x3: any, x4: any, x5: any, options?: infer T) => void ? T : never;
|
9
|
+
export interface SetStoriesData {
|
10
|
+
v?: number;
|
12
11
|
globalParameters: {
|
13
12
|
creevey?: CreeveyStoryParams;
|
14
13
|
};
|
15
|
-
kindParameters: Partial<{
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
};
|
20
|
-
}>;
|
14
|
+
kindParameters: Partial<Record<string, {
|
15
|
+
fileName: string;
|
16
|
+
creevey?: CreeveyStoryParams;
|
17
|
+
}>>;
|
21
18
|
stories: StoriesRaw;
|
22
|
-
}
|
23
|
-
export
|
24
|
-
|
25
|
-
|
26
|
-
export declare type StoryInput = StoriesRaw extends {
|
27
|
-
[id: string]: infer S;
|
28
|
-
} ? S : never;
|
29
|
-
export interface StoryMeta<StoryFnReturnType = unknown> {
|
19
|
+
}
|
20
|
+
export type StoriesRaw = Record<string, StoryContextForEnhancers>;
|
21
|
+
export type StoryInput = StoriesRaw extends Record<string, infer S> ? S : never;
|
22
|
+
export interface StoryMeta {
|
30
23
|
title: string;
|
31
24
|
component?: unknown;
|
32
|
-
decorators?: DecoratorFunction
|
25
|
+
decorators?: DecoratorFunction[];
|
33
26
|
parameters?: {
|
34
27
|
creevey?: CreeveyStoryParams;
|
35
28
|
[name: string]: unknown;
|
@@ -52,14 +45,14 @@ export interface CSFStory<StoryFnReturnType = unknown> {
|
|
52
45
|
*/
|
53
46
|
story?: {
|
54
47
|
name?: string;
|
55
|
-
decorators?: DecoratorFunction
|
48
|
+
decorators?: DecoratorFunction[];
|
56
49
|
parameters?: {
|
57
50
|
creevey?: CreeveyStoryParams;
|
58
51
|
[name: string]: unknown;
|
59
52
|
};
|
60
53
|
};
|
61
54
|
storyName?: string;
|
62
|
-
decorators?: DecoratorFunction
|
55
|
+
decorators?: DecoratorFunction[];
|
63
56
|
parameters?: {
|
64
57
|
creevey?: CreeveyStoryParams;
|
65
58
|
[name: string]: unknown;
|
@@ -73,10 +66,15 @@ export interface CreeveyStory {
|
|
73
66
|
}
|
74
67
|
export interface Capabilities {
|
75
68
|
browserName: string;
|
69
|
+
browserVersion?: string;
|
70
|
+
platformName?: string;
|
71
|
+
/**
|
72
|
+
* @deprecated use `browserVersion` instead
|
73
|
+
*/
|
76
74
|
version?: string;
|
77
75
|
[prop: string]: unknown;
|
78
76
|
}
|
79
|
-
export
|
77
|
+
export type BrowserConfig = Capabilities & {
|
80
78
|
limit?: number;
|
81
79
|
gridUrl?: string;
|
82
80
|
storybookUrl?: string;
|
@@ -87,7 +85,7 @@ export declare type BrowserConfig = Capabilities & {
|
|
87
85
|
_storybookGlobals?: StorybookGlobals;
|
88
86
|
/**
|
89
87
|
* Specify custom docker image. Used only with `useDocker == true`
|
90
|
-
* @default `selenoid/${browserName}:${
|
88
|
+
* @default `selenoid/${browserName}:${browserVersion ?? 'latest'}`
|
91
89
|
*/
|
92
90
|
dockerImage?: string;
|
93
91
|
/**
|
@@ -100,10 +98,8 @@ export declare type BrowserConfig = Capabilities & {
|
|
100
98
|
height: number;
|
101
99
|
};
|
102
100
|
};
|
103
|
-
export
|
104
|
-
|
105
|
-
}
|
106
|
-
export declare type Browser = boolean | string | BrowserConfig;
|
101
|
+
export type StorybookGlobals = Record<string, unknown>;
|
102
|
+
export type Browser = boolean | string | BrowserConfig;
|
107
103
|
export interface HookConfig {
|
108
104
|
before?: () => unknown;
|
109
105
|
after?: () => unknown;
|
@@ -141,11 +137,6 @@ export interface Config {
|
|
141
137
|
* @default path.join(process.cwd(), './report')
|
142
138
|
*/
|
143
139
|
reportDir: string;
|
144
|
-
/**
|
145
|
-
* Absolute path to storybook config directory
|
146
|
-
* @default path.join(process.cwd(), './.storybook')
|
147
|
-
*/
|
148
|
-
storybookDir: string;
|
149
140
|
/**
|
150
141
|
* How much test would be retried
|
151
142
|
* @default 0
|
@@ -160,9 +151,7 @@ export interface Config {
|
|
160
151
|
* Browser capabilities
|
161
152
|
* @default { chrome: true }
|
162
153
|
*/
|
163
|
-
browsers:
|
164
|
-
[key: string]: Browser;
|
165
|
-
};
|
154
|
+
browsers: Record<string, Browser>;
|
166
155
|
/**
|
167
156
|
* Hooks that allow run custom script before and after creevey start
|
168
157
|
*/
|
@@ -172,18 +161,6 @@ export interface Config {
|
|
172
161
|
* Works only with `useDocker == false`
|
173
162
|
*/
|
174
163
|
selenoidPath?: string;
|
175
|
-
/**
|
176
|
-
* Creevey extract tests by using babel transformations
|
177
|
-
* and load stories to nodejs directly.
|
178
|
-
* In some edge cases it may fail to load tests.
|
179
|
-
* In that case you can enable this option.
|
180
|
-
* Creevey uses Storybook webpack config to build nodejs bundle with tests.
|
181
|
-
* But it slightly slower and doesn't work if you use custom bundler for Storybook
|
182
|
-
*
|
183
|
-
* Affects only for Storybook 6.2+
|
184
|
-
* @default false
|
185
|
-
*/
|
186
|
-
useWebpackToExtractTests: boolean;
|
187
164
|
/**
|
188
165
|
* Creevey has two built-in stories providers.
|
189
166
|
*
|
@@ -208,11 +185,7 @@ export interface Config {
|
|
208
185
|
* }
|
209
186
|
* ```
|
210
187
|
*/
|
211
|
-
storiesProvider:
|
212
|
-
watch: boolean;
|
213
|
-
debug: boolean;
|
214
|
-
port: number;
|
215
|
-
}, storiesListener: (stories: Map<string, StoryInput[]>) => void) => Promise<StoriesRaw>;
|
188
|
+
storiesProvider: StoriesProvider;
|
216
189
|
/**
|
217
190
|
* Define custom babel options for load stories transformation
|
218
191
|
*/
|
@@ -249,25 +222,36 @@ export interface Config {
|
|
249
222
|
testsRegex?: RegExp;
|
250
223
|
testsDir?: string;
|
251
224
|
tsConfig?: string;
|
225
|
+
/**
|
226
|
+
* Telemetry contains information about Creevey and Storybook versions, used Creevey config, browsers and tests meta.
|
227
|
+
* It's being sent only for projects from git.skbkontur.ru
|
228
|
+
* @default false
|
229
|
+
*/
|
230
|
+
disableTelemetry?: boolean;
|
231
|
+
}
|
232
|
+
export interface StoriesProvider<T = any> {
|
233
|
+
(config: Config, options: T, storiesListener: (stories: Map<string, StoryInput[]>) => void): Promise<StoriesRaw>;
|
234
|
+
providerName?: string;
|
252
235
|
}
|
253
|
-
export
|
236
|
+
export type CreeveyConfig = Partial<Config>;
|
254
237
|
export interface Options {
|
238
|
+
_: string[];
|
255
239
|
config?: string;
|
256
240
|
port: number;
|
257
241
|
ui: boolean;
|
258
242
|
update: boolean | string;
|
259
|
-
webpack: boolean;
|
260
243
|
debug: boolean;
|
261
|
-
|
244
|
+
trace: boolean;
|
262
245
|
tests: boolean;
|
263
246
|
browser?: string;
|
264
247
|
reporter?: string;
|
265
248
|
screenDir?: string;
|
266
249
|
reportDir?: string;
|
250
|
+
storybookUrl?: string;
|
267
251
|
saveReport: boolean;
|
268
252
|
failFast?: boolean;
|
269
253
|
}
|
270
|
-
export
|
254
|
+
export type WorkerMessage = {
|
271
255
|
type: 'ready';
|
272
256
|
payload?: never;
|
273
257
|
} | {
|
@@ -276,7 +260,7 @@ export declare type WorkerMessage = {
|
|
276
260
|
error: string;
|
277
261
|
};
|
278
262
|
};
|
279
|
-
export
|
263
|
+
export type StoriesMessage = {
|
280
264
|
type: 'get';
|
281
265
|
payload?: never;
|
282
266
|
} | {
|
@@ -292,7 +276,7 @@ export declare type StoriesMessage = {
|
|
292
276
|
type: 'capture';
|
293
277
|
payload?: CaptureOptions;
|
294
278
|
};
|
295
|
-
export
|
279
|
+
export type TestMessage = {
|
296
280
|
type: 'start';
|
297
281
|
payload: {
|
298
282
|
id: string;
|
@@ -303,7 +287,7 @@ export declare type TestMessage = {
|
|
303
287
|
type: 'end';
|
304
288
|
payload: TestResult;
|
305
289
|
};
|
306
|
-
export
|
290
|
+
export type WebpackMessage = {
|
307
291
|
type: 'success';
|
308
292
|
payload?: never;
|
309
293
|
} | {
|
@@ -316,7 +300,7 @@ export declare type WebpackMessage = {
|
|
316
300
|
type: 'rebuild failed';
|
317
301
|
payload?: never;
|
318
302
|
};
|
319
|
-
export
|
303
|
+
export type DockerMessage = {
|
320
304
|
type: 'start';
|
321
305
|
payload?: never;
|
322
306
|
} | {
|
@@ -325,8 +309,8 @@ export declare type DockerMessage = {
|
|
325
309
|
gridUrl: string;
|
326
310
|
};
|
327
311
|
};
|
328
|
-
export
|
329
|
-
export
|
312
|
+
export type ShutdownMessage = object;
|
313
|
+
export type ProcessMessage = (WorkerMessage & {
|
330
314
|
scope: 'worker';
|
331
315
|
}) | (StoriesMessage & {
|
332
316
|
scope: 'stories';
|
@@ -339,12 +323,12 @@ export declare type ProcessMessage = (WorkerMessage & {
|
|
339
323
|
}) | (ShutdownMessage & {
|
340
324
|
scope: 'shutdown';
|
341
325
|
});
|
342
|
-
export
|
343
|
-
export
|
344
|
-
export
|
345
|
-
export
|
346
|
-
export
|
347
|
-
export
|
326
|
+
export type WorkerHandler = (message: WorkerMessage) => void;
|
327
|
+
export type StoriesHandler = (message: StoriesMessage) => void;
|
328
|
+
export type TestHandler = (message: TestMessage) => void;
|
329
|
+
export type WebpackHandler = (message: WebpackMessage) => void;
|
330
|
+
export type DockerHandler = (message: DockerMessage) => void;
|
331
|
+
export type ShutdownHandler = (message: ShutdownMessage) => void;
|
348
332
|
export interface Worker extends ClusterWorker {
|
349
333
|
isRunning?: boolean;
|
350
334
|
}
|
@@ -354,18 +338,14 @@ export interface Images {
|
|
354
338
|
diff?: string;
|
355
339
|
error?: string;
|
356
340
|
}
|
357
|
-
export
|
341
|
+
export type TestStatus = 'unknown' | 'pending' | 'running' | 'failed' | 'success' | 'retrying';
|
358
342
|
export interface TestResult {
|
359
343
|
status: 'failed' | 'success';
|
360
|
-
images?: Partial<
|
361
|
-
[name: string]: Images;
|
362
|
-
}>;
|
344
|
+
images?: Partial<Record<string, Images>>;
|
363
345
|
error?: string;
|
364
346
|
}
|
365
347
|
export interface ImagesError extends Error {
|
366
|
-
images: string | Partial<
|
367
|
-
[name: string]: string;
|
368
|
-
}>;
|
348
|
+
images: string | Partial<Record<string, string>>;
|
369
349
|
}
|
370
350
|
export interface TestMeta {
|
371
351
|
id: string;
|
@@ -379,9 +359,7 @@ export interface TestData extends TestMeta {
|
|
379
359
|
retries?: number;
|
380
360
|
status?: TestStatus;
|
381
361
|
results?: TestResult[];
|
382
|
-
approved?: Partial<
|
383
|
-
[image: string]: number;
|
384
|
-
}>;
|
362
|
+
approved?: Partial<Record<string, number>>;
|
385
363
|
}
|
386
364
|
export interface ServerTest extends TestData {
|
387
365
|
story: StoryInput;
|
@@ -389,35 +367,31 @@ export interface ServerTest extends TestData {
|
|
389
367
|
}
|
390
368
|
export interface CreeveyStatus {
|
391
369
|
isRunning: boolean;
|
392
|
-
tests: Partial<
|
393
|
-
[id: string]: TestData;
|
394
|
-
}>;
|
370
|
+
tests: Partial<Record<string, TestData>>;
|
395
371
|
browsers: string[];
|
396
372
|
}
|
397
373
|
export interface CreeveyUpdate {
|
398
374
|
isRunning?: boolean;
|
399
|
-
tests?: Partial<
|
400
|
-
[id: string]: TestData;
|
401
|
-
}>;
|
375
|
+
tests?: Partial<Record<string, TestData>>;
|
402
376
|
removedTests?: TestMeta[];
|
403
377
|
}
|
404
378
|
export interface SkipOption {
|
405
|
-
reason?: string;
|
406
379
|
in?: string | string[] | RegExp;
|
407
380
|
kinds?: string | string[] | RegExp;
|
408
381
|
stories?: string | string[] | RegExp;
|
409
382
|
tests?: string | string[] | RegExp;
|
410
383
|
}
|
411
|
-
export
|
412
|
-
export
|
384
|
+
export type SkipOptions = boolean | string | Record<string, SkipOption | SkipOption[]>;
|
385
|
+
export interface CreeveyTestController {
|
413
386
|
browser: WebDriver;
|
414
387
|
until: typeof until;
|
415
388
|
keys: IKey;
|
416
|
-
expect:
|
389
|
+
expect: typeof expect;
|
417
390
|
takeScreenshot: () => Promise<string>;
|
418
|
-
updateStoryArgs:
|
391
|
+
updateStoryArgs: (updatedArgs: Record<string, unknown>) => Promise<void>;
|
419
392
|
readonly captureElement?: WebElementPromise;
|
420
|
-
}
|
393
|
+
}
|
394
|
+
export type CreeveyTestFunction = (this: CreeveyTestController) => Promise<void>;
|
421
395
|
export interface CaptureOptions {
|
422
396
|
imageName?: string;
|
423
397
|
captureElement?: string | null;
|
@@ -430,16 +404,14 @@ export interface CreeveyStoryParams extends CaptureOptions {
|
|
430
404
|
ms: number;
|
431
405
|
};
|
432
406
|
skip?: SkipOptions;
|
433
|
-
tests?:
|
434
|
-
[name: string]: CreeveyTestFunction;
|
435
|
-
};
|
407
|
+
tests?: Record<string, CreeveyTestFunction>;
|
436
408
|
}
|
437
409
|
export interface ApprovePayload {
|
438
410
|
id: string;
|
439
411
|
retry: number;
|
440
412
|
image: string;
|
441
413
|
}
|
442
|
-
export
|
414
|
+
export type Request = {
|
443
415
|
type: 'status';
|
444
416
|
} | {
|
445
417
|
type: 'start';
|
@@ -450,7 +422,7 @@ export declare type Request = {
|
|
450
422
|
type: 'approve';
|
451
423
|
payload: ApprovePayload;
|
452
424
|
};
|
453
|
-
export
|
425
|
+
export type Response = {
|
454
426
|
type: 'status';
|
455
427
|
payload: CreeveyStatus;
|
456
428
|
} | {
|
@@ -469,14 +441,12 @@ export interface CreeveySuite {
|
|
469
441
|
opened: boolean;
|
470
442
|
checked: boolean;
|
471
443
|
indeterminate: boolean;
|
472
|
-
children: Partial<
|
473
|
-
[title: string]: CreeveySuite | CreeveyTest;
|
474
|
-
}>;
|
444
|
+
children: Partial<Record<string, CreeveySuite | CreeveyTest>>;
|
475
445
|
}
|
476
|
-
export
|
446
|
+
export type ImagesViewMode = 'side-by-side' | 'swap' | 'slide' | 'blend';
|
477
447
|
export declare function noop(): void;
|
478
448
|
export declare function isDefined<T>(value: T | null | undefined): value is T;
|
479
|
-
export declare function isTest
|
449
|
+
export declare function isTest(x?: CreeveySuite | CreeveyTest): x is CreeveyTest;
|
480
450
|
export declare function isObject(x: unknown): x is Record<string, unknown>;
|
481
451
|
export declare function isString(x: unknown): x is string;
|
482
452
|
export declare function isFunction(x: unknown): x is (...args: any[]) => any;
|
package/dist/types.js
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.noop = noop;
|
4
|
+
exports.isDefined = isDefined;
|
5
|
+
exports.isTest = isTest;
|
6
|
+
exports.isObject = isObject;
|
7
|
+
exports.isString = isString;
|
8
|
+
exports.isFunction = isFunction;
|
9
|
+
exports.isImageError = isImageError;
|
10
|
+
exports.isProcessMessage = isProcessMessage;
|
11
|
+
exports.isWorkerMessage = isWorkerMessage;
|
12
|
+
exports.isStoriesMessage = isStoriesMessage;
|
13
|
+
exports.isTestMessage = isTestMessage;
|
14
|
+
exports.isWebpackMessage = isWebpackMessage;
|
15
|
+
exports.isDockerMessage = isDockerMessage;
|
16
|
+
function noop() {
|
17
|
+
/* noop */
|
18
|
+
}
|
19
|
+
function isDefined(value) {
|
20
|
+
return value !== null && value !== undefined;
|
21
|
+
}
|
22
|
+
function isTest(x) {
|
23
|
+
return (isDefined(x) &&
|
24
|
+
isObject(x) &&
|
25
|
+
'id' in x &&
|
26
|
+
'storyId' in x &&
|
27
|
+
typeof x.id == 'string' &&
|
28
|
+
typeof x.storyId == 'string');
|
29
|
+
}
|
30
|
+
function isObject(x) {
|
31
|
+
return typeof x == 'object' && x != null;
|
32
|
+
}
|
33
|
+
function isString(x) {
|
34
|
+
return typeof x == 'string';
|
35
|
+
}
|
36
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
37
|
+
function isFunction(x) {
|
38
|
+
return typeof x == 'function';
|
39
|
+
}
|
40
|
+
function isImageError(error) {
|
41
|
+
return error instanceof Error && 'images' in error;
|
42
|
+
}
|
43
|
+
function isProcessMessage(message) {
|
44
|
+
return isObject(message) && 'scope' in message;
|
45
|
+
}
|
46
|
+
function isWorkerMessage(message) {
|
47
|
+
return isProcessMessage(message) && message.scope == 'worker';
|
48
|
+
}
|
49
|
+
function isStoriesMessage(message) {
|
50
|
+
return isProcessMessage(message) && message.scope == 'stories';
|
51
|
+
}
|
52
|
+
function isTestMessage(message) {
|
53
|
+
return isProcessMessage(message) && message.scope == 'test';
|
54
|
+
}
|
55
|
+
function isWebpackMessage(message) {
|
56
|
+
return isProcessMessage(message) && message.scope == 'webpack';
|
57
|
+
}
|
58
|
+
function isDockerMessage(message) {
|
59
|
+
return isProcessMessage(message) && message.scope == 'docker';
|
60
|
+
}
|
61
|
+
//# sourceMappingURL=types.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;AAybA,oBAEC;AAED,8BAEC;AAED,wBASC;AAED,4BAEC;AAED,4BAEC;AAGD,gCAEC;AAED,oCAEC;AAED,4CAEC;AAED,0CAEC;AAED,4CAEC;AAED,sCAEC;AAED,4CAEC;AAED,0CAEC;AA1DD,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,KAAK,IAAI,QAAQ,IAAI,KAAK,CAAC;AACrD,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;AAED,SAAgB,gBAAgB,CAAC,OAAgB;IAC/C,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC;AACjE,CAAC;AAED,SAAgB,eAAe,CAAC,OAAgB;IAC9C,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC;AAChE,CAAC"}
|
package/docs/config.md
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
### Creevey config
|
14
14
|
|
15
|
-
In default configuration Creevey take screenshots of `#root` element only for chrome browser in one concurrent instance, to run tests in different browsers or speedup tests and run in parallel, you need to define config file `.creevey/config.js`
|
15
|
+
In default configuration Creevey take screenshots of `#storybook-root` element only for chrome browser in one concurrent instance, to run tests in different browsers or speedup tests and run in parallel, you need to define config file `.creevey/config.js`
|
16
16
|
|
17
17
|
```ts
|
18
18
|
module.exports = {
|
@@ -47,9 +47,6 @@ module.exports = {
|
|
47
47
|
// Default Storybook url
|
48
48
|
storybookUrl: 'http://localhost:6006',
|
49
49
|
|
50
|
-
// Storybook config directory
|
51
|
-
storybookDir: path.join(__dirname, '.storybook'),
|
52
|
-
|
53
50
|
// Where original images are stored
|
54
51
|
screenDir: path.join(__dirname, '../images'),
|
55
52
|
|
@@ -120,7 +117,7 @@ export const parameters = {
|
|
120
117
|
creevey: {
|
121
118
|
// Skip all *hover tests in IE11 on the global level
|
122
119
|
skip: {
|
123
|
-
ie11: { in: 'ie11', tests: /.*hover$/ },
|
120
|
+
"hovers don't work in ie11": { in: 'ie11', tests: /.*hover$/ },
|
124
121
|
},
|
125
122
|
},
|
126
123
|
};
|
@@ -137,15 +134,14 @@ export default {
|
|
137
134
|
parameters: {
|
138
135
|
creevey: {
|
139
136
|
// You could skip some browsers/stories or even specific tests
|
140
|
-
skip:
|
141
|
-
|
142
|
-
{ in: 'firefox', stories: 'Loading'
|
143
|
-
{
|
137
|
+
skip: {
|
138
|
+
"`MyComponent` doesn't support ie11": { in: 'ie11' },
|
139
|
+
"Loading stories are flaky in firefox": { in: 'firefox', stories: 'Loading' },
|
140
|
+
"`MyComponent` hovering doesn't work correctly": {
|
144
141
|
in: ['firefox', 'chrome'],
|
145
142
|
tests: /.*hover$/,
|
146
|
-
reason: "For some reason `MyComponent` hovering doesn't work correctly",
|
147
143
|
},
|
148
|
-
|
144
|
+
},
|
149
145
|
},
|
150
146
|
},
|
151
147
|
} as Meta & CreeveyMeta;
|
@@ -169,43 +165,47 @@ Basic.parameters = {
|
|
169
165
|
|
170
166
|
```ts
|
171
167
|
interface SkipOption {
|
172
|
-
reason?: string;
|
173
168
|
in?: string | string[] | RegExp;
|
174
169
|
kinds?: string | string[] | RegExp;
|
175
170
|
stories?: string | string[] | RegExp;
|
176
171
|
tests?: string | string[] | RegExp;
|
177
172
|
}
|
178
173
|
|
179
|
-
type SkipOptions =
|
174
|
+
type SkipOptions = boolean | string | Record<string, SkipOption | SkipOption[]>;
|
180
175
|
```
|
181
176
|
|
182
177
|
- Skip all stories for all browsers:
|
183
178
|
- `skip: true`
|
184
179
|
- `skip: 'Skip reason message'`
|
185
|
-
- `skip: {
|
180
|
+
- `skip: { 'Skip reason message': true }`
|
186
181
|
- Skip all stories for specific browsers:
|
187
|
-
- `skip: { in: 'ie11' }`
|
188
|
-
- `skip: { in: ['ie11', 'chrome'] }`
|
189
|
-
- `skip: { in: /^fire.*/ }`
|
182
|
+
- `skip: { 'Skip reason message': { in: 'ie11' } }`
|
183
|
+
- `skip: { 'Skip reason message': { in: ['ie11', 'chrome'] } }`
|
184
|
+
- `skip: { 'Skip reason message': { in: /^fire.*/ } }`
|
190
185
|
- Skip all stories in specific kinds:
|
191
|
-
- `skip: { kinds: 'Button' }`
|
192
|
-
- `skip: { kinds: ['Button', 'Input'] }`
|
193
|
-
- `skip: { kinds: /.*Modal$/ }`
|
186
|
+
- `skip: { 'Skip reason message': { kinds: 'Button' } }`
|
187
|
+
- `skip: { 'Skip reason message': { kinds: ['Button', 'Input'] } }`
|
188
|
+
- `skip: { 'Skip reason message': { kinds: /.*Modal$/ } }`
|
194
189
|
- Skip all tests in specific stories:
|
195
|
-
- `skip: { stories: 'simple' }`
|
196
|
-
- `skip: { stories: ['simple', 'special'] }`
|
197
|
-
- `skip: { stories: /.*large$/ }`
|
190
|
+
- `skip: { 'Skip reason message': { stories: 'simple' } }`
|
191
|
+
- `skip: { 'Skip reason message': { stories: ['simple', 'special'] } }`
|
192
|
+
- `skip: { 'Skip reason message': { stories: /.*large$/ } }`
|
198
193
|
- Skip specific tests:
|
199
|
-
- `skip: { tests: 'click' }`
|
200
|
-
- `skip: { tests: ['hover', 'click'] }`
|
201
|
-
- `skip: { tests: /^press.*$/ }`
|
194
|
+
- `skip: { 'Skip reason message': { tests: 'click' } }`
|
195
|
+
- `skip: { 'Skip reason message': { tests: ['hover', 'click'] } }`
|
196
|
+
- `skip: { 'Skip reason message': { tests: /^press.*$/ } }`
|
202
197
|
- Multiple skip options:
|
203
|
-
-
|
204
|
-
|
198
|
+
- for one reason
|
199
|
+
```
|
200
|
+
skip: {
|
201
|
+
"reason": [{ /* ... */ }, { /* ... */ }],
|
202
|
+
}
|
203
|
+
```
|
204
|
+
- for several reasons
|
205
205
|
```
|
206
206
|
skip: {
|
207
|
-
|
208
|
-
|
207
|
+
"reason 1": { /* ... */ },
|
208
|
+
"reason 2": { /* ... */ },
|
209
209
|
}
|
210
210
|
```
|
211
211
|
|
package/docs/tests.md
CHANGED
@@ -13,7 +13,7 @@ export default { title: 'MyComponent' };
|
|
13
13
|
export const Basic: Story & CreeveyStory = () => <MyComponent />;
|
14
14
|
Basic.parameters = {
|
15
15
|
creevey: {
|
16
|
-
captureElement: '#root',
|
16
|
+
captureElement: '#storybook-root',
|
17
17
|
tests: {
|
18
18
|
async click() {
|
19
19
|
await this.browser.actions().click(this.captureElement).perform();
|
@@ -25,7 +25,7 @@ Basic.parameters = {
|
|
25
25
|
};
|
26
26
|
```
|
27
27
|
|
28
|
-
NOTE: Here you define story parameters with simple test `click`. Where you setup capturing element `#root` then click on that element and taking screenshot to assert it. `this.browser` allow you to access to native selenium webdriver instance you could check [API here](https://www.selenium.dev/selenium/docs/api/javascript/module/selenium-webdriver/index_exports_WebDriver.html).
|
28
|
+
NOTE: Here you define story parameters with simple test `click`. Where you setup capturing element `#storybook-root` then click on that element and taking screenshot to assert it. `this.browser` allow you to access to native selenium webdriver instance you could check [API here](https://www.selenium.dev/selenium/docs/api/javascript/module/selenium-webdriver/index_exports_WebDriver.html).
|
29
29
|
|
30
30
|
You also could write more powerful tests with asserting multiple screenshots
|
31
31
|
|
@@ -40,7 +40,7 @@ export const Basic: CSFStory<JSX.Element> = () => <MyForm />;
|
|
40
40
|
Basic.story = {
|
41
41
|
parameters: {
|
42
42
|
creevey: {
|
43
|
-
captureElement: '#root',
|
43
|
+
captureElement: '#storybook-root',
|
44
44
|
delay: 1000,
|
45
45
|
tests: {
|
46
46
|
async submit() {
|
@@ -0,0 +1,62 @@
|
|
1
|
+
import globals from 'globals';
|
2
|
+
import js from '@eslint/js';
|
3
|
+
import tseslint from 'typescript-eslint';
|
4
|
+
// @ts-expect-error There is no types in this package
|
5
|
+
import react from 'eslint-plugin-react';
|
6
|
+
import prettierRecommended from 'eslint-plugin-prettier/recommended';
|
7
|
+
|
8
|
+
// TODO Add import plugin after it migrated to eslint 9.x
|
9
|
+
const config = tseslint.config(
|
10
|
+
{ ignores: ['dist/*', 'report/*', 'scripts/*'] },
|
11
|
+
js.configs.recommended,
|
12
|
+
prettierRecommended,
|
13
|
+
/* eslint-disable-next-line */
|
14
|
+
react.configs.flat.recommended,
|
15
|
+
...tseslint.configs.strictTypeChecked,
|
16
|
+
...tseslint.configs.stylisticTypeChecked,
|
17
|
+
{
|
18
|
+
languageOptions: {
|
19
|
+
globals: {
|
20
|
+
...globals.browser,
|
21
|
+
...globals.node,
|
22
|
+
},
|
23
|
+
|
24
|
+
ecmaVersion: 2021,
|
25
|
+
sourceType: 'module',
|
26
|
+
|
27
|
+
parserOptions: {
|
28
|
+
projectService: {
|
29
|
+
allowDefaultProject: ['*.{m,}js'],
|
30
|
+
defaultProject: 'tsconfig.json',
|
31
|
+
},
|
32
|
+
},
|
33
|
+
},
|
34
|
+
settings: {
|
35
|
+
react: {
|
36
|
+
version: 'detect',
|
37
|
+
},
|
38
|
+
},
|
39
|
+
rules: {
|
40
|
+
'react/prop-types': 'off',
|
41
|
+
'@typescript-eslint/restrict-template-expressions': [
|
42
|
+
'error',
|
43
|
+
{
|
44
|
+
allowNumber: true,
|
45
|
+
},
|
46
|
+
],
|
47
|
+
'@typescript-eslint/no-unused-vars': [
|
48
|
+
'error',
|
49
|
+
{
|
50
|
+
args: 'all',
|
51
|
+
argsIgnorePattern: '^_',
|
52
|
+
caughtErrors: 'all',
|
53
|
+
caughtErrorsIgnorePattern: '^_',
|
54
|
+
destructuredArrayIgnorePattern: '^_',
|
55
|
+
varsIgnorePattern: '^_',
|
56
|
+
},
|
57
|
+
],
|
58
|
+
},
|
59
|
+
},
|
60
|
+
);
|
61
|
+
|
62
|
+
export default config;
|
@@ -0,0 +1,3 @@
|
|
1
|
+
This is a fallback for package.json's `exports.addon` field. It's required for outdated environments (like node 11 and typescript with the "node" moduleResolution) to resolve imports from `creevey/addon` properly.
|
2
|
+
|
3
|
+
See https://github.com/andrewbranch/example-subpath-exports-ts-compat. The fallback uses the "package-json-redirects" startegy.
|