creevey 0.9.0-beta.2 → 0.9.0-beta.20
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/.yarn/install-state.gz +0 -0
- package/.yarnrc.yml +1 -0
- package/CHANGELOG.md +51 -0
- package/README.md +9 -1
- package/addon/README.md +3 -0
- package/addon/package.json +5 -0
- package/docs/config.md +29 -26
- package/jest.config.js +6 -0
- package/lib/cjs/cli.js +1 -0
- package/lib/cjs/client/addon/Manager.js +170 -390
- package/lib/cjs/client/addon/components/Addon.js +17 -45
- package/lib/cjs/client/addon/components/Icons.js +12 -14
- package/lib/cjs/client/addon/components/Panel.js +21 -30
- package/lib/cjs/client/addon/components/TestSelect.js +20 -31
- package/lib/cjs/client/addon/components/Tools.js +35 -65
- package/lib/cjs/client/addon/decorator.js +1 -4
- package/lib/cjs/client/addon/index.js +27 -0
- package/lib/cjs/client/addon/preset.js +3 -76
- package/lib/cjs/client/addon/preview.js +11 -0
- package/lib/cjs/client/addon/readyForCapture.js +1 -4
- package/lib/cjs/client/addon/register.js +43 -82
- package/lib/cjs/client/addon/utils.js +4 -8
- package/lib/cjs/client/addon/withCreevey.js +145 -404
- package/lib/cjs/client/shared/components/ImagesView/BlendView.js +25 -35
- package/lib/cjs/client/shared/components/ImagesView/ImagesView.js +29 -41
- package/lib/cjs/client/shared/components/ImagesView/SideBySideView.js +46 -83
- package/lib/cjs/client/shared/components/ImagesView/SlideView.js +39 -67
- package/lib/cjs/client/shared/components/ImagesView/SwapView.js +26 -57
- package/lib/cjs/client/shared/components/ImagesView/index.js +9 -14
- package/lib/cjs/client/shared/components/PageFooter/PageFooter.js +13 -16
- package/lib/cjs/client/shared/components/PageFooter/Paging.js +16 -37
- package/lib/cjs/client/shared/components/PageHeader/ImagePreview.js +42 -34
- package/lib/cjs/client/shared/components/PageHeader/PageHeader.js +40 -84
- package/lib/cjs/client/shared/components/ResultsPage.js +42 -99
- package/lib/cjs/client/shared/creeveyClientApi.js +56 -93
- package/lib/cjs/client/shared/helpers.js +149 -274
- package/lib/cjs/client/shared/viewMode.js +5 -9
- package/lib/cjs/client/web/192.js +1 -0
- package/lib/cjs/client/web/632.js +43 -0
- package/lib/cjs/client/web/794.js +1 -0
- package/lib/cjs/client/web/main.js +79 -38
- package/lib/cjs/client/web/main.js.LICENSE.txt +34 -0
- package/lib/cjs/creevey.js +15 -30
- package/lib/cjs/index.js +0 -15
- package/lib/cjs/server/config.js +16 -36
- package/lib/cjs/server/docker.js +8 -34
- package/lib/cjs/server/index.js +9 -34
- package/lib/cjs/server/logger.js +7 -20
- package/lib/cjs/server/master/api.js +1 -14
- package/lib/cjs/server/master/index.js +25 -49
- package/lib/cjs/server/master/master.js +6 -21
- package/lib/cjs/server/master/pool.js +10 -53
- package/lib/cjs/server/master/runner.js +65 -105
- package/lib/cjs/server/master/server.js +10 -29
- package/lib/cjs/server/messages.js +14 -62
- package/lib/cjs/server/selenium/browser.js +149 -185
- package/lib/cjs/server/selenium/index.js +0 -4
- package/lib/cjs/server/selenium/selenoid.js +18 -44
- package/lib/cjs/server/stories.js +35 -57
- package/lib/cjs/server/storybook/providers/browser.js +15 -29
- package/lib/cjs/server/storybook/providers/hybrid.js +16 -37
- package/lib/cjs/server/telemetry.js +167 -0
- package/lib/cjs/server/testsFiles/parser.js +3 -19
- package/lib/cjs/server/testsFiles/register.js +8 -14
- package/lib/cjs/server/update.js +4 -25
- package/lib/cjs/server/utils.js +35 -76
- package/lib/cjs/server/worker/chai-image.js +1 -27
- package/lib/cjs/server/worker/helpers.js +2 -12
- package/lib/cjs/server/worker/index.js +1 -3
- package/lib/cjs/server/worker/reporter.js +16 -43
- package/lib/cjs/server/worker/worker.js +32 -72
- package/lib/cjs/shared/index.js +87 -0
- package/lib/cjs/shared/serializeRegExp.js +34 -0
- package/lib/cjs/types.js +11 -20
- package/lib/esm/cli.js +1 -1
- package/lib/esm/client/addon/Manager.js +170 -381
- package/lib/esm/client/addon/components/Addon.js +15 -34
- package/lib/esm/client/addon/components/Icons.js +10 -6
- package/lib/esm/client/addon/components/Panel.js +20 -18
- package/lib/esm/client/addon/components/TestSelect.js +19 -23
- package/lib/esm/client/addon/components/Tools.js +33 -49
- package/lib/esm/client/addon/decorator.js +1 -1
- package/lib/esm/client/addon/index.js +2 -0
- package/lib/esm/client/addon/preset.js +2 -56
- package/lib/esm/client/addon/preview.js +5 -0
- package/lib/esm/client/addon/readyForCapture.js +1 -3
- package/lib/esm/client/addon/register.js +41 -67
- package/lib/esm/client/addon/utils.js +3 -7
- package/lib/esm/client/addon/withCreevey.js +142 -388
- package/lib/esm/client/shared/components/ImagesView/BlendView.js +22 -18
- package/lib/esm/client/shared/components/ImagesView/ImagesView.js +27 -25
- package/lib/esm/client/shared/components/ImagesView/SideBySideView.js +43 -63
- package/lib/esm/client/shared/components/ImagesView/SlideView.js +36 -47
- package/lib/esm/client/shared/components/ImagesView/SwapView.js +23 -40
- package/lib/esm/client/shared/components/PageFooter/PageFooter.js +12 -8
- package/lib/esm/client/shared/components/PageFooter/Paging.js +15 -29
- package/lib/esm/client/shared/components/PageHeader/ImagePreview.js +40 -25
- package/lib/esm/client/shared/components/PageHeader/PageHeader.js +38 -66
- package/lib/esm/client/shared/components/ResultsPage.js +39 -75
- package/lib/esm/client/shared/creeveyClientApi.js +56 -90
- package/lib/esm/client/shared/helpers.js +133 -230
- package/lib/esm/client/shared/viewMode.js +4 -4
- package/lib/esm/client/web/192.js +1 -0
- package/lib/esm/client/web/632.js +43 -0
- package/lib/esm/client/web/794.js +1 -0
- package/lib/esm/client/web/index.html +19 -0
- package/lib/esm/client/web/main.js +79 -0
- package/lib/esm/client/web/main.js.LICENSE.txt +34 -0
- package/lib/esm/creevey.js +13 -16
- package/lib/esm/index.js +1 -4
- package/lib/esm/server/config.js +9 -16
- package/lib/esm/server/docker.js +6 -14
- package/lib/esm/server/index.js +8 -22
- package/lib/esm/server/logger.js +0 -1
- package/lib/esm/server/master/api.js +0 -9
- package/lib/esm/server/master/index.js +25 -35
- package/lib/esm/server/master/master.js +2 -7
- package/lib/esm/server/master/pool.js +8 -41
- package/lib/esm/server/master/runner.js +64 -90
- package/lib/esm/server/master/server.js +9 -11
- package/lib/esm/server/messages.js +8 -42
- package/lib/esm/server/selenium/browser.js +147 -163
- package/lib/esm/server/selenium/selenoid.js +16 -27
- package/lib/esm/server/stories.js +34 -46
- package/lib/esm/server/storybook/providers/browser.js +12 -17
- package/lib/esm/server/storybook/providers/hybrid.js +11 -22
- package/lib/esm/server/telemetry.js +160 -0
- package/lib/esm/server/testsFiles/parser.js +0 -6
- package/lib/esm/server/testsFiles/register.js +6 -7
- package/lib/esm/server/update.js +1 -13
- package/lib/esm/server/utils.js +20 -41
- package/lib/esm/server/worker/chai-image.js +0 -21
- package/lib/esm/server/worker/helpers.js +2 -9
- package/lib/esm/server/worker/reporter.js +15 -29
- package/lib/esm/server/worker/worker.js +31 -48
- package/lib/esm/shared/index.js +77 -0
- package/lib/esm/shared/serializeRegExp.js +24 -0
- package/lib/esm/types.js +5 -1
- package/lib/types/client/addon/Manager.d.ts +3 -3
- package/lib/types/client/addon/components/Addon.d.ts +1 -0
- package/lib/types/client/addon/components/Icons.d.ts +1 -0
- package/lib/types/client/addon/components/Panel.d.ts +1 -0
- package/lib/types/client/addon/components/Tools.d.ts +1 -0
- package/lib/types/client/addon/decorator.d.ts +1 -1
- package/lib/types/client/addon/index.d.ts +2 -0
- package/lib/types/client/addon/preset.d.ts +2 -24
- package/lib/types/client/addon/preview.d.ts +4 -0
- package/lib/types/client/addon/utils.d.ts +1 -0
- package/lib/types/client/addon/withCreevey.d.ts +4 -3
- package/lib/types/client/shared/components/ImagesView/BlendView.d.ts +3 -1
- package/lib/types/client/shared/components/ImagesView/SideBySideView.d.ts +3 -1
- package/lib/types/client/shared/components/ImagesView/SlideView.d.ts +3 -1
- package/lib/types/client/shared/components/ImagesView/SwapView.d.ts +3 -1
- package/lib/types/client/shared/components/PageHeader/ImagePreview.d.ts +3 -1
- package/lib/types/client/shared/components/ResultsPage.d.ts +3 -1
- package/lib/types/client/web/CreeveyLoader.d.ts +1 -1
- package/lib/types/client/web/CreeveyView/SideBar/Checkbox.d.ts +6 -3
- package/lib/types/client/web/CreeveyView/SideBar/Search.d.ts +1 -0
- package/lib/types/client/web/CreeveyView/SideBar/SuiteLink.d.ts +19 -14
- package/lib/types/client/web/CreeveyView/SideBar/TestStatusIcon.d.ts +3 -1
- package/lib/types/client/web/CreeveyView/SideBar/TestsStatus.d.ts +3 -1
- package/lib/types/client/web/CreeveyView/SideBar/Toggle.d.ts +1 -0
- package/lib/types/client/web/KeyboardEventsContext.d.ts +4 -2
- package/lib/types/index.d.ts +4 -1
- package/lib/types/server/logger.d.ts +6 -2
- package/lib/types/server/messages.d.ts +14 -12
- package/lib/types/server/selenium/browser.d.ts +5 -3
- package/lib/types/server/storybook/providers/browser.d.ts +2 -4
- package/lib/types/server/storybook/providers/hybrid.d.ts +2 -4
- package/lib/types/server/telemetry.d.ts +2 -0
- package/lib/types/server/utils.d.ts +5 -1
- package/lib/types/shared/index.d.ts +7 -0
- package/lib/types/shared/serializeRegExp.d.ts +9 -0
- package/lib/types/types.d.ts +29 -36
- package/package.json +132 -133
- package/types/global.d.ts +5 -0
- package/lib/cjs/client/web/1.js +0 -13
- package/lib/cjs/client/web/2.js +0 -1
- package/lib/cjs/server/extract.js +0 -50
- 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/storybook/entry.js +0 -68
- package/lib/cjs/server/storybook/helpers.js +0 -165
- package/lib/cjs/server/storybook/providers/nodejs.js +0 -239
- package/lib/cjs/shared.js +0 -124
- package/lib/esm/server/extract.js +0 -34
- 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/storybook/entry.js +0 -44
- package/lib/esm/server/storybook/helpers.js +0 -106
- package/lib/esm/server/storybook/providers/nodejs.js +0 -217
- package/lib/esm/shared.js +0 -93
- 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/storybook/entry.d.ts +0 -18
- package/lib/types/server/storybook/helpers.d.ts +0 -24
- package/lib/types/server/storybook/providers/nodejs.d.ts +0 -9
- package/lib/types/shared.d.ts +0 -16
- package/preset.js +0 -9
- package/storybook-static/stories.json +0 -21
- package/types/mdx.d.ts +0 -6
@@ -0,0 +1,77 @@
|
|
1
|
+
import { mapValues, mergeWith, cloneDeepWith } from 'lodash';
|
2
|
+
import { deserializeRegExp, isSerializedRegExp, isRegExp, serializeRegExp } from './serializeRegExp';
|
3
|
+
|
4
|
+
// NOTE: Copy-paste from storybook/api
|
5
|
+
export const combineParameters = function () {
|
6
|
+
for (var _len = arguments.length, parameterSets = new Array(_len), _key = 0; _key < _len; _key++) {
|
7
|
+
parameterSets[_key] = arguments[_key];
|
8
|
+
}
|
9
|
+
return (
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
11
|
+
mergeWith({}, ...parameterSets, (_, srcValue) => {
|
12
|
+
// Treat arrays as scalars:
|
13
|
+
if (Array.isArray(srcValue)) return srcValue;
|
14
|
+
return undefined;
|
15
|
+
})
|
16
|
+
);
|
17
|
+
};
|
18
|
+
|
19
|
+
// NOTE: Copy-paste from storybook/api
|
20
|
+
export const denormalizeStoryParameters = _ref => {
|
21
|
+
let {
|
22
|
+
globalParameters,
|
23
|
+
kindParameters,
|
24
|
+
stories
|
25
|
+
} = _ref;
|
26
|
+
return mapValues(stories, storyData => ({
|
27
|
+
...storyData,
|
28
|
+
parameters: combineParameters(globalParameters, kindParameters[storyData.kind] ?? {}, storyData.parameters)
|
29
|
+
}));
|
30
|
+
};
|
31
|
+
export const serializeRawStories = stories => {
|
32
|
+
return mapValues(stories, storyData => {
|
33
|
+
const creevey = storyData.parameters.creevey;
|
34
|
+
if (creevey?.skip) {
|
35
|
+
return {
|
36
|
+
...storyData,
|
37
|
+
parameters: {
|
38
|
+
...storyData.parameters,
|
39
|
+
creevey: {
|
40
|
+
...creevey,
|
41
|
+
skip: cloneDeepWith(creevey.skip, value => {
|
42
|
+
if (isRegExp(value)) {
|
43
|
+
return serializeRegExp(value);
|
44
|
+
}
|
45
|
+
return undefined;
|
46
|
+
})
|
47
|
+
}
|
48
|
+
}
|
49
|
+
};
|
50
|
+
}
|
51
|
+
return storyData;
|
52
|
+
});
|
53
|
+
};
|
54
|
+
export const deserializeRawStories = stories => {
|
55
|
+
return mapValues(stories, deserializeStory);
|
56
|
+
};
|
57
|
+
export const deserializeStory = story => {
|
58
|
+
const creevey = story.parameters.creevey;
|
59
|
+
if (creevey?.skip) {
|
60
|
+
return {
|
61
|
+
...story,
|
62
|
+
parameters: {
|
63
|
+
...story.parameters,
|
64
|
+
creevey: {
|
65
|
+
...creevey,
|
66
|
+
skip: cloneDeepWith(creevey.skip, value => {
|
67
|
+
if (isSerializedRegExp(value)) {
|
68
|
+
return deserializeRegExp(value);
|
69
|
+
}
|
70
|
+
return undefined;
|
71
|
+
})
|
72
|
+
}
|
73
|
+
}
|
74
|
+
};
|
75
|
+
}
|
76
|
+
return story;
|
77
|
+
};
|
@@ -0,0 +1,24 @@
|
|
1
|
+
export const isRegExp = exp => {
|
2
|
+
return exp instanceof RegExp;
|
3
|
+
};
|
4
|
+
export const isSerializedRegExp = exp => {
|
5
|
+
return typeof exp === 'object' && exp !== null && Reflect.get(exp, '__regexp') === true;
|
6
|
+
};
|
7
|
+
export const serializeRegExp = exp => {
|
8
|
+
const {
|
9
|
+
source,
|
10
|
+
flags
|
11
|
+
} = exp;
|
12
|
+
return {
|
13
|
+
__regexp: true,
|
14
|
+
source,
|
15
|
+
flags
|
16
|
+
};
|
17
|
+
};
|
18
|
+
export const deserializeRegExp = _ref => {
|
19
|
+
let {
|
20
|
+
source,
|
21
|
+
flags
|
22
|
+
} = _ref;
|
23
|
+
return new RegExp(source, flags);
|
24
|
+
};
|
package/lib/esm/types.js
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
2
2
|
|
3
3
|
/* eslint-enable @typescript-eslint/no-explicit-any */
|
4
|
+
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
6
|
+
|
4
7
|
export function noop() {
|
5
8
|
/* noop */
|
6
9
|
}
|
@@ -15,8 +18,9 @@ export function isObject(x) {
|
|
15
18
|
}
|
16
19
|
export function isString(x) {
|
17
20
|
return typeof x == 'string';
|
18
|
-
}
|
21
|
+
}
|
19
22
|
|
23
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
20
24
|
export function isFunction(x) {
|
21
25
|
return typeof x == 'function';
|
22
26
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { API } from '@storybook/api';
|
2
|
-
import {
|
2
|
+
import { denormalizeStoryParameters } from '../../shared';
|
3
3
|
import { CreeveyStatus, CreeveyUpdate, TestData, TestStatus, StoriesRaw } from '../../types';
|
4
4
|
import { CreeveyClientApi } from '../shared/creeveyClientApi';
|
5
5
|
export declare class CreeveyManager {
|
@@ -24,7 +24,7 @@ export declare class CreeveyManager {
|
|
24
24
|
onImageApprove: (id: string, retry: number, image: string) => void;
|
25
25
|
onStartAllStoryTests: () => void;
|
26
26
|
onStartAllTests: () => void;
|
27
|
-
onSetStories: (data:
|
27
|
+
onSetStories: (data: Parameters<typeof denormalizeStoryParameters>['0']) => void;
|
28
28
|
setActiveBrowser: (browser: string) => void;
|
29
29
|
setSelectedTestId: (testId: string) => void;
|
30
30
|
getStoryTests: (storyId: string) => TestData[];
|
@@ -32,6 +32,6 @@ export declare class CreeveyManager {
|
|
32
32
|
getTestsByStoryIdAndBrowser: (browser: string) => TestData[];
|
33
33
|
getTabTitle: (browser: string) => string;
|
34
34
|
setPanelsTitle: () => void;
|
35
|
-
addStatusesToSideBar():
|
35
|
+
addStatusesToSideBar(): void;
|
36
36
|
addStatusToStoryName(name: string, status: TestStatus | undefined, skip: string | boolean): string;
|
37
37
|
}
|
@@ -1 +1 @@
|
|
1
|
-
export declare const decorators: import("@storybook/addons").MakeDecoratorResult[];
|
1
|
+
export declare const decorators: import("@storybook/preview-api/dist/addons").MakeDecoratorResult[];
|
@@ -1,24 +1,2 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
export declare function config(entry?: string[]): string[];
|
4
|
-
export declare function managerEntries(entry?: string[]): string[];
|
5
|
-
declare global {
|
6
|
-
const __CREEVEY_SERVER_HOST__: string;
|
7
|
-
const __CREEVEY_SERVER_PORT__: number;
|
8
|
-
const __CREEVEY_CLIENT_PORT__: number | null;
|
9
|
-
}
|
10
|
-
export interface CreeveyAddonOptions {
|
11
|
-
creeveyConfigPath?: string;
|
12
|
-
creeveyPreExtract?: string;
|
13
|
-
creeveyHost?: string;
|
14
|
-
creeveyPort?: number;
|
15
|
-
clientPort?: number;
|
16
|
-
configType: string;
|
17
|
-
configDir: string;
|
18
|
-
outputDir: string;
|
19
|
-
skipExtract?: boolean;
|
20
|
-
presets?: {
|
21
|
-
apply: <T>(preset: string) => Promise<T | undefined>;
|
22
|
-
};
|
23
|
-
}
|
24
|
-
export declare function managerWebpack(config: Configuration, options: CreeveyAddonOptions): Promise<Configuration>;
|
1
|
+
export declare const previewAnnotations: string[];
|
2
|
+
export declare const managerEntries: string[];
|
@@ -1,7 +1,8 @@
|
|
1
1
|
import type { PreviewWeb } from '@storybook/preview-web';
|
2
2
|
import type { AnyFramework } from '@storybook/csf';
|
3
3
|
import type { StoryStore } from '@storybook/client-api';
|
4
|
-
import {
|
4
|
+
import { makeDecorator } from '@storybook/preview-api';
|
5
|
+
import { Channel } from '@storybook/channels';
|
5
6
|
import { CaptureOptions, StoriesRaw, StorybookGlobals } from '../../types';
|
6
7
|
declare global {
|
7
8
|
interface Window {
|
@@ -9,7 +10,7 @@ declare global {
|
|
9
10
|
__CREEVEY_SERVER_PORT__: number;
|
10
11
|
__CREEVEY_WORKER_ID__: number;
|
11
12
|
__CREEVEY_GET_STORIES__: () => Promise<StoriesRaw | void>;
|
12
|
-
__CREEVEY_SELECT_STORY__: (storyId: string, kind: string, name: string, shouldWaitForReady: boolean, callback: (response: [error?: string | null, isCaptureCalled?: boolean]) => void) => void
|
13
|
+
__CREEVEY_SELECT_STORY__: (storyId: string, kind: string, name: string, shouldWaitForReady: boolean, callback: (response: [error?: string | null, isCaptureCalled?: boolean]) => void) => Promise<void>;
|
13
14
|
__CREEVEY_UPDATE_GLOBALS__: (globals: StorybookGlobals) => void;
|
14
15
|
__CREEVEY_INSERT_IGNORE_STYLES__: (ignoreElements: string[]) => HTMLStyleElement;
|
15
16
|
__CREEVEY_REMOVE_IGNORE_STYLES__: (ignoreStyles: HTMLStyleElement) => void;
|
@@ -20,5 +21,5 @@ declare global {
|
|
20
21
|
__STORYBOOK_PREVIEW__: PreviewWeb<AnyFramework>;
|
21
22
|
}
|
22
23
|
}
|
23
|
-
export declare function withCreevey():
|
24
|
+
export declare function withCreevey(): ReturnType<typeof makeDecorator>;
|
24
25
|
export declare function capture(options?: CaptureOptions): Promise<void>;
|
@@ -1,3 +1,5 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import { ViewPropsWithTheme } from './ImagesView';
|
3
|
-
export declare const BlendView: React.
|
3
|
+
export declare const BlendView: React.FC<Pick<ViewPropsWithTheme, "diff" | "actual" | "expect"> & {
|
4
|
+
theme?: import("@storybook/theming").Theme | undefined;
|
5
|
+
}>;
|
@@ -1,3 +1,5 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import { ViewPropsWithTheme } from './ImagesView';
|
3
|
-
export declare const SideBySideView: React.
|
3
|
+
export declare const SideBySideView: React.FC<Pick<ViewPropsWithTheme, "diff" | "actual" | "expect"> & {
|
4
|
+
theme?: import("@storybook/theming").Theme | undefined;
|
5
|
+
}>;
|
@@ -1,3 +1,5 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import { ViewPropsWithTheme } from './ImagesView';
|
3
|
-
export declare const SlideView: React.
|
3
|
+
export declare const SlideView: React.FC<Pick<ViewPropsWithTheme, "diff" | "actual" | "expect"> & {
|
4
|
+
theme?: import("@storybook/theming").Theme | undefined;
|
5
|
+
}>;
|
@@ -1,3 +1,5 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import { ViewPropsWithTheme } from './ImagesView';
|
3
|
-
export declare const SwapView: React.
|
3
|
+
export declare const SwapView: React.FC<Pick<ViewPropsWithTheme, "diff" | "actual" | "expect"> & {
|
4
|
+
theme?: import("@storybook/theming").Theme | undefined;
|
5
|
+
}>;
|
@@ -8,5 +8,7 @@ interface ImageSwapProps {
|
|
8
8
|
theme: Theme;
|
9
9
|
error?: boolean;
|
10
10
|
}
|
11
|
-
export declare const ImagePreview: React.
|
11
|
+
export declare const ImagePreview: React.FC<Pick<ImageSwapProps, "error" | "imageName" | "url" | "onClick" | "isActive"> & {
|
12
|
+
theme?: Theme | undefined;
|
13
|
+
}>;
|
12
14
|
export {};
|
@@ -14,5 +14,7 @@ interface TestResultsProps {
|
|
14
14
|
height?: string;
|
15
15
|
}
|
16
16
|
export declare function ResultsPageInternal({ id, path, results, approved, theme, onImageApprove, showTitle, height, }: TestResultsProps): JSX.Element;
|
17
|
-
export declare const ResultsPage: React.
|
17
|
+
export declare const ResultsPage: React.FC<Pick<TestResultsProps, "id" | "results" | "path" | "height" | "approved" | "showTitle" | "onImageApprove"> & {
|
18
|
+
theme?: Theme | undefined;
|
19
|
+
}>;
|
18
20
|
export {};
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import { Theme } from '@storybook/theming';
|
3
|
-
interface
|
3
|
+
interface CheckboxProps {
|
4
4
|
checked?: boolean;
|
5
5
|
onValueChange: (value: boolean) => void;
|
6
6
|
disabled?: boolean;
|
@@ -8,8 +8,11 @@ interface BooleanProps {
|
|
8
8
|
interface CheckboxState {
|
9
9
|
indeterminate: boolean;
|
10
10
|
}
|
11
|
-
export declare const CheckboxContainer: import("@
|
12
|
-
|
11
|
+
export declare const CheckboxContainer: import("@storybook/theming").StyledComponent<{
|
12
|
+
theme?: Theme | undefined;
|
13
|
+
as?: React.ElementType<any> | undefined;
|
14
|
+
}, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
15
|
+
export declare class Checkbox extends React.Component<CheckboxProps, CheckboxState> {
|
13
16
|
state: CheckboxState;
|
14
17
|
handleIndeterminateChange: (value: boolean) => void;
|
15
18
|
setIndeterminate: () => void;
|
@@ -6,28 +6,33 @@ export interface SuiteLinkProps {
|
|
6
6
|
suite: CreeveySuite;
|
7
7
|
'data-testid'?: string;
|
8
8
|
}
|
9
|
-
export declare const Container: React.
|
9
|
+
export declare const Container: React.FC<Pick<{
|
10
|
+
theme?: Theme | undefined;
|
11
|
+
as?: React.ElementType<any> | undefined;
|
12
|
+
} & {
|
10
13
|
theme: Theme;
|
11
14
|
disabled?: boolean | undefined;
|
12
|
-
}
|
15
|
+
} & React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
|
16
|
+
children?: React.ReactNode;
|
17
|
+
}, "as" | keyof React.ClassAttributes<HTMLDivElement> | keyof React.HTMLAttributes<HTMLDivElement> | "disabled"> & {
|
18
|
+
theme?: Theme | undefined;
|
19
|
+
}>;
|
20
|
+
export declare const Button: React.FC<Pick<{
|
13
21
|
theme?: Theme | undefined;
|
22
|
+
as?: React.ElementType<any> | undefined;
|
14
23
|
} & {
|
15
|
-
children?: React.ReactNode;
|
16
|
-
}, "key" | "theme" | keyof React.HTMLAttributes<HTMLDivElement> | "disabled"> & {
|
17
|
-
ref?: React.RefObject<HTMLDivElement> | ((instance: HTMLDivElement | null) => void) | null | undefined;
|
18
|
-
}, "theme">>;
|
19
|
-
export declare const Button: React.SFC<import("emotion-theming/types/helper").AddOptionalTo<Pick<React.ClassAttributes<HTMLButtonElement> & React.ButtonHTMLAttributes<HTMLButtonElement> & Pick<{
|
20
24
|
theme: Theme;
|
21
25
|
active?: boolean | undefined;
|
22
26
|
focused?: boolean | undefined;
|
23
|
-
}
|
27
|
+
} & React.ClassAttributes<HTMLButtonElement> & React.ButtonHTMLAttributes<HTMLButtonElement> & {
|
28
|
+
children?: React.ReactNode;
|
29
|
+
}, "as" | "active" | keyof React.ClassAttributes<HTMLButtonElement> | keyof React.ButtonHTMLAttributes<HTMLButtonElement> | "focused"> & {
|
24
30
|
theme?: Theme | undefined;
|
31
|
+
}>;
|
32
|
+
export declare const SuiteContainer: import("@storybook/theming").StyledComponent<{
|
33
|
+
theme?: Theme | undefined;
|
34
|
+
as?: React.ElementType<any> | undefined;
|
25
35
|
} & {
|
26
|
-
children?: React.ReactNode;
|
27
|
-
}, "key" | "theme" | "active" | keyof React.ButtonHTMLAttributes<HTMLButtonElement> | "focused"> & {
|
28
|
-
ref?: ((instance: HTMLButtonElement | null) => void) | React.RefObject<HTMLButtonElement> | null | undefined;
|
29
|
-
}, "theme">>;
|
30
|
-
export declare const SuiteContainer: import("@emotion/styled-base").StyledComponent<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {
|
31
36
|
padding: number;
|
32
|
-
},
|
37
|
+
}, React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
|
33
38
|
export declare function SuiteLink({ title, suite, 'data-testid': dataTid }: SuiteLinkProps): JSX.Element;
|
@@ -7,4 +7,6 @@ export interface TestStatusIconProps {
|
|
7
7
|
skip?: string | boolean;
|
8
8
|
theme: Theme;
|
9
9
|
}
|
10
|
-
export declare const TestStatusIcon: React.
|
10
|
+
export declare const TestStatusIcon: React.FC<Pick<TestStatusIconProps, "skip" | "status" | "inverted"> & {
|
11
|
+
theme?: Theme | undefined;
|
12
|
+
}>;
|
@@ -6,4 +6,6 @@ export interface TestsStatusProps extends CreeveyTestsStatus {
|
|
6
6
|
onClickByStatus: (value: TestStatus) => void;
|
7
7
|
theme?: Theme;
|
8
8
|
}
|
9
|
-
export declare const TestsStatus: React.
|
9
|
+
export declare const TestsStatus: React.FC<Pick<TestsStatusProps, "successCount" | "failedCount" | "pendingCount" | "skippedCount" | "onClickByStatus"> & {
|
10
|
+
theme?: Theme | undefined;
|
11
|
+
}>;
|
@@ -1,9 +1,11 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import { CreeveySuite } from '../../types';
|
3
3
|
import { CreeveyViewFilter } from '../shared/helpers';
|
4
|
+
export declare type SuitePath = string[];
|
5
|
+
export declare type FocusableItem = null | SuitePath;
|
4
6
|
export interface KeyboardEventsContextType {
|
5
|
-
sidebarFocusedItem:
|
6
|
-
setSidebarFocusedItem: (
|
7
|
+
sidebarFocusedItem: FocusableItem;
|
8
|
+
setSidebarFocusedItem: (item: FocusableItem) => void;
|
7
9
|
}
|
8
10
|
export declare const KeyboardEventsContext: React.Context<KeyboardEventsContextType>;
|
9
11
|
export declare const KeyboardEvents: ({ children, rootSuite, filter, }: {
|
package/lib/types/index.d.ts
CHANGED
@@ -1,3 +1,6 @@
|
|
1
1
|
/// <reference types="../../types/chai" />
|
2
2
|
export * from './types';
|
3
|
-
|
3
|
+
export { loadStories as browserStoriesProvider } from './server/storybook/providers/browser';
|
4
|
+
export { loadStories as nodejsStoriesProvider } from './server/storybook/providers/nodejs';
|
5
|
+
export { loadStories as hybridStoriesProvider } from './server/storybook/providers/hybrid';
|
6
|
+
export * from './server/testsFiles/parser';
|
@@ -1,6 +1,10 @@
|
|
1
|
-
import
|
1
|
+
import chalk from 'chalk';
|
2
2
|
export { getLogger } from 'loglevel';
|
3
3
|
export declare const colors: {
|
4
|
-
|
4
|
+
TRACE: chalk.Chalk;
|
5
|
+
DEBUG: chalk.Chalk;
|
6
|
+
INFO: chalk.Chalk;
|
7
|
+
WARN: chalk.Chalk;
|
8
|
+
ERROR: chalk.Chalk;
|
5
9
|
};
|
6
10
|
export declare const logger: import("loglevel").Logger;
|
@@ -1,5 +1,7 @@
|
|
1
|
+
/// <reference types="webpack-env" />
|
1
2
|
/// <reference types="node" />
|
2
|
-
|
3
|
+
/// <reference types="node" />
|
4
|
+
import { Worker } from 'cluster';
|
3
5
|
import { WorkerMessage, StoriesMessage, TestMessage, WebpackMessage, DockerMessage, WorkerHandler, StoriesHandler, TestHandler, WebpackHandler, DockerHandler, ShutdownHandler } from '../types';
|
4
6
|
export declare function emitWorkerMessage(message: WorkerMessage): boolean;
|
5
7
|
export declare function emitStoriesMessage(message: StoriesMessage): boolean;
|
@@ -7,10 +9,10 @@ export declare function emitTestMessage(message: TestMessage): boolean;
|
|
7
9
|
export declare function emitWebpackMessage(message: WebpackMessage): boolean;
|
8
10
|
export declare function emitDockerMessage(message: DockerMessage): boolean;
|
9
11
|
export declare function emitShutdownMessage(): boolean;
|
10
|
-
export declare function sendStoriesMessage(target: NodeJS.Process |
|
11
|
-
export declare function sendTestMessage(target: NodeJS.Process |
|
12
|
-
export declare function sendDockerMessage(target: NodeJS.Process |
|
13
|
-
export declare function sendShutdownMessage(target: NodeJS.Process |
|
12
|
+
export declare function sendStoriesMessage(target: NodeJS.Process | Worker, message: StoriesMessage): void;
|
13
|
+
export declare function sendTestMessage(target: NodeJS.Process | Worker, message: TestMessage): void;
|
14
|
+
export declare function sendDockerMessage(target: NodeJS.Process | Worker, message: DockerMessage): void;
|
15
|
+
export declare function sendShutdownMessage(target: NodeJS.Process | Worker): void;
|
14
16
|
export declare function subscribeOn(scope: 'worker', handler: WorkerHandler): () => void;
|
15
17
|
export declare function subscribeOn(scope: 'stories', handler: StoriesHandler): () => void;
|
16
18
|
export declare function subscribeOn(scope: 'test', handler: TestHandler): () => void;
|
@@ -18,10 +20,10 @@ export declare function subscribeOn(scope: 'webpack', handler: WebpackHandler):
|
|
18
20
|
export declare function subscribeOn(scope: 'docker', handler: DockerHandler): () => void;
|
19
21
|
export declare function subscribeOn(scope: 'shutdown', handler: ShutdownHandler): () => void;
|
20
22
|
export declare function subscribeOn(scope: 'worker' | 'stories' | 'test' | 'webpack' | 'docker' | 'shutdown', handler: WorkerHandler | StoriesHandler | TestHandler | WebpackHandler | DockerHandler | ShutdownHandler): () => void;
|
21
|
-
export declare function subscribeOnWorker(worker:
|
22
|
-
export declare function subscribeOnWorker(worker:
|
23
|
-
export declare function subscribeOnWorker(worker:
|
24
|
-
export declare function subscribeOnWorker(worker:
|
25
|
-
export declare function subscribeOnWorker(worker:
|
26
|
-
export declare function subscribeOnWorker(worker:
|
27
|
-
export declare function subscribeOnWorker(worker:
|
23
|
+
export declare function subscribeOnWorker(worker: Worker, scope: 'worker', handler: WorkerHandler): () => void;
|
24
|
+
export declare function subscribeOnWorker(worker: Worker, scope: 'stories', handler: StoriesHandler): () => void;
|
25
|
+
export declare function subscribeOnWorker(worker: Worker, scope: 'test', handler: TestHandler): () => void;
|
26
|
+
export declare function subscribeOnWorker(worker: Worker, scope: 'webpack', handler: WebpackHandler): () => void;
|
27
|
+
export declare function subscribeOnWorker(worker: Worker, scope: 'docker', handler: DockerHandler): () => void;
|
28
|
+
export declare function subscribeOnWorker(worker: Worker, scope: 'shutdown', handler: ShutdownHandler): () => void;
|
29
|
+
export declare function subscribeOnWorker(worker: Worker, scope: 'worker' | 'stories' | 'test' | 'webpack' | 'docker' | 'shutdown', handler: WorkerHandler | StoriesHandler | TestHandler | WebpackHandler | DockerHandler | ShutdownHandler): () => void;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { Context } from 'mocha';
|
2
2
|
import { WebDriver } from 'selenium-webdriver';
|
3
|
-
import { Config, StorybookGlobals, StoriesRaw } from '../../types';
|
3
|
+
import { Config, StorybookGlobals, StoriesRaw, Options } from '../../types';
|
4
4
|
declare global {
|
5
5
|
interface Window {
|
6
6
|
__CREEVEY_RESTORE_SCROLL__?: () => void;
|
@@ -11,7 +11,9 @@ declare global {
|
|
11
11
|
}
|
12
12
|
export declare function takeScreenshot(browser: WebDriver, captureElement?: string | null, ignoreElements?: string | string[] | null): Promise<string>;
|
13
13
|
export declare function updateStorybookGlobals(browser: WebDriver, globals: StorybookGlobals): Promise<void>;
|
14
|
-
export declare function loadStoriesFromBrowser(
|
15
|
-
export declare function getBrowser(config: Config,
|
14
|
+
export declare function loadStoriesFromBrowser(): Promise<StoriesRaw>;
|
15
|
+
export declare function getBrowser(config: Config, options: Options & {
|
16
|
+
browser: string;
|
17
|
+
}): Promise<WebDriver | null>;
|
16
18
|
export declare function closeBrowser(): Promise<void>;
|
17
19
|
export declare function switchStory(this: Context): Promise<void>;
|
@@ -1,4 +1,2 @@
|
|
1
|
-
import type {
|
2
|
-
export declare
|
3
|
-
port: number;
|
4
|
-
}, storiesListener: (stories: Map<string, StoryInput[]>) => void): Promise<StoriesRaw>;
|
1
|
+
import type { StoriesProvider } from '../../../types';
|
2
|
+
export declare const loadStories: StoriesProvider;
|
@@ -1,4 +1,2 @@
|
|
1
|
-
import type {
|
2
|
-
export declare
|
3
|
-
port: number;
|
4
|
-
}, storiesListener: (stories: Map<string, StoryInput[]>) => void): Promise<StoriesRaw>;
|
1
|
+
import type { StoriesProvider } from '../../../types';
|
2
|
+
export declare const loadStories: StoriesProvider;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { SkipOptions, TestData } from '../types';
|
1
|
+
import { SkipOptions, SkipOption, TestData } from '../types';
|
2
2
|
export declare const isShuttingDown: {
|
3
3
|
current: boolean;
|
4
4
|
};
|
@@ -9,6 +9,10 @@ export declare function shouldSkip(browser: string, meta: {
|
|
9
9
|
kind: string;
|
10
10
|
story: string;
|
11
11
|
}, skipOptions: SkipOptions, test?: string): string | boolean;
|
12
|
+
export declare function shouldSkipByOption(browser: string, meta: {
|
13
|
+
kind: string;
|
14
|
+
story: string;
|
15
|
+
}, skipOption: SkipOption | SkipOption[], reason: string, test?: string): string | boolean;
|
12
16
|
export declare function shutdownWorkers(): Promise<void>;
|
13
17
|
export declare function shutdown(): void;
|
14
18
|
export declare function getCreeveyCache(): string;
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { Parameters } from '@storybook/csf';
|
2
|
+
import { SetStoriesData, StoriesRaw, StoryInput } from '../types';
|
3
|
+
export declare const combineParameters: (...parameterSets: Parameters[]) => Parameters;
|
4
|
+
export declare const denormalizeStoryParameters: ({ globalParameters, kindParameters, stories, }: SetStoriesData) => StoriesRaw;
|
5
|
+
export declare const serializeRawStories: (stories: StoriesRaw) => StoriesRaw;
|
6
|
+
export declare const deserializeRawStories: (stories: StoriesRaw) => StoriesRaw;
|
7
|
+
export declare const deserializeStory: (story: StoryInput) => StoryInput;
|
@@ -0,0 +1,9 @@
|
|
1
|
+
export interface SerializedRegExp {
|
2
|
+
__regexp: true;
|
3
|
+
source: string;
|
4
|
+
flags: string;
|
5
|
+
}
|
6
|
+
export declare const isRegExp: (exp: unknown) => exp is RegExp;
|
7
|
+
export declare const isSerializedRegExp: (exp: unknown) => exp is SerializedRegExp;
|
8
|
+
export declare const serializeRegExp: (exp: RegExp) => SerializedRegExp;
|
9
|
+
export declare const deserializeRegExp: ({ source, flags }: SerializedRegExp) => RegExp;
|