creevey 0.9.2 → 0.10.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +7 -3
- package/dist/index.js.map +1 -1
- package/dist/server/config.d.ts +1 -1
- package/dist/server/config.js +9 -5
- 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 +54 -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 +26 -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 +31 -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 +16 -0
- package/dist/server/playwright/webdriver.js +105 -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 +31 -0
- package/dist/server/selenium/internal.js +606 -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 +24 -0
- package/dist/server/selenium/webdriver.js +106 -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 +19 -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 +258 -0
- package/dist/server/worker/start.js.map +1 -0
- package/dist/types.d.ts +126 -64
- package/dist/types.js +15 -9
- package/dist/types.js.map +1 -1
- package/package.json +108 -110
- 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 +4 -2
- package/src/server/config.ts +12 -8
- package/src/server/docker.ts +58 -44
- package/src/server/index.ts +57 -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 +21 -0
- package/src/server/playwright/docker.ts +41 -0
- package/src/server/playwright/internal.ts +387 -0
- package/src/server/playwright/webdriver.ts +126 -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 +785 -0
- package/src/server/selenium/selenoid.ts +12 -17
- package/src/server/selenium/webdriver.ts +136 -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 +127 -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 +303 -0
- package/src/types.ts +161 -60
- 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,13 @@
|
|
1
1
|
import type { StoryContextForEnhancers, DecoratorFunction } from '@storybook/csf';
|
2
2
|
import type { IKey } from 'selenium-webdriver/lib/input.js';
|
3
3
|
import type { Worker as ClusterWorker } from 'cluster';
|
4
|
-
import type { until
|
4
|
+
import type { /*Builder,*/ until } from 'selenium-webdriver';
|
5
5
|
import type Pixelmatch from 'pixelmatch';
|
6
|
-
import type {
|
6
|
+
import type { ODiffOptions } from 'odiff-bin';
|
7
7
|
import type { expect } from 'chai';
|
8
|
+
import type EventEmitter from 'events';
|
9
|
+
import type Logger from 'loglevel';
|
10
|
+
// import type { Browser } from 'playwright-core';
|
8
11
|
|
9
12
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
10
13
|
export type DiffOptions = typeof Pixelmatch extends (
|
@@ -80,19 +83,30 @@ export interface CreeveyStory {
|
|
80
83
|
};
|
81
84
|
}
|
82
85
|
|
83
|
-
|
86
|
+
// TODO Rework browser config
|
87
|
+
/*
|
88
|
+
export class ChromeConfig {
|
89
|
+
browserName: 'chrome'
|
90
|
+
|
91
|
+
constructor({ limit, version, ... })
|
92
|
+
}
|
93
|
+
*/
|
94
|
+
export interface BrowserConfigObject {
|
84
95
|
browserName: string;
|
96
|
+
/**
|
97
|
+
* Browser version. Ignored with Playwright webdriver
|
98
|
+
*/
|
85
99
|
browserVersion?: string;
|
86
|
-
platformName?: string;
|
87
100
|
/**
|
88
|
-
*
|
101
|
+
* Operation system name. Ignored with Playwright webdriver
|
89
102
|
*/
|
90
|
-
|
91
|
-
|
92
|
-
}
|
93
|
-
|
94
|
-
export type BrowserConfig = Capabilities & {
|
103
|
+
platformName?: string;
|
104
|
+
// customizeBuilder?: (builder: Builder) => Builder;
|
95
105
|
limit?: number;
|
106
|
+
/**
|
107
|
+
* Selenium grid url
|
108
|
+
* @default config.gridUrl
|
109
|
+
*/
|
96
110
|
gridUrl?: string;
|
97
111
|
storybookUrl?: string;
|
98
112
|
/**
|
@@ -102,7 +116,7 @@ export type BrowserConfig = Capabilities & {
|
|
102
116
|
_storybookGlobals?: StorybookGlobals;
|
103
117
|
/**
|
104
118
|
* Specify custom docker image. Used only with `useDocker == true`
|
105
|
-
* @default `selenoid/${browserName}:${browserVersion ?? 'latest'}`
|
119
|
+
* @default `selenoid/${browserName}:${browserVersion ?? 'latest'}` or `mcr.microsoft.com/playwright:${playwrightVersion}`
|
106
120
|
*/
|
107
121
|
dockerImage?: string;
|
108
122
|
/**
|
@@ -110,12 +124,35 @@ export type BrowserConfig = Capabilities & {
|
|
110
124
|
* Used only with `useDocker == false`
|
111
125
|
*/
|
112
126
|
webdriverCommand?: string[];
|
127
|
+
// TODO Check version compatibility
|
128
|
+
// playwrightVersion?: string;
|
129
|
+
// /**
|
130
|
+
// * Use to start standalone playwright browser
|
131
|
+
// */
|
132
|
+
// playwrightBrowser?: () => Promise<Browser>;
|
113
133
|
viewport?: { width: number; height: number };
|
114
|
-
|
134
|
+
|
135
|
+
[name: string]: unknown;
|
136
|
+
}
|
115
137
|
|
116
138
|
export type StorybookGlobals = Record<string, unknown>;
|
117
139
|
|
118
|
-
export type
|
140
|
+
export type BrowserConfig = boolean | string | BrowserConfigObject;
|
141
|
+
|
142
|
+
export type CreeveyWebdriverConstructor = new (
|
143
|
+
browser: string,
|
144
|
+
gridUrl: string,
|
145
|
+
config: Config,
|
146
|
+
options: Options,
|
147
|
+
) => CreeveyWebdriver;
|
148
|
+
|
149
|
+
export interface CreeveyWebdriver {
|
150
|
+
getSessionId(): Promise<string>;
|
151
|
+
openBrowser(fresh?: boolean): Promise<CreeveyWebdriver | null>;
|
152
|
+
closeBrowser(): Promise<void>;
|
153
|
+
loadStoriesFromBrowser(): Promise<StoriesRaw>;
|
154
|
+
switchStory(story: StoryInput, context: BaseCreeveyTestContext, logger: Logger.Logger): Promise<CreeveyTestContext>;
|
155
|
+
}
|
119
156
|
|
120
157
|
export interface HookConfig {
|
121
158
|
before?: () => unknown;
|
@@ -131,6 +168,9 @@ export interface DockerAuth {
|
|
131
168
|
serveraddress?: string;
|
132
169
|
}
|
133
170
|
|
171
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
172
|
+
export type BaseReporter = new (runner: EventEmitter, options: { reporterOptions: any }) => void;
|
173
|
+
|
134
174
|
export interface Config {
|
135
175
|
/**
|
136
176
|
* Url to Selenium grid hub or standalone selenium.
|
@@ -156,21 +196,40 @@ export interface Config {
|
|
156
196
|
* @default path.join(process.cwd(), './report')
|
157
197
|
*/
|
158
198
|
reportDir: string;
|
199
|
+
/**
|
200
|
+
* Specify a custom reporter for test results. Creevey accepts only mocha-like reporters
|
201
|
+
* @optional
|
202
|
+
*/
|
203
|
+
reporter: BaseReporter;
|
204
|
+
/**
|
205
|
+
* Options which are used by reporter
|
206
|
+
*/
|
207
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
208
|
+
reporterOptions?: Record<string, any>;
|
159
209
|
/**
|
160
210
|
* How much test would be retried
|
161
211
|
* @default 0
|
162
212
|
*/
|
163
213
|
maxRetries: number;
|
214
|
+
/**
|
215
|
+
* How much time should be spent on each test
|
216
|
+
* @default 30000
|
217
|
+
*/
|
218
|
+
testTimeout: number;
|
164
219
|
/**
|
165
220
|
* Define pixelmatch diff options
|
166
|
-
* @default { threshold: 0, includeAA:
|
221
|
+
* @default { threshold: 0.05, includeAA: false }
|
167
222
|
*/
|
168
223
|
diffOptions: DiffOptions;
|
224
|
+
/**
|
225
|
+
*
|
226
|
+
*/
|
227
|
+
odiffOptions: ODiffOptions; // TODO Update description
|
169
228
|
/**
|
170
229
|
* Browser capabilities
|
171
230
|
* @default { chrome: true }
|
172
231
|
*/
|
173
|
-
browsers: Record<string,
|
232
|
+
browsers: Record<string, BrowserConfig>;
|
174
233
|
/**
|
175
234
|
* Hooks that allow run custom script before and after creevey start
|
176
235
|
*/
|
@@ -204,11 +263,11 @@ export interface Config {
|
|
204
263
|
* }
|
205
264
|
* ```
|
206
265
|
*/
|
207
|
-
storiesProvider: StoriesProvider;
|
266
|
+
storiesProvider: StoriesProvider; // TODO Update description
|
208
267
|
/**
|
209
|
-
*
|
268
|
+
*
|
210
269
|
*/
|
211
|
-
|
270
|
+
webdriver: CreeveyWebdriverConstructor; // TODO Update description
|
212
271
|
/**
|
213
272
|
* Allows you to start selenoid without docker
|
214
273
|
* and use standalone browsers
|
@@ -240,7 +299,6 @@ export interface Config {
|
|
240
299
|
dockerImagePlatform: string;
|
241
300
|
testsRegex?: RegExp;
|
242
301
|
testsDir?: string;
|
243
|
-
tsConfig?: string;
|
244
302
|
/**
|
245
303
|
* Telemetry contains information about Creevey and Storybook versions, used Creevey config, browsers and tests meta.
|
246
304
|
* It's being sent only for projects from git.skbkontur.ru
|
@@ -249,9 +307,12 @@ export interface Config {
|
|
249
307
|
disableTelemetry?: boolean;
|
250
308
|
}
|
251
309
|
|
252
|
-
|
253
|
-
|
254
|
-
|
310
|
+
export interface StoriesProvider {
|
311
|
+
(
|
312
|
+
config: Config,
|
313
|
+
storiesListener: (stories: Map<string, StoryInput[]>) => void,
|
314
|
+
webdriver?: CreeveyWebdriver,
|
315
|
+
): Promise<StoriesRaw>;
|
255
316
|
providerName?: string;
|
256
317
|
}
|
257
318
|
|
@@ -265,17 +326,25 @@ export interface Options {
|
|
265
326
|
update: boolean | string;
|
266
327
|
debug: boolean;
|
267
328
|
trace: boolean;
|
268
|
-
tests: boolean;
|
269
329
|
browser?: string;
|
330
|
+
/**
|
331
|
+
* @deprecated use {@link Config.reporter} instead
|
332
|
+
*/
|
270
333
|
reporter?: string;
|
271
334
|
screenDir?: string;
|
272
335
|
reportDir?: string;
|
336
|
+
gridUrl?: string;
|
273
337
|
storybookUrl?: string;
|
274
|
-
saveReport: boolean;
|
275
338
|
failFast?: boolean;
|
339
|
+
odiff?: boolean;
|
276
340
|
}
|
277
341
|
|
278
|
-
export type
|
342
|
+
export type WorkerError = 'browser' | 'test' | 'unknown';
|
343
|
+
|
344
|
+
export type WorkerMessage =
|
345
|
+
| { type: 'ready'; payload?: never }
|
346
|
+
| { type: 'port'; payload: { port: number } }
|
347
|
+
| { type: 'error'; payload: { subtype: WorkerError; error: string } };
|
279
348
|
|
280
349
|
export type StoriesMessage =
|
281
350
|
| { type: 'get'; payload?: never }
|
@@ -287,29 +356,17 @@ export type TestMessage =
|
|
287
356
|
| { type: 'start'; payload: { id: string; path: string[]; retries: number } }
|
288
357
|
| { type: 'end'; payload: TestResult };
|
289
358
|
|
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
359
|
export type ShutdownMessage = object;
|
299
360
|
|
300
361
|
export type ProcessMessage =
|
301
362
|
| (WorkerMessage & { scope: 'worker' })
|
302
363
|
| (StoriesMessage & { scope: 'stories' })
|
303
364
|
| (TestMessage & { scope: 'test' })
|
304
|
-
| (WebpackMessage & { scope: 'webpack' })
|
305
|
-
| (DockerMessage & { scope: 'docker' })
|
306
365
|
| (ShutdownMessage & { scope: 'shutdown' });
|
307
366
|
|
308
367
|
export type WorkerHandler = (message: WorkerMessage) => void;
|
309
368
|
export type StoriesHandler = (message: StoriesMessage) => void;
|
310
369
|
export type TestHandler = (message: TestMessage) => void;
|
311
|
-
export type WebpackHandler = (message: WebpackMessage) => void;
|
312
|
-
export type DockerHandler = (message: DockerMessage) => void;
|
313
370
|
export type ShutdownHandler = (message: ShutdownMessage) => void;
|
314
371
|
|
315
372
|
export interface Worker extends ClusterWorker {
|
@@ -334,8 +391,8 @@ export interface TestResult {
|
|
334
391
|
error?: string;
|
335
392
|
}
|
336
393
|
|
337
|
-
export
|
338
|
-
images
|
394
|
+
export class ImagesError extends Error {
|
395
|
+
images?: string | Partial<Record<string, string>>;
|
339
396
|
}
|
340
397
|
|
341
398
|
export interface TestMeta {
|
@@ -354,9 +411,71 @@ export interface TestData extends TestMeta {
|
|
354
411
|
approved?: Partial<Record<string, number>> | null;
|
355
412
|
}
|
356
413
|
|
414
|
+
export interface BaseCreeveyTestContext {
|
415
|
+
browserName: string;
|
416
|
+
/**
|
417
|
+
* @deprecated In near future Creevey will additionally support Playwright as a webdriver, so any Selenium specific things might not be available. Please import `until` explicitly
|
418
|
+
*/
|
419
|
+
until: typeof until;
|
420
|
+
/**
|
421
|
+
* @deprecated In near future Creevey will additionally support Playwright as a webdriver, so any Selenium specific things might not be available. Please import `keys` explicitly
|
422
|
+
*/
|
423
|
+
keys: IKey;
|
424
|
+
/**
|
425
|
+
* @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
|
426
|
+
*/
|
427
|
+
expect: typeof expect;
|
428
|
+
/**
|
429
|
+
* @internal
|
430
|
+
*/
|
431
|
+
screenshots: { imageName?: string; screenshot: Buffer }[];
|
432
|
+
matchImage: (image: Buffer, imageName?: string) => Promise<void>;
|
433
|
+
matchImages: (images: Record<string, Buffer>) => Promise<void>;
|
434
|
+
}
|
435
|
+
|
436
|
+
export interface CreeveyTestContext extends BaseCreeveyTestContext {
|
437
|
+
takeScreenshot: () => Promise<Buffer>;
|
438
|
+
updateStoryArgs: (updatedArgs: Record<string, unknown>) => Promise<void>;
|
439
|
+
captureElement: string | null;
|
440
|
+
}
|
441
|
+
|
442
|
+
export enum TEST_EVENTS {
|
443
|
+
RUN_BEGIN = 'start',
|
444
|
+
RUN_END = 'end',
|
445
|
+
TEST_BEGIN = 'test',
|
446
|
+
TEST_END = 'test end',
|
447
|
+
TEST_FAIL = 'fail',
|
448
|
+
TEST_PASS = 'pass',
|
449
|
+
}
|
450
|
+
|
357
451
|
export interface ServerTest extends TestData {
|
358
452
|
story: StoryInput;
|
359
|
-
fn:
|
453
|
+
fn: CreeveyTestFunction;
|
454
|
+
}
|
455
|
+
|
456
|
+
export interface FakeSuite {
|
457
|
+
title: string;
|
458
|
+
fullTitle: () => string;
|
459
|
+
titlePath: () => string[];
|
460
|
+
tests: FakeTest[];
|
461
|
+
}
|
462
|
+
|
463
|
+
// NOTE: Mocha-like test interface, used specifically for reporting
|
464
|
+
export interface FakeTest {
|
465
|
+
parent: FakeSuite;
|
466
|
+
title: string;
|
467
|
+
fullTitle: () => string;
|
468
|
+
titlePath: () => string[];
|
469
|
+
currentRetry: () => number;
|
470
|
+
retires: () => number;
|
471
|
+
slow: () => number;
|
472
|
+
duration?: number;
|
473
|
+
state?: 'failed' | 'passed';
|
474
|
+
// NOTE > duration, > duration / 2, > 0
|
475
|
+
speed?: 'slow' | 'medium' | 'fast';
|
476
|
+
err?: unknown;
|
477
|
+
// NOTE: image files
|
478
|
+
attachments?: string[];
|
360
479
|
}
|
361
480
|
|
362
481
|
export interface CreeveyStatus {
|
@@ -381,17 +500,7 @@ export interface SkipOption {
|
|
381
500
|
|
382
501
|
export type SkipOptions = boolean | string | Record<string, SkipOption | SkipOption[]>;
|
383
502
|
|
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>;
|
503
|
+
export type CreeveyTestFunction = (context: CreeveyTestContext) => Promise<void>;
|
395
504
|
|
396
505
|
export interface CaptureOptions {
|
397
506
|
imageName?: string;
|
@@ -474,7 +583,7 @@ export function isFunction(x: unknown): x is (...args: any[]) => any {
|
|
474
583
|
}
|
475
584
|
|
476
585
|
export function isImageError(error: unknown): error is ImagesError {
|
477
|
-
return error instanceof
|
586
|
+
return error instanceof ImagesError && 'images' in error;
|
478
587
|
}
|
479
588
|
|
480
589
|
export function isProcessMessage(message: unknown): message is ProcessMessage {
|
@@ -492,11 +601,3 @@ export function isStoriesMessage(message: unknown): message is StoriesMessage {
|
|
492
601
|
export function isTestMessage(message: unknown): message is TestMessage {
|
493
602
|
return isProcessMessage(message) && message.scope == 'test';
|
494
603
|
}
|
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)}}]);
|