creevey 0.9.0-beta.13 → 0.9.0-beta.14
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/lib/cjs/cli.js +1 -0
- package/lib/cjs/client/addon/Manager.js +151 -223
- package/lib/cjs/client/addon/components/Addon.js +2 -9
- package/lib/cjs/client/addon/components/Icons.js +1 -7
- package/lib/cjs/client/addon/components/Panel.js +5 -18
- package/lib/cjs/client/addon/components/TestSelect.js +12 -25
- package/lib/cjs/client/addon/components/Tools.js +17 -28
- package/lib/cjs/client/addon/decorator.js +1 -4
- package/lib/cjs/client/addon/index.js +0 -4
- package/lib/cjs/client/addon/preset.js +3 -12
- package/lib/cjs/client/addon/preview.js +1 -4
- package/lib/cjs/client/addon/readyForCapture.js +1 -4
- package/lib/cjs/client/addon/register.js +11 -26
- package/lib/cjs/client/addon/utils.js +1 -9
- package/lib/cjs/client/addon/withCreevey.js +55 -134
- package/lib/cjs/client/shared/components/ImagesView/BlendView.js +5 -17
- package/lib/cjs/client/shared/components/ImagesView/ImagesView.js +8 -24
- package/lib/cjs/client/shared/components/ImagesView/SideBySideView.js +7 -23
- package/lib/cjs/client/shared/components/ImagesView/SlideView.js +7 -22
- package/lib/cjs/client/shared/components/ImagesView/SwapView.js +5 -17
- package/lib/cjs/client/shared/components/ImagesView/index.js +0 -5
- package/lib/cjs/client/shared/components/PageFooter/PageFooter.js +1 -8
- package/lib/cjs/client/shared/components/PageFooter/Paging.js +2 -19
- package/lib/cjs/client/shared/components/PageHeader/ImagePreview.js +21 -17
- package/lib/cjs/client/shared/components/PageHeader/PageHeader.js +5 -24
- package/lib/cjs/client/shared/components/ResultsPage.js +9 -37
- package/lib/cjs/client/shared/creeveyClientApi.js +3 -13
- package/lib/cjs/client/shared/helpers.js +21 -75
- package/lib/cjs/client/shared/viewMode.js +2 -6
- 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 +78 -1
- package/lib/cjs/client/web/main.js.LICENSE.txt +0 -15
- package/lib/cjs/creevey.js +5 -21
- package/lib/cjs/index.js +0 -15
- package/lib/cjs/server/config.js +13 -33
- package/lib/cjs/server/docker.js +5 -27
- package/lib/cjs/server/index.js +8 -33
- package/lib/cjs/server/logger.js +5 -19
- package/lib/cjs/server/master/api.js +1 -14
- package/lib/cjs/server/master/index.js +15 -46
- package/lib/cjs/server/master/master.js +6 -21
- package/lib/cjs/server/master/pool.js +2 -37
- package/lib/cjs/server/master/runner.js +15 -42
- package/lib/cjs/server/master/server.js +5 -27
- package/lib/cjs/server/messages.js +7 -53
- package/lib/cjs/server/selenium/browser.js +51 -136
- package/lib/cjs/server/selenium/index.js +0 -4
- package/lib/cjs/server/selenium/selenoid.js +7 -33
- package/lib/cjs/server/stories.js +25 -30
- package/lib/cjs/server/storybook/providers/browser.js +5 -18
- package/lib/cjs/server/storybook/providers/hybrid.js +9 -29
- package/lib/cjs/server/testsFiles/parser.js +3 -19
- package/lib/cjs/server/testsFiles/register.js +7 -9
- package/lib/cjs/server/update.js +3 -20
- package/lib/cjs/server/utils.js +9 -41
- 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 +8 -24
- package/lib/cjs/server/worker/worker.js +5 -49
- package/lib/cjs/shared/index.js +22 -36
- package/lib/cjs/shared/serializeRegExp.js +0 -8
- package/lib/cjs/types.js +4 -14
- package/lib/esm/cli.js +1 -1
- package/lib/esm/client/addon/Manager.js +151 -214
- package/lib/esm/client/addon/components/Panel.js +4 -6
- package/lib/esm/client/addon/components/TestSelect.js +11 -17
- package/lib/esm/client/addon/components/Tools.js +15 -14
- package/lib/esm/client/addon/preset.js +2 -8
- package/lib/esm/client/addon/readyForCapture.js +1 -3
- package/lib/esm/client/addon/register.js +6 -8
- package/lib/esm/client/addon/utils.js +0 -5
- package/lib/esm/client/addon/withCreevey.js +54 -116
- package/lib/esm/client/shared/components/ImagesView/BlendView.js +1 -1
- package/lib/esm/client/shared/components/ImagesView/ImagesView.js +6 -8
- package/lib/esm/client/shared/components/ImagesView/SideBySideView.js +3 -4
- package/lib/esm/client/shared/components/ImagesView/SlideView.js +3 -3
- package/lib/esm/client/shared/components/ImagesView/SwapView.js +1 -1
- package/lib/esm/client/shared/components/PageFooter/Paging.js +1 -11
- package/lib/esm/client/shared/components/PageHeader/ImagePreview.js +18 -7
- package/lib/esm/client/shared/components/PageHeader/PageHeader.js +3 -8
- package/lib/esm/client/shared/components/ResultsPage.js +6 -15
- package/lib/esm/client/shared/creeveyClientApi.js +3 -10
- package/lib/esm/client/shared/helpers.js +21 -47
- 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 +4 -8
- package/lib/esm/index.js +0 -1
- package/lib/esm/server/config.js +7 -14
- package/lib/esm/server/docker.js +4 -12
- package/lib/esm/server/index.js +7 -21
- package/lib/esm/server/logger.js +0 -1
- package/lib/esm/server/master/api.js +0 -9
- package/lib/esm/server/master/index.js +15 -32
- package/lib/esm/server/master/master.js +2 -7
- package/lib/esm/server/master/pool.js +0 -23
- package/lib/esm/server/master/runner.js +14 -27
- package/lib/esm/server/master/server.js +4 -9
- package/lib/esm/server/messages.js +6 -38
- package/lib/esm/server/selenium/browser.js +50 -114
- package/lib/esm/server/selenium/selenoid.js +6 -17
- package/lib/esm/server/stories.js +24 -20
- package/lib/esm/server/storybook/providers/browser.js +4 -8
- package/lib/esm/server/storybook/providers/hybrid.js +6 -14
- package/lib/esm/server/testsFiles/parser.js +0 -6
- package/lib/esm/server/testsFiles/register.js +5 -2
- package/lib/esm/server/update.js +0 -8
- package/lib/esm/server/utils.js +3 -11
- 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 +7 -10
- package/lib/esm/server/worker/worker.js +4 -25
- package/lib/esm/shared/index.js +24 -25
- package/lib/esm/types.js +4 -1
- package/lib/types/client/addon/Manager.d.ts +1 -1
- 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/TestSelect.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/preset.d.ts +2 -2
- package/lib/types/client/addon/preview.d.ts +1 -1
- package/lib/types/client/addon/withCreevey.d.ts +3 -2
- package/lib/types/client/shared/components/ImagesView/BlendView.d.ts +3 -1
- package/lib/types/client/shared/components/ImagesView/ImagesView.d.ts +1 -0
- 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/PageFooter/PageFooter.d.ts +1 -0
- package/lib/types/client/shared/components/PageFooter/Paging.d.ts +1 -0
- package/lib/types/client/shared/components/PageHeader/ImagePreview.d.ts +3 -1
- package/lib/types/client/shared/components/PageHeader/PageHeader.d.ts +1 -0
- package/lib/types/client/shared/components/ResultsPage.d.ts +3 -1
- package/lib/types/client/web/CreeveyApp.d.ts +1 -0
- package/lib/types/client/web/CreeveyLoader.d.ts +2 -1
- package/lib/types/client/web/CreeveyView/SideBar/Checkbox.d.ts +4 -1
- package/lib/types/client/web/CreeveyView/SideBar/Search.d.ts +1 -0
- package/lib/types/client/web/CreeveyView/SideBar/SideBarHeader.d.ts +1 -0
- package/lib/types/client/web/CreeveyView/SideBar/SuiteLink.d.ts +19 -14
- package/lib/types/client/web/CreeveyView/SideBar/TestLink.d.ts +1 -0
- 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/shared/index.d.ts +1 -1
- package/lib/types/types.d.ts +7 -28
- package/package.json +60 -78
- package/lib/cjs/client/addon/preset.ie11.js +0 -74
- package/lib/cjs/client/addon/preset.sb7.js +0 -19
- package/lib/cjs/client/web/142.js +0 -2
- package/lib/cjs/client/web/142.js.LICENSE.txt +0 -12
- package/lib/cjs/client/web/32.js +0 -1
- package/lib/cjs/client/web/551.js +0 -1
- package/lib/cjs/client/web/566.js +0 -2
- package/lib/cjs/client/web/566.js.LICENSE.txt +0 -31
- package/lib/cjs/client/web/691.js +0 -2
- package/lib/cjs/client/web/691.js.LICENSE.txt +0 -8
- package/lib/cjs/client/web/725.js +0 -1
- package/lib/cjs/server/extract.js +0 -46
- package/lib/cjs/server/loaders/babel/creevey-plugin.js +0 -86
- package/lib/cjs/server/loaders/babel/helpers.js +0 -469
- package/lib/cjs/server/loaders/babel/register.js +0 -124
- 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 -269
- package/lib/cjs/server/loaders/webpack/creevey-loader.js +0 -172
- package/lib/cjs/server/loaders/webpack/dummy-hmr.js +0 -39
- 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 -53
- package/lib/cjs/server/storybook/helpers.js +0 -158
- package/lib/cjs/server/storybook/providers/nodejs.js +0 -239
- package/lib/esm/client/addon/preset.ie11.js +0 -59
- package/lib/esm/client/addon/preset.sb7.js +0 -8
- package/lib/esm/server/extract.js +0 -32
- package/lib/esm/server/loaders/babel/creevey-plugin.js +0 -72
- package/lib/esm/server/loaders/babel/helpers.js +0 -452
- package/lib/esm/server/loaders/babel/register.js +0 -103
- 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 -246
- package/lib/esm/server/loaders/webpack/creevey-loader.js +0 -152
- package/lib/esm/server/loaders/webpack/dummy-hmr.js +0 -32
- 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 -27
- package/lib/esm/server/storybook/helpers.js +0 -97
- package/lib/esm/server/storybook/providers/nodejs.js +0 -216
- package/lib/types/client/addon/preset.ie11.d.ts +0 -10
- package/lib/types/client/addon/preset.sb7.d.ts +0 -2
- 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 -4
- 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 -17
- package/lib/types/server/storybook/helpers.d.ts +0 -24
- package/lib/types/server/storybook/providers/nodejs.d.ts +0 -9
- package/preset/ie11.js +0 -5
- package/preset/index.js +0 -9
- package/preset/sb7.js +0 -5
- package/types/mdx.d.ts +0 -7
@@ -4,25 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.Tools = void 0;
|
7
|
-
|
8
7
|
var _react = _interopRequireWildcard(require("react"));
|
9
|
-
|
10
8
|
var _components = require("@storybook/components");
|
11
|
-
|
12
9
|
var _Icons = require("./Icons");
|
13
|
-
|
14
10
|
var _qs = require("qs");
|
15
|
-
|
16
11
|
var _theming = require("@storybook/theming");
|
17
|
-
|
18
12
|
var _types = require("../../../types");
|
19
|
-
|
20
13
|
var _helpers = require("../../shared/helpers");
|
21
|
-
|
22
|
-
function
|
23
|
-
|
24
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
25
|
-
|
14
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
15
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
26
16
|
const Button = (0, _theming.styled)(_components.IconButton)({
|
27
17
|
'&:disabled': {
|
28
18
|
opacity: 0.5,
|
@@ -32,7 +22,6 @@ const Button = (0, _theming.styled)(_components.IconButton)({
|
|
32
22
|
color: 'inherit'
|
33
23
|
}
|
34
24
|
});
|
35
|
-
|
36
25
|
const Tools = _ref => {
|
37
26
|
let {
|
38
27
|
manager
|
@@ -57,29 +46,30 @@ const Tools = _ref => {
|
|
57
46
|
return unsubscribe;
|
58
47
|
}, [manager]);
|
59
48
|
if (!test) return null;
|
60
|
-
|
61
49
|
function renderButton(type, title, onClick, icon) {
|
62
50
|
const handleClick = () => {
|
63
51
|
setButtonClicked(type);
|
64
52
|
onClick();
|
65
53
|
};
|
66
|
-
|
67
54
|
const disabled = isRunning && buttonClicked != null && buttonClicked !== type;
|
68
|
-
return
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
55
|
+
return (
|
56
|
+
/*#__PURE__*/
|
57
|
+
// @ts-expect-error Fixed in https://github.com/storybookjs/storybook/pull/26623
|
58
|
+
_react.default.createElement(Button, {
|
59
|
+
onClick: () => {
|
60
|
+
isRunning ? manager.onStop() : handleClick();
|
61
|
+
},
|
62
|
+
title: disabled ? '' : title,
|
63
|
+
disabled: disabled
|
64
|
+
}, buttonClicked === type && isRunning ? /*#__PURE__*/_react.default.createElement(_components.Icons, {
|
65
|
+
icon: 'stop'
|
66
|
+
}) : icon)
|
67
|
+
);
|
77
68
|
}
|
78
|
-
|
79
69
|
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_components.IconButton, {
|
80
|
-
href:
|
70
|
+
href: `http://localhost:${__CREEVEY_CLIENT_PORT__ || __CREEVEY_SERVER_PORT__ || 3000}/?${(0, _qs.stringify)({
|
81
71
|
testPath: (0, _helpers.getTestPath)(test)
|
82
|
-
})
|
72
|
+
})}`,
|
83
73
|
target: "_blank",
|
84
74
|
title: "Show in Creevey UI"
|
85
75
|
}, /*#__PURE__*/_react.default.createElement(_components.Icons, {
|
@@ -91,5 +81,4 @@ const Tools = _ref => {
|
|
91
81
|
icon: "play"
|
92
82
|
})));
|
93
83
|
};
|
94
|
-
|
95
84
|
exports.Tools = Tools;
|
@@ -4,8 +4,5 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.decorators = void 0;
|
7
|
-
|
8
7
|
var _withCreevey = require("./withCreevey");
|
9
|
-
|
10
|
-
const decorators = [(0, _withCreevey.withCreevey)()];
|
11
|
-
exports.decorators = decorators;
|
8
|
+
const decorators = exports.decorators = [(0, _withCreevey.withCreevey)()];
|
@@ -3,9 +3,7 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
|
7
6
|
var _withCreevey = require("./withCreevey");
|
8
|
-
|
9
7
|
Object.keys(_withCreevey).forEach(function (key) {
|
10
8
|
if (key === "default" || key === "__esModule") return;
|
11
9
|
if (key in exports && exports[key] === _withCreevey[key]) return;
|
@@ -16,9 +14,7 @@ Object.keys(_withCreevey).forEach(function (key) {
|
|
16
14
|
}
|
17
15
|
});
|
18
16
|
});
|
19
|
-
|
20
17
|
var _readyForCapture = require("./readyForCapture");
|
21
|
-
|
22
18
|
Object.keys(_readyForCapture).forEach(function (key) {
|
23
19
|
if (key === "default" || key === "__esModule") return;
|
24
20
|
if (key in exports && exports[key] === _readyForCapture[key]) return;
|
@@ -3,15 +3,6 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
exports.
|
7
|
-
exports.
|
8
|
-
|
9
|
-
function config() {
|
10
|
-
let entry = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
11
|
-
return [...entry, require.resolve('./decorator')];
|
12
|
-
}
|
13
|
-
|
14
|
-
function managerEntries() {
|
15
|
-
let entry = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
16
|
-
return [...entry, require.resolve('./register')];
|
17
|
-
}
|
6
|
+
exports.previewAnnotations = exports.managerEntries = void 0;
|
7
|
+
const previewAnnotations = exports.previewAnnotations = [require.resolve('./preview')];
|
8
|
+
const managerEntries = exports.managerEntries = [require.resolve('./register')];
|
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.default = void 0;
|
7
|
-
|
8
7
|
var _withCreevey = require("./withCreevey");
|
9
|
-
|
10
8
|
const preview = {
|
11
9
|
decorators: [(0, _withCreevey.withCreevey)()]
|
12
10
|
};
|
13
|
-
var _default = preview;
|
14
|
-
exports.default = _default;
|
11
|
+
var _default = exports.default = preview;
|
@@ -4,9 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.readyForCapture = readyForCapture;
|
7
|
-
|
8
7
|
function readyForCapture() {
|
9
|
-
|
10
|
-
|
11
|
-
(_window$__CREEVEY_SET = (_window = window).__CREEVEY_SET_READY_FOR_CAPTURE__) === null || _window$__CREEVEY_SET === void 0 ? void 0 : _window$__CREEVEY_SET.call(_window);
|
8
|
+
window.__CREEVEY_SET_READY_FOR_CAPTURE__?.();
|
12
9
|
}
|
@@ -5,64 +5,49 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.ADDON_ID = void 0;
|
7
7
|
exports.registerCreeveyPanels = registerCreeveyPanels;
|
8
|
-
|
9
|
-
var _addons = require("@storybook/addons");
|
10
|
-
|
8
|
+
var _managerApi = require("@storybook/manager-api");
|
11
9
|
var _react = _interopRequireDefault(require("react"));
|
12
|
-
|
13
10
|
var _Addon = require("./components/Addon");
|
14
|
-
|
15
11
|
var _Tools = require("./components/Tools");
|
16
|
-
|
17
12
|
var _Manager = require("./Manager");
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
const ADDON_ID = 'creevey';
|
22
|
-
exports.ADDON_ID = ADDON_ID;
|
23
|
-
|
24
|
-
_addons.addons.register(ADDON_ID, api => {
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
14
|
+
const ADDON_ID = exports.ADDON_ID = 'creevey';
|
15
|
+
_managerApi.addons.register(ADDON_ID, api => {
|
25
16
|
void registerCreeveyPanels(api);
|
26
17
|
});
|
27
|
-
|
28
18
|
async function registerCreeveyPanels(storybookApi) {
|
29
19
|
const manager = new _Manager.CreeveyManager(storybookApi);
|
30
|
-
|
31
|
-
|
32
|
-
title: "Creevey/Run",
|
20
|
+
_managerApi.addons.add(`${ADDON_ID}/panel/run`, {
|
21
|
+
title: `Creevey/Run`,
|
33
22
|
match: _ref => {
|
34
23
|
let {
|
35
24
|
viewMode
|
36
25
|
} = _ref;
|
37
26
|
return !!(viewMode && /^story$/.exec(viewMode));
|
38
27
|
},
|
39
|
-
type:
|
28
|
+
type: _managerApi.types.TOOL,
|
40
29
|
// eslint-disable-next-line react/display-name
|
41
30
|
render: () => /*#__PURE__*/_react.default.createElement(_Tools.Tools, {
|
42
31
|
manager
|
43
32
|
})
|
44
33
|
});
|
45
|
-
|
46
34
|
await manager.initAll();
|
47
35
|
const browsers = manager.getBrowsers();
|
48
36
|
browsers.forEach(browser => {
|
49
|
-
const panelId =
|
37
|
+
const panelId = `${ADDON_ID}/panel/${browser}`;
|
50
38
|
const title = manager.getTabTitle(browser);
|
51
|
-
|
52
|
-
_addons.addons.addPanel(panelId, {
|
39
|
+
_managerApi.addons.add(panelId, {
|
53
40
|
title,
|
54
|
-
type:
|
41
|
+
type: _managerApi.types.PANEL,
|
55
42
|
paramKey: browser,
|
56
43
|
// NOTE key = PANEL_ID needs to correct render button in addons panel
|
57
44
|
// eslint-disable-next-line react/display-name
|
58
45
|
render: _ref2 => {
|
59
46
|
let {
|
60
|
-
active
|
61
|
-
key
|
47
|
+
active
|
62
48
|
} = _ref2;
|
63
49
|
return /*#__PURE__*/_react.default.createElement(_Addon.Addon, {
|
64
50
|
active,
|
65
|
-
key,
|
66
51
|
manager,
|
67
52
|
browser
|
68
53
|
});
|
@@ -5,31 +5,25 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.getEmojiByTestStatus = getEmojiByTestStatus;
|
7
7
|
exports.isInternetExplorer = void 0;
|
8
|
-
|
9
8
|
function getEmojiByTestStatus(status) {
|
10
9
|
let skip = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
11
|
-
|
12
10
|
switch (status) {
|
13
11
|
case 'failed':
|
14
12
|
{
|
15
13
|
return '❌';
|
16
14
|
}
|
17
|
-
|
18
15
|
case 'success':
|
19
16
|
{
|
20
17
|
return '✔';
|
21
18
|
}
|
22
|
-
|
23
19
|
case 'running':
|
24
20
|
{
|
25
21
|
return '🟡';
|
26
22
|
}
|
27
|
-
|
28
23
|
case 'pending':
|
29
24
|
{
|
30
25
|
return '🕗';
|
31
26
|
}
|
32
|
-
|
33
27
|
default:
|
34
28
|
{
|
35
29
|
if (skip) return '⏸';
|
@@ -37,6 +31,4 @@ function getEmojiByTestStatus(status) {
|
|
37
31
|
}
|
38
32
|
}
|
39
33
|
}
|
40
|
-
|
41
|
-
const isInternetExplorer = navigator.userAgent.includes('Trident/');
|
42
|
-
exports.isInternetExplorer = isInternetExplorer;
|
34
|
+
const isInternetExplorer = exports.isInternetExplorer = navigator.userAgent.includes('Trident/');
|
@@ -5,40 +5,26 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.capture = capture;
|
7
7
|
exports.withCreevey = withCreevey;
|
8
|
-
|
9
8
|
var Events = _interopRequireWildcard(require("@storybook/core-events"));
|
10
|
-
|
11
|
-
var polyfill = _interopRequireWildcard(require("event-source-polyfill"));
|
12
|
-
|
13
|
-
var _addons = require("@storybook/addons");
|
14
|
-
|
9
|
+
var _previewApi = require("@storybook/preview-api");
|
15
10
|
var _types = require("../../types");
|
16
|
-
|
17
11
|
var _shared = require("../../shared");
|
18
|
-
|
19
12
|
var _helpers = require("../shared/helpers");
|
20
|
-
|
21
|
-
function
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
NativeEventSource,
|
34
|
-
EventSourcePolyfill
|
35
|
-
} = polyfill; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
36
|
-
|
37
|
-
window.EventSource = NativeEventSource || EventSourcePolyfill;
|
13
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
14
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
15
|
+
const disableAnimationsStyles = `
|
16
|
+
*,
|
17
|
+
*:hover,
|
18
|
+
*::before,
|
19
|
+
*::after {
|
20
|
+
animation-delay: -0.0001ms !important;
|
21
|
+
animation-duration: 0s !important;
|
22
|
+
animation-play-state: paused !important;
|
23
|
+
cursor: none !important;
|
24
|
+
caret-color: transparent !important;
|
25
|
+
transition: 0s !important;
|
38
26
|
}
|
39
|
-
|
40
|
-
const disableAnimationsStyles = "\n*,\n*:hover,\n*::before,\n*::after {\n animation-delay: -0.0001ms !important;\n animation-duration: 0s !important;\n animation-play-state: paused !important;\n cursor: none !important;\n caret-color: transparent !important;\n transition: 0s !important;\n}\n";
|
41
|
-
|
27
|
+
`;
|
42
28
|
async function resetCurrentStory(channel) {
|
43
29
|
setTimeout(() => channel.emit(Events.SET_CURRENT_STORY, {
|
44
30
|
storyId: true,
|
@@ -47,11 +33,9 @@ async function resetCurrentStory(channel) {
|
|
47
33
|
}), 0);
|
48
34
|
return new Promise(resolve => channel.once(Events.STORY_MISSING, resolve));
|
49
35
|
}
|
50
|
-
|
51
36
|
function catchRenderError(channel) {
|
52
37
|
let rejectCallback;
|
53
38
|
const promise = new Promise((_resolve, reject) => rejectCallback = reject);
|
54
|
-
|
55
39
|
function errorHandler(_ref) {
|
56
40
|
let {
|
57
41
|
title,
|
@@ -62,65 +46,51 @@ function catchRenderError(channel) {
|
|
62
46
|
stack: description
|
63
47
|
});
|
64
48
|
}
|
65
|
-
|
66
49
|
function exceptionHandler(exception) {
|
67
50
|
rejectCallback(exception);
|
68
51
|
}
|
69
|
-
|
70
52
|
function removeHandlers() {
|
71
53
|
channel.off(Events.STORY_ERRORED, errorHandler);
|
72
54
|
channel.off(Events.STORY_THREW_EXCEPTION, errorHandler);
|
73
55
|
}
|
74
|
-
|
75
56
|
channel.once(Events.STORY_ERRORED, errorHandler);
|
76
57
|
channel.once(Events.STORY_THREW_EXCEPTION, exceptionHandler);
|
77
58
|
return Object.assign(promise, {
|
78
59
|
cancel: removeHandlers
|
79
60
|
});
|
80
61
|
}
|
81
|
-
|
82
62
|
function waitForStoryRendered(channel) {
|
83
63
|
let resolveCallback;
|
84
64
|
const promise = new Promise(resolve => resolveCallback = resolve);
|
85
|
-
|
86
65
|
function renderHandler() {
|
87
66
|
resolveCallback();
|
88
67
|
}
|
89
|
-
|
90
68
|
function removeHandlers() {
|
91
69
|
channel.off(Events.STORY_RENDERED, renderHandler);
|
92
70
|
}
|
93
|
-
|
94
71
|
channel.once(Events.STORY_RENDERED, renderHandler);
|
95
72
|
return Object.assign(promise, {
|
96
73
|
cancel: removeHandlers
|
97
74
|
});
|
98
75
|
}
|
99
|
-
|
100
76
|
function waitForFontsLoaded() {
|
101
77
|
if (!document.fonts) return;
|
102
78
|
const areFontsLoading = Array.from(document.fonts).some(font => font.status == 'loading');
|
103
|
-
|
104
79
|
if (areFontsLoading) {
|
105
80
|
return new Promise(resolve => {
|
106
81
|
const fontsLoadedHandler = () => {
|
107
82
|
document.fonts.removeEventListener('loadingdone', fontsLoadedHandler);
|
108
83
|
resolve();
|
109
84
|
};
|
110
|
-
|
111
85
|
document.fonts.addEventListener('loadingdone', fontsLoadedHandler);
|
112
86
|
});
|
113
87
|
}
|
114
88
|
}
|
115
|
-
|
116
89
|
function waitForCaptureCall() {
|
117
90
|
return new Promise(resolve => captureResolver = resolve);
|
118
91
|
}
|
119
|
-
|
120
92
|
function initCreeveyState() {
|
121
|
-
|
122
|
-
|
123
|
-
const prevState = JSON.parse((_window$localStorage$ = window.localStorage.getItem('Creevey_Tests')) !== null && _window$localStorage$ !== void 0 ? _window$localStorage$ : '{}');
|
93
|
+
const prevState = JSON.parse(window.localStorage.getItem('Creevey_Tests') ?? '{}');
|
124
94
|
if (prevState.creeveyHost) window.__CREEVEY_SERVER_HOST__ = prevState.creeveyHost;
|
125
95
|
if (prevState.creeveyPort) window.__CREEVEY_SERVER_PORT__ = prevState.creeveyPort;
|
126
96
|
if (prevState.setStoriesCounter) setStoriesCounter = prevState.setStoriesCounter;
|
@@ -134,18 +104,16 @@ function initCreeveyState() {
|
|
134
104
|
}));
|
135
105
|
});
|
136
106
|
}
|
137
|
-
|
138
107
|
let isTestBrowser = false;
|
139
108
|
let captureResolver;
|
140
109
|
let waitForCreevey;
|
141
110
|
let creeveyReady;
|
142
111
|
let setStoriesCounter = 0;
|
143
|
-
|
144
112
|
function withCreevey() {
|
113
|
+
const addonsChannel = () => window.__STORYBOOK_ADDONS_CHANNEL__;
|
145
114
|
let currentStory = '';
|
146
115
|
let isAnimationDisabled = false;
|
147
116
|
initCreeveyState();
|
148
|
-
|
149
117
|
function disableAnimation() {
|
150
118
|
isAnimationDisabled = true;
|
151
119
|
const style = document.createElement('style');
|
@@ -154,50 +122,30 @@ function withCreevey() {
|
|
154
122
|
style.appendChild(textNode);
|
155
123
|
document.head.appendChild(style);
|
156
124
|
}
|
157
|
-
|
158
125
|
async function getStories() {
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
await store.cacheAllCSFFiles();
|
166
|
-
|
167
|
-
_addons.addons.getChannel().emit(Events.SET_STORIES, store.getSetStoriesPayload());
|
168
|
-
} else return;
|
169
|
-
|
170
|
-
_addons.addons.getChannel().on(Events.SET_STORIES, data => {
|
171
|
-
// TODO Figure out how to get only updated stories
|
172
|
-
// TODO Subscribe on hmr? like use dummy-hmr
|
173
|
-
setStoriesCounter += 1;
|
174
|
-
const stories = (0, _shared.serializeRawStories)((0, _shared.denormalizeStoryParameters)(data));
|
175
|
-
const storiesByFiles = new Map();
|
176
|
-
Object.values(stories).forEach(story => {
|
177
|
-
const storiesFromFile = storiesByFiles.get(story.parameters.fileName);
|
178
|
-
if (storiesFromFile) storiesFromFile.push(story);else storiesByFiles.set(story.parameters.fileName, [story]);
|
179
|
-
});
|
180
|
-
void fetch("http://".concat((0, _helpers.getConnectionUrl)(), "/stories"), {
|
181
|
-
method: 'POST',
|
182
|
-
headers: {
|
183
|
-
'Content-Type': 'application/json'
|
184
|
-
},
|
185
|
-
body: JSON.stringify({
|
186
|
-
setStoriesCounter,
|
187
|
-
stories: [...storiesByFiles.entries()]
|
188
|
-
})
|
189
|
-
});
|
126
|
+
const stories = (0, _shared.serializeRawStories)(await window.__STORYBOOK_PREVIEW__.extract());
|
127
|
+
const storiesByFiles = new Map();
|
128
|
+
Object.values(stories).forEach(story => {
|
129
|
+
const fileName = story.parameters.fileName;
|
130
|
+
const storiesFromFile = storiesByFiles.get(fileName);
|
131
|
+
if (storiesFromFile) storiesFromFile.push(story);else storiesByFiles.set(fileName, [story]);
|
190
132
|
});
|
191
|
-
|
192
|
-
|
133
|
+
void fetch(`http://${(0, _helpers.getConnectionUrl)()}/stories`, {
|
134
|
+
method: 'POST',
|
135
|
+
headers: {
|
136
|
+
'Content-Type': 'application/json'
|
137
|
+
},
|
138
|
+
body: JSON.stringify({
|
139
|
+
setStoriesCounter,
|
140
|
+
stories: [...storiesByFiles.entries()]
|
141
|
+
})
|
142
|
+
});
|
143
|
+
return stories;
|
193
144
|
}
|
194
|
-
|
195
145
|
async function selectStory(storyId, kind, name, shouldWaitForReady, callback) {
|
196
146
|
if (!isAnimationDisabled) disableAnimation();
|
197
147
|
isTestBrowser = true;
|
198
|
-
|
199
|
-
const channel = _addons.addons.getChannel();
|
200
|
-
|
148
|
+
const channel = addonsChannel();
|
201
149
|
const waitForReady = shouldWaitForReady ? new Promise(resolve => window.__CREEVEY_SET_READY_FOR_CAPTURE__ = resolve) : Promise.resolve();
|
202
150
|
if (storyId == currentStory) await resetCurrentStory(channel);else currentStory = storyId;
|
203
151
|
let isCaptureCalled = false;
|
@@ -209,7 +157,6 @@ function withCreevey() {
|
|
209
157
|
name,
|
210
158
|
kind
|
211
159
|
}), 0);
|
212
|
-
|
213
160
|
try {
|
214
161
|
await Promise.race([(async () => {
|
215
162
|
await Promise.race([renderPromise, capturePromise]);
|
@@ -218,47 +165,48 @@ function withCreevey() {
|
|
218
165
|
})(), errorPromise]);
|
219
166
|
callback([null, isCaptureCalled]);
|
220
167
|
} catch (reason) {
|
221
|
-
var _reason$stack;
|
222
|
-
|
223
168
|
// NOTE Event `STORY_THREW_EXCEPTION` triggered only in react and vue frameworks and return Error instance
|
224
169
|
// NOTE Event `STORY_ERRORED` return error-like object without `name` field
|
225
|
-
const errorMessage = reason instanceof Error ?
|
170
|
+
const errorMessage = reason instanceof Error ? reason.stack ?? reason.message : (0, _types.isObject)(reason) ? `${reason.message}\n ${reason.stack}` : reason;
|
226
171
|
callback([errorMessage]);
|
227
172
|
} finally {
|
228
173
|
renderPromise.cancel();
|
229
174
|
errorPromise.cancel();
|
230
175
|
}
|
231
176
|
}
|
232
|
-
|
233
177
|
function updateGlobals(globals) {
|
234
|
-
|
178
|
+
addonsChannel().emit(Events.UPDATE_GLOBALS, {
|
235
179
|
globals
|
236
180
|
});
|
237
181
|
}
|
238
|
-
|
239
182
|
function insertIgnoreStyles(ignoreSelectors) {
|
240
183
|
const stylesElement = document.createElement('style');
|
241
184
|
stylesElement.setAttribute('type', 'text/css');
|
242
185
|
document.head.appendChild(stylesElement);
|
243
186
|
ignoreSelectors.forEach(selector => {
|
244
|
-
stylesElement.innerHTML +=
|
187
|
+
stylesElement.innerHTML += `
|
188
|
+
${selector} {
|
189
|
+
background: #000 !important;
|
190
|
+
box-shadow: none !important;
|
191
|
+
text-shadow: none !important;
|
192
|
+
outline: 0 !important;
|
193
|
+
color: rgba(0,0,0,0) !important;
|
194
|
+
}
|
195
|
+
${selector} *, ${selector}::before, ${selector}::after {
|
196
|
+
visibility: hidden !important;
|
197
|
+
}
|
198
|
+
`;
|
245
199
|
});
|
246
200
|
return stylesElement;
|
247
201
|
}
|
248
|
-
|
249
202
|
function removeIgnoreStyles(ignoreStyles) {
|
250
|
-
|
251
|
-
|
252
|
-
(_ignoreStyles$parentN = ignoreStyles.parentNode) === null || _ignoreStyles$parentN === void 0 ? void 0 : _ignoreStyles$parentN.removeChild(ignoreStyles);
|
203
|
+
ignoreStyles.parentNode?.removeChild(ignoreStyles);
|
253
204
|
}
|
254
|
-
|
255
205
|
function hasPlayCompletedYet(callback) {
|
256
206
|
creeveyReady();
|
257
207
|
let isCaptureCalled = false;
|
258
208
|
let isPlayCompleted = false;
|
259
|
-
|
260
|
-
const channel = _addons.addons.getChannel();
|
261
|
-
|
209
|
+
const channel = addonsChannel();
|
262
210
|
void waitForStoryRendered(channel).then(() => {
|
263
211
|
if (isCaptureCalled) return;
|
264
212
|
isPlayCompleted = true;
|
@@ -270,61 +218,35 @@ function withCreevey() {
|
|
270
218
|
callback(false);
|
271
219
|
});
|
272
220
|
}
|
273
|
-
|
274
221
|
window.__CREEVEY_GET_STORIES__ = getStories;
|
275
222
|
window.__CREEVEY_SELECT_STORY__ = selectStory;
|
276
223
|
window.__CREEVEY_UPDATE_GLOBALS__ = updateGlobals;
|
277
224
|
window.__CREEVEY_INSERT_IGNORE_STYLES__ = insertIgnoreStyles;
|
278
225
|
window.__CREEVEY_REMOVE_IGNORE_STYLES__ = removeIgnoreStyles;
|
279
226
|
window.__CREEVEY_HAS_PLAY_COMPLETED_YET__ = hasPlayCompletedYet;
|
280
|
-
window.__CREEVEY_SET_READY_FOR_CAPTURE__ = _types.noop;
|
281
|
-
|
282
|
-
// const getMultipleError = (_: Element | null, query: string): string => `Found multiple elements by query: ${query}`;
|
283
|
-
// const getMissingError = (_: Element | null, query: string): string => `Unable to find an element by query: ${query}`;
|
284
|
-
// const [queryByQuery, getAllByQuery, getByQuery, findAllByQuery, findByQuery] = buildQueries(
|
285
|
-
// queryAllByQuery,
|
286
|
-
// getMultipleError,
|
287
|
-
// getMissingError,
|
288
|
-
// );
|
289
|
-
// const queries = {
|
290
|
-
// queryByQuery,
|
291
|
-
// getAllByQuery,
|
292
|
-
// getByQuery,
|
293
|
-
// findAllByQuery,
|
294
|
-
// findByQuery,
|
295
|
-
// };
|
296
|
-
|
297
|
-
return (0, _addons.makeDecorator)({
|
227
|
+
window.__CREEVEY_SET_READY_FOR_CAPTURE__ = _types.noop;
|
228
|
+
return (0, _previewApi.makeDecorator)({
|
298
229
|
name: 'withCreevey',
|
299
230
|
parameterName: 'creevey',
|
300
231
|
wrapper: (getStory, context) => {
|
301
|
-
var _ref2;
|
302
|
-
|
303
232
|
// TODO Define proper types, like captureElement is a promise
|
304
233
|
const {
|
305
234
|
captureElement
|
306
|
-
} = context.parameters.creevey =
|
235
|
+
} = context.parameters.creevey = context.parameters.creevey ?? {};
|
307
236
|
Object.defineProperty(context.parameters.creevey, 'captureElement', {
|
308
237
|
get() {
|
309
238
|
switch (true) {
|
310
239
|
case captureElement === undefined:
|
311
240
|
return Promise.resolve(context.canvasElement);
|
312
|
-
|
313
241
|
case captureElement === null:
|
314
242
|
return Promise.resolve(document.documentElement);
|
315
|
-
|
316
243
|
case typeof captureElement == 'string':
|
317
244
|
return Promise.resolve(context.canvasElement.querySelector(captureElement));
|
318
|
-
// return isInternetExplorer // some code from testing-library makes IE hang
|
319
|
-
// ? Promise.resolve(context.canvasElement.querySelector(captureElement as string))
|
320
|
-
// : within<typeof queries>(context.canvasElement, queries).findByQuery(captureElement as string);
|
321
|
-
|
322
245
|
case typeof captureElement == 'function':
|
323
246
|
// TODO Define type for it
|
324
247
|
return Promise.resolve(captureElement(context));
|
325
248
|
}
|
326
249
|
},
|
327
|
-
|
328
250
|
enumerable: true,
|
329
251
|
configurable: true
|
330
252
|
});
|
@@ -332,12 +254,11 @@ function withCreevey() {
|
|
332
254
|
}
|
333
255
|
});
|
334
256
|
}
|
335
|
-
|
336
257
|
async function capture(options) {
|
337
258
|
if (!isTestBrowser) return;
|
338
259
|
captureResolver();
|
339
260
|
waitForCreevey = new Promise(resolve => creeveyReady = resolve);
|
340
|
-
await fetch(
|
261
|
+
await fetch(`http://${(0, _helpers.getConnectionUrl)()}/capture`, {
|
341
262
|
method: 'POST',
|
342
263
|
headers: {
|
343
264
|
'Content-Type': 'application/json'
|