creevey 0.10.0-beta.4 → 0.10.0-beta.41
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/README.md +19 -41
- package/dist/client/addon/components/Addon.js +17 -7
- package/dist/client/addon/components/Addon.js.map +1 -1
- package/dist/client/addon/components/Panel.js +2 -2
- package/dist/client/addon/components/Panel.js.map +1 -1
- package/dist/client/addon/components/Tools.js +17 -7
- package/dist/client/addon/components/Tools.js.map +1 -1
- package/dist/client/addon/withCreevey.d.ts +2 -1
- package/dist/client/addon/withCreevey.js +11 -1
- 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 +17 -7
- package/dist/client/shared/components/ImagesView/BlendView.js.map +1 -1
- package/dist/client/shared/components/ImagesView/SideBySideView.d.ts +1 -1
- package/dist/client/shared/components/ImagesView/SideBySideView.js +17 -7
- 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 +17 -7
- 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 +29 -7
- package/dist/client/shared/components/ImagesView/SwapView.js.map +1 -1
- package/dist/client/shared/components/PageHeader/ImagePreview.d.ts +1 -1
- package/dist/client/shared/components/PageHeader/ImagePreview.js +1 -0
- package/dist/client/shared/components/PageHeader/ImagePreview.js.map +1 -1
- package/dist/client/shared/components/PageHeader/PageHeader.js +20 -8
- package/dist/client/shared/components/PageHeader/PageHeader.js.map +1 -1
- package/dist/client/shared/components/ResultsPage.d.ts +1 -1
- package/dist/client/shared/components/ResultsPage.js +43 -13
- package/dist/client/shared/components/ResultsPage.js.map +1 -1
- package/dist/client/shared/creeveyClientApi.js +8 -1
- package/dist/client/shared/creeveyClientApi.js.map +1 -1
- package/dist/client/shared/helpers.d.ts +1 -3
- package/dist/client/shared/helpers.js +4 -19
- package/dist/client/shared/helpers.js.map +1 -1
- package/dist/client/web/CreeveyApp.js +42 -14
- package/dist/client/web/CreeveyApp.js.map +1 -1
- package/dist/client/web/CreeveyContext.d.ts +5 -0
- package/dist/client/web/CreeveyContext.js +20 -7
- package/dist/client/web/CreeveyContext.js.map +1 -1
- package/dist/client/web/CreeveyLoader.js +2 -2
- package/dist/client/web/CreeveyLoader.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/Search.js +19 -9
- package/dist/client/web/CreeveyView/SideBar/Search.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/SideBar.js +18 -7
- package/dist/client/web/CreeveyView/SideBar/SideBar.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/SideBarFooter.js +60 -7
- package/dist/client/web/CreeveyView/SideBar/SideBarFooter.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js +17 -7
- package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/SuiteLink.d.ts +2 -2
- package/dist/client/web/CreeveyView/SideBar/SuiteLink.js +18 -10
- package/dist/client/web/CreeveyView/SideBar/SuiteLink.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/TestLink.js +18 -10
- package/dist/client/web/CreeveyView/SideBar/TestLink.js.map +1 -1
- package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.d.ts +1 -1
- package/dist/client/web/CreeveyView/SideBar/TestsStatus.d.ts +1 -1
- package/dist/client/web/KeyboardEventsContext.d.ts +1 -8
- package/dist/client/web/KeyboardEventsContext.js +79 -64
- package/dist/client/web/KeyboardEventsContext.js.map +1 -1
- package/dist/client/web/assets/index-C47njyZV.js +802 -0
- package/dist/client/web/index.html +1 -1
- package/dist/client/web/index.js +17 -7
- package/dist/client/web/index.js.map +1 -1
- package/dist/client/web/themes.d.ts +2 -0
- package/dist/client/web/themes.js +22 -0
- package/dist/client/web/themes.js.map +1 -0
- package/dist/creevey.js +16 -9
- package/dist/creevey.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/server/config.d.ts +1 -1
- package/dist/server/config.js +30 -7
- package/dist/server/config.js.map +1 -1
- package/dist/server/connection.d.ts +3 -0
- package/dist/server/connection.js +28 -0
- package/dist/server/connection.js.map +1 -0
- package/dist/server/docker.d.ts +1 -1
- package/dist/server/docker.js +56 -32
- package/dist/server/docker.js.map +1 -1
- package/dist/server/index.js +64 -11
- package/dist/server/index.js.map +1 -1
- package/dist/server/logger.d.ts +2 -1
- package/dist/server/logger.js +7 -3
- package/dist/server/logger.js.map +1 -1
- package/dist/server/master/api.js +1 -1
- package/dist/server/master/api.js.map +1 -1
- package/dist/server/master/pool.d.ts +4 -3
- package/dist/server/master/pool.js +13 -66
- package/dist/server/master/pool.js.map +1 -1
- package/dist/server/master/queue.d.ts +13 -0
- package/dist/server/master/queue.js +71 -0
- package/dist/server/master/queue.js.map +1 -0
- package/dist/server/master/runner.d.ts +3 -0
- package/dist/server/master/runner.js +78 -10
- package/dist/server/master/runner.js.map +1 -1
- package/dist/server/master/server.js +1 -1
- package/dist/server/master/server.js.map +1 -1
- package/dist/server/master/start.js +13 -11
- package/dist/server/master/start.js.map +1 -1
- package/dist/server/playwright/docker-file.d.ts +1 -1
- package/dist/server/playwright/docker-file.js +15 -6
- package/dist/server/playwright/docker-file.js.map +1 -1
- package/dist/server/playwright/docker.d.ts +2 -1
- package/dist/server/playwright/docker.js +10 -2
- package/dist/server/playwright/docker.js.map +1 -1
- package/dist/server/playwright/index-source.mjs +16 -0
- package/dist/server/playwright/internal.d.ts +6 -6
- package/dist/server/playwright/internal.js +143 -91
- package/dist/server/playwright/internal.js.map +1 -1
- package/dist/server/playwright/webdriver.d.ts +1 -1
- package/dist/server/playwright/webdriver.js +5 -8
- package/dist/server/playwright/webdriver.js.map +1 -1
- package/dist/server/providers/browser.js +6 -4
- package/dist/server/providers/browser.js.map +1 -1
- package/dist/server/providers/hybrid.js +1 -1
- package/dist/server/providers/hybrid.js.map +1 -1
- package/dist/server/reporters/creevey.d.ts +7 -0
- package/dist/server/reporters/creevey.js +63 -0
- package/dist/server/reporters/creevey.js.map +1 -0
- package/dist/server/reporters/index.d.ts +2 -0
- package/dist/server/reporters/index.js +16 -0
- package/dist/server/reporters/index.js.map +1 -0
- package/dist/server/reporters/junit.d.ts +16 -0
- package/dist/server/reporters/junit.js +165 -0
- package/dist/server/reporters/junit.js.map +1 -0
- package/dist/server/reporters/teamcity.d.ts +7 -0
- package/dist/server/reporters/teamcity.js +60 -0
- package/dist/server/reporters/teamcity.js.map +1 -0
- package/dist/server/selenium/internal.d.ts +3 -4
- package/dist/server/selenium/internal.js +127 -108
- package/dist/server/selenium/internal.js.map +1 -1
- package/dist/server/selenium/selenoid.js +8 -6
- package/dist/server/selenium/selenoid.js.map +1 -1
- package/dist/server/selenium/webdriver.d.ts +1 -1
- package/dist/server/selenium/webdriver.js +5 -9
- package/dist/server/selenium/webdriver.js.map +1 -1
- package/dist/server/telemetry.js +2 -2
- package/dist/server/testsFiles/parser.js +45 -5
- package/dist/server/testsFiles/parser.js.map +1 -1
- package/dist/server/utils.d.ts +19 -1
- package/dist/server/utils.js +87 -8
- package/dist/server/utils.js.map +1 -1
- package/dist/server/webdriver.d.ts +5 -4
- package/dist/server/webdriver.js +23 -10
- package/dist/server/webdriver.js.map +1 -1
- package/dist/server/worker/chai-image.d.ts +1 -2
- package/dist/server/worker/chai-image.js +4 -3
- package/dist/server/worker/chai-image.js.map +1 -1
- package/dist/server/worker/context.d.ts +3 -0
- package/dist/server/worker/context.js +15 -0
- package/dist/server/worker/context.js.map +1 -0
- package/dist/server/worker/match-image.d.ts +4 -4
- package/dist/server/worker/match-image.js +7 -4
- package/dist/server/worker/match-image.js.map +1 -1
- package/dist/server/worker/start.js +47 -73
- package/dist/server/worker/start.js.map +1 -1
- package/dist/shared/index.d.ts +1 -1
- package/dist/types.d.ts +46 -10
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -1
- package/docs/cli.md +12 -0
- package/docs/config.md +179 -165
- package/docs/storybook.md +60 -0
- package/docs/tests.md +50 -45
- package/package.json +64 -63
- package/src/client/addon/components/Panel.tsx +2 -2
- package/src/client/addon/withCreevey.ts +10 -2
- package/src/client/shared/components/ImagesView/SwapView.tsx +18 -0
- package/src/client/shared/components/PageHeader/ImagePreview.tsx +1 -0
- package/src/client/shared/components/PageHeader/PageHeader.tsx +4 -2
- package/src/client/shared/components/ResultsPage.tsx +31 -8
- package/src/client/shared/creeveyClientApi.ts +9 -1
- package/src/client/shared/helpers.ts +4 -24
- package/src/client/web/CreeveyApp.tsx +27 -8
- package/src/client/web/CreeveyContext.tsx +9 -0
- package/src/client/web/CreeveyLoader.tsx +1 -1
- package/src/client/web/CreeveyView/SideBar/Search.tsx +3 -3
- package/src/client/web/CreeveyView/SideBar/SideBar.tsx +1 -0
- package/src/client/web/CreeveyView/SideBar/SideBarFooter.tsx +37 -6
- package/src/client/web/CreeveyView/SideBar/SuiteLink.tsx +3 -5
- package/src/client/web/CreeveyView/SideBar/TestLink.tsx +2 -4
- package/src/client/web/KeyboardEventsContext.tsx +61 -73
- package/src/client/web/themes.ts +24 -0
- package/src/creevey.ts +16 -10
- package/src/server/config.ts +30 -7
- package/src/server/connection.ts +26 -0
- package/src/server/docker.ts +63 -34
- package/src/server/index.ts +72 -14
- package/src/server/logger.ts +6 -2
- package/src/server/master/api.ts +1 -1
- package/src/server/master/pool.ts +23 -59
- package/src/server/master/queue.ts +77 -0
- package/src/server/master/runner.ts +96 -10
- package/src/server/master/server.ts +1 -1
- package/src/server/master/start.ts +16 -11
- package/src/server/playwright/docker-file.ts +18 -6
- package/src/server/playwright/docker.ts +16 -3
- package/src/server/playwright/index-source.mjs +16 -0
- package/src/server/playwright/internal.ts +182 -111
- package/src/server/playwright/webdriver.ts +6 -9
- package/src/server/providers/browser.ts +6 -4
- package/src/server/providers/hybrid.ts +1 -1
- package/src/server/reporters/creevey.ts +71 -0
- package/src/server/reporters/index.ts +11 -0
- package/src/server/reporters/junit.ts +205 -0
- package/src/server/reporters/teamcity.ts +74 -0
- package/src/server/selenium/internal.ts +131 -116
- package/src/server/selenium/selenoid.ts +8 -6
- package/src/server/selenium/webdriver.ts +6 -10
- package/src/server/telemetry.ts +2 -2
- package/src/server/testsFiles/parser.ts +52 -4
- package/src/server/utils.ts +97 -9
- package/src/server/webdriver.ts +24 -16
- package/src/server/worker/chai-image.ts +4 -4
- package/src/server/worker/context.ts +14 -0
- package/src/server/worker/match-image.ts +12 -8
- package/src/server/worker/start.ts +51 -86
- package/src/shared/index.ts +1 -1
- package/src/types.ts +50 -11
- package/types/global.d.ts +1 -0
- package/.yarnrc.yml +0 -1
- package/chromatic.config.json +0 -5
- package/dist/client/web/assets/index-DkmZfG9C.js +0 -591
- package/dist/server/reporter.d.ts +0 -26
- package/dist/server/reporter.js +0 -108
- package/dist/server/reporter.js.map +0 -1
- package/src/server/reporter.ts +0 -138
package/src/types.ts
CHANGED
@@ -1,11 +1,10 @@
|
|
1
|
-
import type { StoryContextForEnhancers, DecoratorFunction } from '@storybook/
|
1
|
+
import type { StoryContextForEnhancers, DecoratorFunction } from '@storybook/types';
|
2
2
|
import type { Worker as ClusterWorker } from 'cluster';
|
3
3
|
import type Pixelmatch from 'pixelmatch';
|
4
4
|
import type { ODiffOptions } from 'odiff-bin';
|
5
5
|
import type { expect } from 'chai';
|
6
6
|
import type EventEmitter from 'events';
|
7
|
-
import type
|
8
|
-
import { LaunchOptions } from 'playwright-core';
|
7
|
+
import type { LaunchOptions } from 'playwright-core';
|
9
8
|
// import type { Browser } from 'playwright-core';
|
10
9
|
|
11
10
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
@@ -103,6 +102,7 @@ export class ChromeConfig {
|
|
103
102
|
}
|
104
103
|
*/
|
105
104
|
export interface BrowserConfigObject {
|
105
|
+
// TODO Restrict browser names for playwright images
|
106
106
|
browserName: string;
|
107
107
|
// customizeBuilder?: (builder: Builder) => Builder;
|
108
108
|
limit?: number;
|
@@ -145,7 +145,13 @@ export interface BrowserConfigObject {
|
|
145
145
|
[name: string]: unknown;
|
146
146
|
};
|
147
147
|
|
148
|
-
playwrightOptions?: Omit<LaunchOptions, 'logger'
|
148
|
+
playwrightOptions?: Omit<LaunchOptions, 'logger'> & {
|
149
|
+
trace?: {
|
150
|
+
screenshots?: boolean;
|
151
|
+
snapshots?: boolean;
|
152
|
+
sources?: boolean;
|
153
|
+
};
|
154
|
+
};
|
149
155
|
}
|
150
156
|
|
151
157
|
export type StorybookGlobals = Record<string, unknown>;
|
@@ -164,7 +170,7 @@ export interface CreeveyWebdriver {
|
|
164
170
|
openBrowser(fresh?: boolean): Promise<CreeveyWebdriver | null>;
|
165
171
|
closeBrowser(): Promise<void>;
|
166
172
|
loadStoriesFromBrowser(): Promise<StoriesRaw>;
|
167
|
-
switchStory(story: StoryInput, context: BaseCreeveyTestContext
|
173
|
+
switchStory(story: StoryInput, context: BaseCreeveyTestContext): Promise<CreeveyTestContext>;
|
168
174
|
afterTest(test: ServerTest): Promise<void>;
|
169
175
|
}
|
170
176
|
|
@@ -183,7 +189,7 @@ export interface DockerAuth {
|
|
183
189
|
}
|
184
190
|
|
185
191
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
186
|
-
export type BaseReporter = new (runner: EventEmitter, options: { reporterOptions: any }) => void;
|
192
|
+
export type BaseReporter = new (runner: EventEmitter, options: { reportDir: string; reporterOptions: any }) => void;
|
187
193
|
|
188
194
|
export interface Config {
|
189
195
|
/**
|
@@ -200,6 +206,11 @@ export interface Config {
|
|
200
206
|
* Url where storybook hosted on
|
201
207
|
*/
|
202
208
|
resolveStorybookUrl?: () => Promise<string>;
|
209
|
+
/**
|
210
|
+
* Command to automatically start Storybook if it is not running.
|
211
|
+
* For example, `npm run storybook`, `yarn run storybook` etc.
|
212
|
+
*/
|
213
|
+
storybookAutorunCmd?: string;
|
203
214
|
/**
|
204
215
|
* Absolute path to directory with reference images
|
205
216
|
* @default path.join(process.cwd(), './images')
|
@@ -213,8 +224,9 @@ export interface Config {
|
|
213
224
|
/**
|
214
225
|
* Specify a custom reporter for test results. Creevey accepts only mocha-like reporters
|
215
226
|
* @optional
|
227
|
+
* @default 'creevey'
|
216
228
|
*/
|
217
|
-
reporter: BaseReporter;
|
229
|
+
reporter: BaseReporter | 'creevey' | 'teamcity' | 'junit';
|
218
230
|
/**
|
219
231
|
* Options which are used by reporter
|
220
232
|
*/
|
@@ -307,6 +319,11 @@ export interface Config {
|
|
307
319
|
* The `--ui` CLI option ignores this option
|
308
320
|
*/
|
309
321
|
failFast: boolean;
|
322
|
+
/**
|
323
|
+
* Start workers in sequential queue
|
324
|
+
* @default false
|
325
|
+
*/
|
326
|
+
useWorkerQueue: boolean;
|
310
327
|
/**
|
311
328
|
* Specify platform for docker images
|
312
329
|
*/
|
@@ -348,9 +365,13 @@ export interface Options {
|
|
348
365
|
screenDir?: string;
|
349
366
|
reportDir?: string;
|
350
367
|
gridUrl?: string;
|
368
|
+
storybookStart?: boolean | string;
|
351
369
|
storybookUrl?: string;
|
370
|
+
storybookPort?: string;
|
371
|
+
storybookAutorunCmd?: string;
|
352
372
|
failFast?: boolean;
|
353
373
|
odiff?: boolean;
|
374
|
+
noDocker?: boolean;
|
354
375
|
}
|
355
376
|
|
356
377
|
export type WorkerError = 'browser' | 'test' | 'unknown';
|
@@ -399,10 +420,17 @@ export type TestStatus = 'unknown' | 'pending' | 'running' | 'failed' | 'approve
|
|
399
420
|
|
400
421
|
export interface TestResult {
|
401
422
|
status: 'failed' | 'success';
|
423
|
+
retries: number;
|
402
424
|
// TODO Remove checks `name == browser` in TestResultsView
|
403
425
|
// images?: Partial<{ [name: string]: Images }> | Images;
|
404
426
|
images?: Partial<Record<string, Images>>;
|
405
427
|
error?: string;
|
428
|
+
// Test metadata for reporting
|
429
|
+
duration?: number;
|
430
|
+
attachments?: string[];
|
431
|
+
sessionId?: string;
|
432
|
+
browserName?: string;
|
433
|
+
workerId?: number;
|
406
434
|
}
|
407
435
|
|
408
436
|
export class ImagesError extends Error {
|
@@ -437,8 +465,8 @@ export interface BaseCreeveyTestContext {
|
|
437
465
|
* @internal
|
438
466
|
*/
|
439
467
|
screenshots: { imageName?: string; screenshot: Buffer }[];
|
440
|
-
matchImage: (image: Buffer, imageName?: string) => Promise<void>;
|
441
|
-
matchImages: (images: Record<string, Buffer>) => Promise<void>;
|
468
|
+
matchImage: (image: Buffer | string, imageName?: string) => Promise<void>;
|
469
|
+
matchImages: (images: Record<string, Buffer | string>) => Promise<void>;
|
442
470
|
}
|
443
471
|
|
444
472
|
export interface CreeveyTestContext extends BaseCreeveyTestContext {
|
@@ -450,6 +478,8 @@ export interface CreeveyTestContext extends BaseCreeveyTestContext {
|
|
450
478
|
export enum TEST_EVENTS {
|
451
479
|
RUN_BEGIN = 'start',
|
452
480
|
RUN_END = 'end',
|
481
|
+
SUITE_BEGIN = 'suite',
|
482
|
+
SUITE_END = 'suite end',
|
453
483
|
TEST_BEGIN = 'test',
|
454
484
|
TEST_END = 'test end',
|
455
485
|
TEST_FAIL = 'fail',
|
@@ -474,16 +504,25 @@ export interface FakeTest {
|
|
474
504
|
title: string;
|
475
505
|
fullTitle: () => string;
|
476
506
|
titlePath: () => string[];
|
477
|
-
currentRetry: () => number;
|
507
|
+
currentRetry: () => number | undefined;
|
478
508
|
retires: () => number;
|
479
509
|
slow: () => number;
|
480
510
|
duration?: number;
|
481
511
|
state?: 'failed' | 'passed';
|
482
512
|
// NOTE > duration, > duration / 2, > 0
|
483
513
|
speed?: 'slow' | 'medium' | 'fast';
|
484
|
-
err?:
|
514
|
+
err?: string;
|
485
515
|
// NOTE: image files
|
486
516
|
attachments?: string[];
|
517
|
+
|
518
|
+
// NOTE: Creevey specific fields
|
519
|
+
creevey: {
|
520
|
+
sessionId: string;
|
521
|
+
browserName: string;
|
522
|
+
workerId: number;
|
523
|
+
willRetry: boolean;
|
524
|
+
images: Partial<Record<string, Partial<Images>>>;
|
525
|
+
};
|
487
526
|
}
|
488
527
|
|
489
528
|
export interface CreeveyStatus {
|
package/types/global.d.ts
CHANGED
package/.yarnrc.yml
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
nodeLinker: node-modules
|