creevey 0.9.2 → 0.10.0-beta.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/chromatic.config.json +5 -0
- package/dist/client/addon/components/Addon.d.ts +1 -0
- package/dist/client/addon/components/Addon.js.map +1 -1
- package/dist/client/addon/components/Icons.d.ts +1 -0
- package/dist/client/addon/components/Icons.js.map +1 -1
- package/dist/client/addon/components/Panel.d.ts +1 -0
- package/dist/client/addon/components/Panel.js.map +1 -1
- package/dist/client/addon/components/TestSelect.d.ts +1 -0
- package/dist/client/addon/components/TestSelect.js +4 -3
- package/dist/client/addon/components/TestSelect.js.map +1 -1
- package/dist/client/addon/components/Tools.d.ts +1 -0
- package/dist/client/addon/components/Tools.js +7 -8
- 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.map +1 -1
- package/dist/client/addon/decorator.d.ts +1 -1
- package/dist/client/addon/manager.js +3 -2
- package/dist/client/addon/manager.js.map +1 -1
- package/dist/client/addon/preview.d.ts +1 -1
- package/dist/client/addon/withCreevey.d.ts +6 -8
- package/dist/client/addon/withCreevey.js +21 -19
- package/dist/client/addon/withCreevey.js.map +1 -1
- package/dist/client/shared/components/ImagesView/BlendView.d.ts +1 -1
- package/dist/client/shared/components/ImagesView/BlendView.js.map +1 -1
- package/dist/client/shared/components/ImagesView/ImagesView.d.ts +1 -0
- package/dist/client/shared/components/ImagesView/ImagesView.js.map +1 -1
- package/dist/client/shared/components/ImagesView/SideBySideView.d.ts +1 -1
- package/dist/client/shared/components/ImagesView/SideBySideView.js.map +1 -1
- package/dist/client/shared/components/ImagesView/SlideView.d.ts +1 -1
- package/dist/client/shared/components/ImagesView/SlideView.js.map +1 -1
- package/dist/client/shared/components/ImagesView/SwapView.d.ts +1 -1
- package/dist/client/shared/components/ImagesView/SwapView.js.map +1 -1
- package/dist/client/shared/components/PageFooter/PageFooter.d.ts +1 -0
- 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.d.ts +2 -2
- package/dist/client/shared/components/PageFooter/Paging.js +8 -6
- package/dist/client/shared/components/PageFooter/Paging.js.map +1 -1
- package/dist/client/shared/components/PageHeader/ImagePreview.js.map +1 -1
- package/dist/client/shared/components/PageHeader/PageHeader.d.ts +1 -0
- package/dist/client/shared/components/PageHeader/PageHeader.js +2 -1
- 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.map +1 -1
- package/dist/client/web/CreeveyApp.d.ts +1 -0
- package/dist/client/web/CreeveyApp.js.map +1 -1
- package/dist/client/web/CreeveyLoader.d.ts +1 -0
- package/dist/client/web/CreeveyLoader.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/Checkbox.d.ts +1 -1
- package/dist/client/web/CreeveyView/SideBar/Checkbox.js +4 -4
- package/dist/client/web/CreeveyView/SideBar/Checkbox.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/Search.d.ts +1 -0
- package/dist/client/web/CreeveyView/SideBar/Search.js +4 -4
- package/dist/client/web/CreeveyView/SideBar/Search.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/SideBar.d.ts +1 -1
- package/dist/client/web/CreeveyView/SideBar/SideBar.js +1 -7
- package/dist/client/web/CreeveyView/SideBar/SideBar.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/SideBarFooter.d.ts +1 -0
- package/dist/client/web/CreeveyView/SideBar/SideBarFooter.js +5 -4
- package/dist/client/web/CreeveyView/SideBar/SideBarFooter.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/SideBarHeader.d.ts +1 -0
- package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js +4 -3
- package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/SuiteLink.d.ts +3 -7
- package/dist/client/web/CreeveyView/SideBar/SuiteLink.js +6 -5
- package/dist/client/web/CreeveyView/SideBar/SuiteLink.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/TestLink.d.ts +1 -0
- package/dist/client/web/CreeveyView/SideBar/TestLink.js +5 -1
- package/dist/client/web/CreeveyView/SideBar/TestLink.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.js +15 -8
- package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/TestsStatus.js +5 -4
- package/dist/client/web/CreeveyView/SideBar/TestsStatus.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/Toggle.d.ts +1 -0
- package/dist/client/web/CreeveyView/SideBar/Toggle.js.map +1 -1
- package/dist/client/web/KeyboardEventsContext.d.ts +3 -4
- package/dist/client/web/KeyboardEventsContext.js.map +1 -1
- package/dist/client/web/assets/index-DkmZfG9C.js +591 -0
- package/dist/client/web/index.html +1 -1
- package/dist/client/web/index.js +5 -6
- package/dist/client/web/index.js.map +1 -1
- package/dist/creevey.js +21 -9
- package/dist/creevey.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/playwright.d.ts +2 -0
- package/dist/playwright.js +6 -0
- package/dist/playwright.js.map +1 -0
- package/dist/selenium.d.ts +2 -0
- package/dist/selenium.js +6 -0
- package/dist/selenium.js.map +1 -0
- package/dist/server/config.d.ts +1 -1
- package/dist/server/config.js +16 -6
- package/dist/server/config.js.map +1 -1
- package/dist/server/docker.d.ts +2 -2
- package/dist/server/docker.js +46 -40
- package/dist/server/docker.js.map +1 -1
- package/dist/server/index.js +64 -15
- package/dist/server/index.js.map +1 -1
- package/dist/server/master/master.d.ts +1 -5
- package/dist/server/master/master.js +3 -3
- package/dist/server/master/master.js.map +1 -1
- package/dist/server/master/pool.d.ts +2 -1
- package/dist/server/master/pool.js +9 -5
- package/dist/server/master/pool.js.map +1 -1
- package/dist/server/master/runner.d.ts +1 -1
- package/dist/server/master/runner.js +2 -2
- package/dist/server/master/runner.js.map +1 -1
- package/dist/server/master/server.js +1 -0
- package/dist/server/master/server.js.map +1 -1
- package/dist/server/master/start.d.ts +3 -0
- package/dist/server/master/{index.js → start.js} +6 -9
- package/dist/server/master/start.js.map +1 -0
- package/dist/server/messages.d.ts +4 -10
- package/dist/server/messages.js +4 -58
- package/dist/server/messages.js.map +1 -1
- package/dist/server/playwright/docker-file.d.ts +1 -0
- package/dist/server/playwright/docker-file.js +27 -0
- package/dist/server/playwright/docker-file.js.map +1 -0
- package/dist/server/playwright/docker.d.ts +1 -0
- package/dist/server/playwright/docker.js +26 -0
- package/dist/server/playwright/docker.js.map +1 -0
- package/dist/server/playwright/internal.d.ts +25 -0
- package/dist/server/playwright/internal.js +319 -0
- package/dist/server/playwright/internal.js.map +1 -0
- package/dist/server/playwright/webdriver.d.ts +17 -0
- package/dist/server/playwright/webdriver.js +108 -0
- package/dist/server/playwright/webdriver.js.map +1 -0
- package/dist/server/providers/browser.d.ts +2 -0
- package/dist/server/{storybook/providers → providers}/browser.js +6 -7
- package/dist/server/providers/browser.js.map +1 -0
- package/dist/server/providers/hybrid.d.ts +2 -0
- package/dist/server/{storybook/providers → providers}/hybrid.js +8 -8
- package/dist/server/providers/hybrid.js.map +1 -0
- package/dist/server/reporter.d.ts +26 -0
- package/dist/server/{worker/reporter.js → reporter.js} +34 -56
- package/dist/server/reporter.js.map +1 -0
- package/dist/server/selenium/internal.d.ts +32 -0
- package/dist/server/selenium/internal.js +617 -0
- package/dist/server/selenium/internal.js.map +1 -0
- package/dist/server/selenium/selenoid.js +6 -13
- package/dist/server/selenium/selenoid.js.map +1 -1
- package/dist/server/selenium/webdriver.d.ts +25 -0
- package/dist/server/selenium/webdriver.js +113 -0
- package/dist/server/selenium/webdriver.js.map +1 -0
- package/dist/server/stories.js +16 -9
- package/dist/server/stories.js.map +1 -1
- package/dist/server/telemetry.d.ts +1 -1
- package/dist/server/telemetry.js +4 -4
- package/dist/server/telemetry.js.map +1 -1
- package/dist/server/utils.d.ts +3 -4
- package/dist/server/utils.js +10 -9
- package/dist/server/utils.js.map +1 -1
- package/dist/server/webdriver.d.ts +20 -0
- package/dist/server/webdriver.js +79 -0
- package/dist/server/webdriver.js.map +1 -0
- package/dist/server/worker/chai-image.d.ts +2 -5
- package/dist/server/worker/chai-image.js +14 -102
- package/dist/server/worker/chai-image.js.map +1 -1
- package/dist/server/worker/match-image.d.ts +14 -0
- package/dist/server/worker/match-image.js +231 -0
- package/dist/server/worker/match-image.js.map +1 -0
- package/dist/server/worker/start.d.ts +2 -0
- package/dist/server/worker/start.js +236 -0
- package/dist/server/worker/start.js.map +1 -0
- package/dist/types.d.ts +119 -65
- package/dist/types.js +15 -9
- package/dist/types.js.map +1 -1
- package/package.json +123 -112
- package/playwright.d.ts +2 -0
- package/selenium.d.ts +2 -0
- package/src/client/addon/components/Addon.tsx +1 -1
- package/src/client/addon/components/Icons.tsx +1 -1
- package/src/client/addon/components/Panel.tsx +1 -1
- package/src/client/addon/components/TestSelect.tsx +5 -5
- package/src/client/addon/components/Tools.tsx +9 -9
- package/src/client/addon/controller.ts +1 -1
- package/src/client/addon/manager.ts +4 -4
- package/src/client/addon/withCreevey.ts +26 -28
- package/src/client/shared/components/ImagesView/BlendView.tsx +1 -1
- package/src/client/shared/components/ImagesView/ImagesView.tsx +2 -2
- package/src/client/shared/components/ImagesView/SideBySideView.tsx +1 -1
- package/src/client/shared/components/ImagesView/SlideView.tsx +1 -1
- package/src/client/shared/components/ImagesView/SwapView.tsx +1 -1
- package/src/client/shared/components/PageFooter/PageFooter.tsx +2 -2
- package/src/client/shared/components/PageFooter/Paging.tsx +13 -13
- package/src/client/shared/components/PageHeader/ImagePreview.tsx +1 -1
- package/src/client/shared/components/PageHeader/PageHeader.tsx +4 -3
- package/src/client/shared/components/ResultsPage.tsx +1 -1
- package/src/client/web/CreeveyApp.tsx +1 -1
- package/src/client/web/CreeveyLoader.tsx +1 -1
- package/src/client/web/CreeveyView/SideBar/Checkbox.tsx +6 -7
- package/src/client/web/CreeveyView/SideBar/Search.tsx +4 -4
- package/src/client/web/CreeveyView/SideBar/SideBar.tsx +3 -10
- package/src/client/web/CreeveyView/SideBar/SideBarFooter.tsx +7 -6
- package/src/client/web/CreeveyView/SideBar/SideBarHeader.tsx +7 -6
- package/src/client/web/CreeveyView/SideBar/SuiteLink.tsx +8 -6
- package/src/client/web/CreeveyView/SideBar/TestLink.tsx +8 -3
- package/src/client/web/CreeveyView/SideBar/TestStatusIcon.tsx +18 -10
- package/src/client/web/CreeveyView/SideBar/TestsStatus.tsx +7 -10
- package/src/client/web/CreeveyView/SideBar/Toggle.tsx +1 -2
- package/src/client/web/KeyboardEventsContext.tsx +3 -4
- package/src/client/web/index.html +1 -1
- package/src/client/web/index.tsx +4 -3
- package/src/creevey.ts +25 -8
- package/src/index.ts +2 -2
- package/src/playwright.ts +1 -0
- package/src/selenium.ts +1 -0
- package/src/server/config.ts +25 -10
- package/src/server/docker.ts +58 -44
- package/src/server/index.ts +75 -18
- package/src/server/master/master.ts +3 -6
- package/src/server/master/pool.ts +20 -7
- package/src/server/master/runner.ts +2 -2
- package/src/server/master/server.ts +1 -0
- package/src/server/master/{index.ts → start.ts} +13 -11
- package/src/server/messages.ts +11 -75
- package/src/server/playwright/docker-file.ts +22 -0
- package/src/server/playwright/docker.ts +31 -0
- package/src/server/playwright/internal.ts +387 -0
- package/src/server/playwright/webdriver.ts +131 -0
- package/src/server/{storybook/providers → providers}/browser.ts +7 -8
- package/src/server/{storybook/providers → providers}/hybrid.ts +19 -19
- package/src/server/{worker/reporter.ts → reporter.ts} +40 -72
- package/src/server/selenium/internal.ts +812 -0
- package/src/server/selenium/selenoid.ts +12 -17
- package/src/server/selenium/webdriver.ts +146 -0
- package/src/server/stories.ts +18 -11
- package/src/server/telemetry.ts +2 -2
- package/src/server/utils.ts +9 -9
- package/src/server/webdriver.ts +130 -0
- package/src/server/worker/chai-image.ts +21 -133
- package/src/server/worker/match-image.ts +303 -0
- package/src/server/worker/start.ts +275 -0
- package/src/types.ts +155 -61
- package/types/playwright-context.d.ts +7 -0
- package/types/selenium-context.d.ts +7 -0
- package/dist/client/web/202.js +0 -1
- package/dist/client/web/270.js +0 -43
- package/dist/client/web/752.js +0 -1
- package/dist/client/web/main.js +0 -79
- package/dist/client/web/main.js.LICENSE.txt +0 -34
- package/dist/server/master/index.d.ts +0 -3
- package/dist/server/master/index.js.map +0 -1
- package/dist/server/selenium/browser.d.ts +0 -19
- package/dist/server/selenium/browser.js +0 -640
- package/dist/server/selenium/browser.js.map +0 -1
- package/dist/server/selenium/index.d.ts +0 -2
- package/dist/server/selenium/index.js +0 -19
- package/dist/server/selenium/index.js.map +0 -1
- package/dist/server/storybook/providers/browser.d.ts +0 -2
- package/dist/server/storybook/providers/browser.js.map +0 -1
- package/dist/server/storybook/providers/hybrid.d.ts +0 -2
- package/dist/server/storybook/providers/hybrid.js.map +0 -1
- package/dist/server/worker/helpers.d.ts +0 -8
- package/dist/server/worker/helpers.js +0 -57
- package/dist/server/worker/helpers.js.map +0 -1
- package/dist/server/worker/index.d.ts +0 -1
- package/dist/server/worker/index.js +0 -6
- package/dist/server/worker/index.js.map +0 -1
- package/dist/server/worker/reporter.d.ts +0 -8
- package/dist/server/worker/reporter.js.map +0 -1
- package/dist/server/worker/worker.d.ts +0 -4
- package/dist/server/worker/worker.js +0 -217
- package/dist/server/worker/worker.js.map +0 -1
- package/src/server/selenium/browser.ts +0 -840
- package/src/server/selenium/index.ts +0 -2
- package/src/server/worker/helpers.ts +0 -61
- package/src/server/worker/index.ts +0 -1
- package/src/server/worker/worker.ts +0 -245
- package/types/mocha.d.ts +0 -20
package/src/types.ts
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
import type { StoryContextForEnhancers, DecoratorFunction } from '@storybook/csf';
|
2
|
-
import type { IKey } from 'selenium-webdriver/lib/input.js';
|
3
2
|
import type { Worker as ClusterWorker } from 'cluster';
|
4
|
-
import type { until, WebDriver, WebElementPromise } from 'selenium-webdriver';
|
5
3
|
import type Pixelmatch from 'pixelmatch';
|
6
|
-
import type {
|
4
|
+
import type { ODiffOptions } from 'odiff-bin';
|
7
5
|
import type { expect } from 'chai';
|
6
|
+
import type EventEmitter from 'events';
|
7
|
+
import type Logger from 'loglevel';
|
8
|
+
// import type { Browser } from 'playwright-core';
|
8
9
|
|
9
10
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
10
11
|
export type DiffOptions = typeof Pixelmatch extends (
|
@@ -80,19 +81,30 @@ export interface CreeveyStory {
|
|
80
81
|
};
|
81
82
|
}
|
82
83
|
|
83
|
-
|
84
|
+
// TODO Rework browser config
|
85
|
+
/*
|
86
|
+
export class ChromeConfig {
|
87
|
+
browserName: 'chrome'
|
88
|
+
|
89
|
+
constructor({ limit, version, ... })
|
90
|
+
}
|
91
|
+
*/
|
92
|
+
export interface BrowserConfigObject {
|
84
93
|
browserName: string;
|
94
|
+
/**
|
95
|
+
* Browser version. Ignored with Playwright webdriver
|
96
|
+
*/
|
85
97
|
browserVersion?: string;
|
86
|
-
platformName?: string;
|
87
98
|
/**
|
88
|
-
*
|
99
|
+
* Operation system name. Ignored with Playwright webdriver
|
89
100
|
*/
|
90
|
-
|
91
|
-
|
92
|
-
}
|
93
|
-
|
94
|
-
export type BrowserConfig = Capabilities & {
|
101
|
+
platformName?: string;
|
102
|
+
// customizeBuilder?: (builder: Builder) => Builder;
|
95
103
|
limit?: number;
|
104
|
+
/**
|
105
|
+
* Selenium grid url
|
106
|
+
* @default config.gridUrl
|
107
|
+
*/
|
96
108
|
gridUrl?: string;
|
97
109
|
storybookUrl?: string;
|
98
110
|
/**
|
@@ -102,7 +114,7 @@ export type BrowserConfig = Capabilities & {
|
|
102
114
|
_storybookGlobals?: StorybookGlobals;
|
103
115
|
/**
|
104
116
|
* Specify custom docker image. Used only with `useDocker == true`
|
105
|
-
* @default `selenoid/${browserName}:${browserVersion ?? 'latest'}`
|
117
|
+
* @default `selenoid/${browserName}:${browserVersion ?? 'latest'}` or `mcr.microsoft.com/playwright:${playwrightVersion}`
|
106
118
|
*/
|
107
119
|
dockerImage?: string;
|
108
120
|
/**
|
@@ -110,12 +122,36 @@ export type BrowserConfig = Capabilities & {
|
|
110
122
|
* Used only with `useDocker == false`
|
111
123
|
*/
|
112
124
|
webdriverCommand?: string[];
|
125
|
+
// TODO Check version compatibility
|
126
|
+
// playwrightVersion?: string;
|
127
|
+
// /**
|
128
|
+
// * Use to start standalone playwright browser
|
129
|
+
// */
|
130
|
+
// playwrightBrowser?: () => Promise<Browser>;
|
113
131
|
viewport?: { width: number; height: number };
|
114
|
-
|
132
|
+
|
133
|
+
[name: string]: unknown;
|
134
|
+
}
|
115
135
|
|
116
136
|
export type StorybookGlobals = Record<string, unknown>;
|
117
137
|
|
118
|
-
export type
|
138
|
+
export type BrowserConfig = boolean | string | BrowserConfigObject;
|
139
|
+
|
140
|
+
export type CreeveyWebdriverConstructor = new (
|
141
|
+
browser: string,
|
142
|
+
gridUrl: string,
|
143
|
+
config: Config,
|
144
|
+
options: Options,
|
145
|
+
) => CreeveyWebdriver;
|
146
|
+
|
147
|
+
export interface CreeveyWebdriver {
|
148
|
+
getSessionId(): Promise<string>;
|
149
|
+
openBrowser(fresh?: boolean): Promise<CreeveyWebdriver | null>;
|
150
|
+
closeBrowser(): Promise<void>;
|
151
|
+
loadStoriesFromBrowser(): Promise<StoriesRaw>;
|
152
|
+
switchStory(story: StoryInput, context: BaseCreeveyTestContext, logger: Logger.Logger): Promise<CreeveyTestContext>;
|
153
|
+
afterTest(test: ServerTest): Promise<void>;
|
154
|
+
}
|
119
155
|
|
120
156
|
export interface HookConfig {
|
121
157
|
before?: () => unknown;
|
@@ -131,6 +167,9 @@ export interface DockerAuth {
|
|
131
167
|
serveraddress?: string;
|
132
168
|
}
|
133
169
|
|
170
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
171
|
+
export type BaseReporter = new (runner: EventEmitter, options: { reporterOptions: any }) => void;
|
172
|
+
|
134
173
|
export interface Config {
|
135
174
|
/**
|
136
175
|
* Url to Selenium grid hub or standalone selenium.
|
@@ -156,21 +195,40 @@ export interface Config {
|
|
156
195
|
* @default path.join(process.cwd(), './report')
|
157
196
|
*/
|
158
197
|
reportDir: string;
|
198
|
+
/**
|
199
|
+
* Specify a custom reporter for test results. Creevey accepts only mocha-like reporters
|
200
|
+
* @optional
|
201
|
+
*/
|
202
|
+
reporter: BaseReporter;
|
203
|
+
/**
|
204
|
+
* Options which are used by reporter
|
205
|
+
*/
|
206
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
207
|
+
reporterOptions?: Record<string, any>;
|
159
208
|
/**
|
160
209
|
* How much test would be retried
|
161
210
|
* @default 0
|
162
211
|
*/
|
163
212
|
maxRetries: number;
|
213
|
+
/**
|
214
|
+
* How much time should be spent on each test
|
215
|
+
* @default 30000
|
216
|
+
*/
|
217
|
+
testTimeout: number;
|
164
218
|
/**
|
165
219
|
* Define pixelmatch diff options
|
166
|
-
* @default { threshold: 0, includeAA:
|
220
|
+
* @default { threshold: 0.05, includeAA: false }
|
167
221
|
*/
|
168
222
|
diffOptions: DiffOptions;
|
223
|
+
/**
|
224
|
+
*
|
225
|
+
*/
|
226
|
+
odiffOptions: ODiffOptions; // TODO Update description
|
169
227
|
/**
|
170
228
|
* Browser capabilities
|
171
229
|
* @default { chrome: true }
|
172
230
|
*/
|
173
|
-
browsers: Record<string,
|
231
|
+
browsers: Record<string, BrowserConfig>;
|
174
232
|
/**
|
175
233
|
* Hooks that allow run custom script before and after creevey start
|
176
234
|
*/
|
@@ -204,11 +262,11 @@ export interface Config {
|
|
204
262
|
* }
|
205
263
|
* ```
|
206
264
|
*/
|
207
|
-
storiesProvider: StoriesProvider;
|
265
|
+
storiesProvider: StoriesProvider; // TODO Update description
|
208
266
|
/**
|
209
|
-
*
|
267
|
+
*
|
210
268
|
*/
|
211
|
-
|
269
|
+
webdriver: CreeveyWebdriverConstructor; // TODO Update description
|
212
270
|
/**
|
213
271
|
* Allows you to start selenoid without docker
|
214
272
|
* and use standalone browsers
|
@@ -240,7 +298,6 @@ export interface Config {
|
|
240
298
|
dockerImagePlatform: string;
|
241
299
|
testsRegex?: RegExp;
|
242
300
|
testsDir?: string;
|
243
|
-
tsConfig?: string;
|
244
301
|
/**
|
245
302
|
* Telemetry contains information about Creevey and Storybook versions, used Creevey config, browsers and tests meta.
|
246
303
|
* It's being sent only for projects from git.skbkontur.ru
|
@@ -249,9 +306,12 @@ export interface Config {
|
|
249
306
|
disableTelemetry?: boolean;
|
250
307
|
}
|
251
308
|
|
252
|
-
|
253
|
-
|
254
|
-
|
309
|
+
export interface StoriesProvider {
|
310
|
+
(
|
311
|
+
config: Config,
|
312
|
+
storiesListener: (stories: Map<string, StoryInput[]>) => void,
|
313
|
+
webdriver?: CreeveyWebdriver,
|
314
|
+
): Promise<StoriesRaw>;
|
255
315
|
providerName?: string;
|
256
316
|
}
|
257
317
|
|
@@ -265,17 +325,25 @@ export interface Options {
|
|
265
325
|
update: boolean | string;
|
266
326
|
debug: boolean;
|
267
327
|
trace: boolean;
|
268
|
-
tests: boolean;
|
269
328
|
browser?: string;
|
329
|
+
/**
|
330
|
+
* @deprecated use {@link Config.reporter} instead
|
331
|
+
*/
|
270
332
|
reporter?: string;
|
271
333
|
screenDir?: string;
|
272
334
|
reportDir?: string;
|
335
|
+
gridUrl?: string;
|
273
336
|
storybookUrl?: string;
|
274
|
-
saveReport: boolean;
|
275
337
|
failFast?: boolean;
|
338
|
+
odiff?: boolean;
|
276
339
|
}
|
277
340
|
|
278
|
-
export type
|
341
|
+
export type WorkerError = 'browser' | 'test' | 'unknown';
|
342
|
+
|
343
|
+
export type WorkerMessage =
|
344
|
+
| { type: 'ready'; payload?: never }
|
345
|
+
| { type: 'port'; payload: { port: number } }
|
346
|
+
| { type: 'error'; payload: { subtype: WorkerError; error: string } };
|
279
347
|
|
280
348
|
export type StoriesMessage =
|
281
349
|
| { type: 'get'; payload?: never }
|
@@ -287,29 +355,17 @@ export type TestMessage =
|
|
287
355
|
| { type: 'start'; payload: { id: string; path: string[]; retries: number } }
|
288
356
|
| { type: 'end'; payload: TestResult };
|
289
357
|
|
290
|
-
export type WebpackMessage =
|
291
|
-
| { type: 'success'; payload?: never }
|
292
|
-
| { type: 'fail'; payload?: never }
|
293
|
-
| { type: 'rebuild succeeded'; payload?: never }
|
294
|
-
| { type: 'rebuild failed'; payload?: never };
|
295
|
-
|
296
|
-
export type DockerMessage = { type: 'start'; payload?: never } | { type: 'success'; payload: { gridUrl: string } };
|
297
|
-
|
298
358
|
export type ShutdownMessage = object;
|
299
359
|
|
300
360
|
export type ProcessMessage =
|
301
361
|
| (WorkerMessage & { scope: 'worker' })
|
302
362
|
| (StoriesMessage & { scope: 'stories' })
|
303
363
|
| (TestMessage & { scope: 'test' })
|
304
|
-
| (WebpackMessage & { scope: 'webpack' })
|
305
|
-
| (DockerMessage & { scope: 'docker' })
|
306
364
|
| (ShutdownMessage & { scope: 'shutdown' });
|
307
365
|
|
308
366
|
export type WorkerHandler = (message: WorkerMessage) => void;
|
309
367
|
export type StoriesHandler = (message: StoriesMessage) => void;
|
310
368
|
export type TestHandler = (message: TestMessage) => void;
|
311
|
-
export type WebpackHandler = (message: WebpackMessage) => void;
|
312
|
-
export type DockerHandler = (message: DockerMessage) => void;
|
313
369
|
export type ShutdownHandler = (message: ShutdownMessage) => void;
|
314
370
|
|
315
371
|
export interface Worker extends ClusterWorker {
|
@@ -334,8 +390,8 @@ export interface TestResult {
|
|
334
390
|
error?: string;
|
335
391
|
}
|
336
392
|
|
337
|
-
export
|
338
|
-
images
|
393
|
+
export class ImagesError extends Error {
|
394
|
+
images?: string | Partial<Record<string, string>>;
|
339
395
|
}
|
340
396
|
|
341
397
|
export interface TestMeta {
|
@@ -354,9 +410,65 @@ export interface TestData extends TestMeta {
|
|
354
410
|
approved?: Partial<Record<string, number>> | null;
|
355
411
|
}
|
356
412
|
|
413
|
+
export interface BaseCreeveyTestContext {
|
414
|
+
browserName: string;
|
415
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
416
|
+
webdriver: any;
|
417
|
+
/**
|
418
|
+
* @deprecated Usually for screenshot testing you don't need other type of assertions except matching images, but if you really need it, please use external `expect` libs
|
419
|
+
*/
|
420
|
+
expect: typeof expect;
|
421
|
+
/**
|
422
|
+
* @internal
|
423
|
+
*/
|
424
|
+
screenshots: { imageName?: string; screenshot: Buffer }[];
|
425
|
+
matchImage: (image: Buffer, imageName?: string) => Promise<void>;
|
426
|
+
matchImages: (images: Record<string, Buffer>) => Promise<void>;
|
427
|
+
}
|
428
|
+
|
429
|
+
export interface CreeveyTestContext extends BaseCreeveyTestContext {
|
430
|
+
takeScreenshot: () => Promise<Buffer>;
|
431
|
+
updateStoryArgs: (updatedArgs: Record<string, unknown>) => Promise<void>;
|
432
|
+
captureElement: string | null;
|
433
|
+
}
|
434
|
+
|
435
|
+
export enum TEST_EVENTS {
|
436
|
+
RUN_BEGIN = 'start',
|
437
|
+
RUN_END = 'end',
|
438
|
+
TEST_BEGIN = 'test',
|
439
|
+
TEST_END = 'test end',
|
440
|
+
TEST_FAIL = 'fail',
|
441
|
+
TEST_PASS = 'pass',
|
442
|
+
}
|
443
|
+
|
357
444
|
export interface ServerTest extends TestData {
|
358
445
|
story: StoryInput;
|
359
|
-
fn:
|
446
|
+
fn: CreeveyTestFunction;
|
447
|
+
}
|
448
|
+
|
449
|
+
export interface FakeSuite {
|
450
|
+
title: string;
|
451
|
+
fullTitle: () => string;
|
452
|
+
titlePath: () => string[];
|
453
|
+
tests: FakeTest[];
|
454
|
+
}
|
455
|
+
|
456
|
+
// NOTE: Mocha-like test interface, used specifically for reporting
|
457
|
+
export interface FakeTest {
|
458
|
+
parent: FakeSuite;
|
459
|
+
title: string;
|
460
|
+
fullTitle: () => string;
|
461
|
+
titlePath: () => string[];
|
462
|
+
currentRetry: () => number;
|
463
|
+
retires: () => number;
|
464
|
+
slow: () => number;
|
465
|
+
duration?: number;
|
466
|
+
state?: 'failed' | 'passed';
|
467
|
+
// NOTE > duration, > duration / 2, > 0
|
468
|
+
speed?: 'slow' | 'medium' | 'fast';
|
469
|
+
err?: unknown;
|
470
|
+
// NOTE: image files
|
471
|
+
attachments?: string[];
|
360
472
|
}
|
361
473
|
|
362
474
|
export interface CreeveyStatus {
|
@@ -381,17 +493,7 @@ export interface SkipOption {
|
|
381
493
|
|
382
494
|
export type SkipOptions = boolean | string | Record<string, SkipOption | SkipOption[]>;
|
383
495
|
|
384
|
-
export
|
385
|
-
browser: WebDriver;
|
386
|
-
until: typeof until;
|
387
|
-
keys: IKey;
|
388
|
-
expect: typeof expect;
|
389
|
-
takeScreenshot: () => Promise<string>;
|
390
|
-
updateStoryArgs: (updatedArgs: Record<string, unknown>) => Promise<void>;
|
391
|
-
readonly captureElement?: WebElementPromise;
|
392
|
-
}
|
393
|
-
|
394
|
-
export type CreeveyTestFunction = (this: CreeveyTestController) => Promise<void>;
|
496
|
+
export type CreeveyTestFunction = (context: CreeveyTestContext) => Promise<void>;
|
395
497
|
|
396
498
|
export interface CaptureOptions {
|
397
499
|
imageName?: string;
|
@@ -474,7 +576,7 @@ export function isFunction(x: unknown): x is (...args: any[]) => any {
|
|
474
576
|
}
|
475
577
|
|
476
578
|
export function isImageError(error: unknown): error is ImagesError {
|
477
|
-
return error instanceof
|
579
|
+
return error instanceof ImagesError && 'images' in error;
|
478
580
|
}
|
479
581
|
|
480
582
|
export function isProcessMessage(message: unknown): message is ProcessMessage {
|
@@ -492,11 +594,3 @@ export function isStoriesMessage(message: unknown): message is StoriesMessage {
|
|
492
594
|
export function isTestMessage(message: unknown): message is TestMessage {
|
493
595
|
return isProcessMessage(message) && message.scope == 'test';
|
494
596
|
}
|
495
|
-
|
496
|
-
export function isWebpackMessage(message: unknown): message is WebpackMessage {
|
497
|
-
return isProcessMessage(message) && message.scope == 'webpack';
|
498
|
-
}
|
499
|
-
|
500
|
-
export function isDockerMessage(message: unknown): message is DockerMessage {
|
501
|
-
return isProcessMessage(message) && message.scope == 'docker';
|
502
|
-
}
|
package/dist/client/web/202.js
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";(self.webpackChunkcreevey=self.webpackChunkcreevey||[]).push([[202],{47202:(e,t,i)=>{i.r(t),i.d(t,{WithToolTipState:()=>o.vb,WithTooltip:()=>o.vb,WithTooltipPure:()=>o.o4});var o=i(31461)}}]);
|