creevey 0.7.39 → 0.8.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -2
- package/README.md +9 -1
- package/addon/README.md +3 -0
- package/addon/package.json +4 -0
- package/docs/config.md +37 -5
- package/docs/grid.md +2 -1
- package/jest.config.js +6 -0
- package/lib/cjs/client/addon/Manager.js +124 -271
- package/lib/cjs/client/addon/components/Addon.js +17 -38
- package/lib/cjs/client/addon/components/Icons.js +11 -7
- package/lib/cjs/client/addon/components/Panel.js +17 -13
- package/lib/cjs/client/addon/components/TestSelect.js +11 -9
- package/lib/cjs/client/addon/components/Tools.js +21 -40
- package/lib/cjs/client/addon/decorator.js +1 -1
- package/lib/cjs/client/addon/index.js +31 -0
- package/lib/cjs/client/addon/preset.ie11.js +74 -0
- package/lib/cjs/client/addon/preset.js +13 -31
- package/lib/cjs/client/addon/readyForCapture.js +12 -0
- package/lib/cjs/client/addon/register.js +46 -70
- package/lib/cjs/client/addon/utils.js +5 -41
- package/lib/cjs/client/addon/withCreevey.js +221 -155
- package/lib/cjs/client/shared/components/ImagesView/BlendView.js +26 -24
- package/lib/cjs/client/shared/components/ImagesView/ImagesView.js +22 -18
- package/lib/cjs/client/shared/components/ImagesView/SideBySideView.js +44 -66
- package/lib/cjs/client/shared/components/ImagesView/SlideView.js +38 -50
- package/lib/cjs/client/shared/components/ImagesView/SwapView.js +26 -45
- package/lib/cjs/client/shared/components/ImagesView/index.js +9 -9
- package/lib/cjs/client/shared/components/PageFooter/PageFooter.js +12 -8
- package/lib/cjs/client/shared/components/PageFooter/Paging.js +14 -18
- package/lib/cjs/client/shared/components/PageHeader/ImagePreview.js +22 -18
- package/lib/cjs/client/shared/components/PageHeader/PageHeader.js +42 -67
- package/lib/cjs/client/shared/components/ResultsPage.js +39 -69
- package/lib/cjs/client/shared/creeveyClientApi.js +55 -82
- package/lib/cjs/client/shared/helpers.js +140 -211
- package/lib/cjs/client/shared/viewMode.js +5 -5
- package/lib/cjs/client/web/142.js +2 -0
- package/lib/cjs/client/web/142.js.LICENSE.txt +12 -0
- package/lib/cjs/client/web/32.js +1 -0
- package/lib/cjs/client/web/551.js +1 -0
- package/lib/cjs/client/web/566.js +2 -0
- package/lib/cjs/client/web/566.js.LICENSE.txt +31 -0
- package/lib/cjs/client/web/691.js +2 -0
- package/lib/cjs/client/web/691.js.LICENSE.txt +8 -0
- package/lib/cjs/client/web/725.js +1 -0
- package/lib/cjs/client/web/main.js +2 -38
- package/lib/cjs/client/web/main.js.LICENSE.txt +49 -0
- package/lib/cjs/creevey.js +3 -5
- package/lib/cjs/index.js +10 -15
- package/lib/cjs/server/config.js +5 -4
- package/lib/cjs/server/docker.js +3 -7
- package/lib/cjs/server/extract.js +7 -4
- package/lib/cjs/server/index.js +3 -5
- package/lib/cjs/server/loaders/babel/creevey-plugin.js +1 -3
- package/lib/cjs/server/loaders/babel/helpers.js +13 -23
- package/lib/cjs/server/loaders/babel/register.js +3 -4
- package/lib/cjs/server/loaders/webpack/compile.js +33 -50
- package/lib/cjs/server/loaders/webpack/creevey-loader.js +20 -22
- package/lib/cjs/server/loaders/webpack/dummy-hmr.js +2 -7
- package/lib/cjs/server/loaders/webpack/mdx-loader.js +2 -2
- package/lib/cjs/server/loaders/webpack/start.js +1 -1
- package/lib/cjs/server/logger.js +2 -1
- package/lib/cjs/server/master/index.js +4 -4
- package/lib/cjs/server/master/master.js +1 -0
- package/lib/cjs/server/master/pool.js +38 -47
- package/lib/cjs/server/master/runner.js +53 -66
- package/lib/cjs/server/master/server.js +78 -4
- package/lib/cjs/server/messages.js +128 -18
- package/lib/cjs/server/selenium/browser.js +129 -55
- package/lib/cjs/server/selenium/selenoid.js +6 -8
- package/lib/cjs/server/stories.js +58 -84
- package/lib/cjs/server/storybook/entry.js +8 -22
- package/lib/cjs/server/storybook/helpers.js +22 -21
- package/lib/cjs/server/storybook/providers/browser.js +74 -0
- package/lib/cjs/server/storybook/{nodejs-provider.js → providers/nodejs.js} +44 -22
- package/lib/cjs/server/update.js +1 -5
- package/lib/cjs/server/utils.js +36 -15
- package/lib/cjs/server/worker/helpers.js +2 -6
- package/lib/cjs/server/worker/reporter.js +8 -20
- package/lib/cjs/server/worker/worker.js +21 -19
- package/lib/cjs/shared/index.js +101 -0
- package/lib/cjs/shared/serializeRegExp.js +42 -0
- package/lib/cjs/types.js +11 -6
- package/lib/esm/client/addon/Manager.js +124 -272
- 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 +17 -13
- package/lib/esm/client/addon/components/TestSelect.js +11 -9
- package/lib/esm/client/addon/components/Tools.js +19 -36
- package/lib/esm/client/addon/decorator.js +1 -1
- package/lib/esm/client/addon/index.js +2 -0
- package/lib/esm/client/addon/preset.ie11.js +59 -0
- package/lib/esm/client/addon/preset.js +12 -26
- package/lib/esm/client/addon/readyForCapture.js +5 -0
- package/lib/esm/client/addon/register.js +42 -66
- package/lib/esm/client/addon/utils.js +3 -34
- package/lib/esm/client/addon/withCreevey.js +209 -156
- package/lib/esm/client/shared/components/ImagesView/BlendView.js +23 -20
- package/lib/esm/client/shared/components/ImagesView/ImagesView.js +21 -17
- package/lib/esm/client/shared/components/ImagesView/SideBySideView.js +42 -63
- package/lib/esm/client/shared/components/ImagesView/SlideView.js +36 -47
- package/lib/esm/client/shared/components/ImagesView/SwapView.js +24 -42
- package/lib/esm/client/shared/components/PageFooter/PageFooter.js +12 -8
- package/lib/esm/client/shared/components/PageFooter/Paging.js +14 -18
- package/lib/esm/client/shared/components/PageHeader/ImagePreview.js +22 -18
- package/lib/esm/client/shared/components/PageHeader/PageHeader.js +37 -60
- package/lib/esm/client/shared/components/ResultsPage.js +36 -64
- package/lib/esm/client/shared/creeveyClientApi.js +57 -84
- package/lib/esm/client/shared/helpers.js +124 -195
- package/lib/esm/client/shared/viewMode.js +4 -4
- package/lib/esm/creevey.js +3 -5
- package/lib/esm/index.js +2 -3
- package/lib/esm/server/config.js +4 -5
- package/lib/esm/server/docker.js +2 -2
- package/lib/esm/server/extract.js +6 -4
- package/lib/esm/server/index.js +3 -4
- package/lib/esm/server/loaders/babel/creevey-plugin.js +1 -3
- package/lib/esm/server/loaders/babel/helpers.js +12 -22
- package/lib/esm/server/loaders/babel/register.js +3 -4
- package/lib/esm/server/loaders/webpack/compile.js +34 -51
- package/lib/esm/server/loaders/webpack/creevey-loader.js +9 -10
- package/lib/esm/server/loaders/webpack/dummy-hmr.js +2 -6
- package/lib/esm/server/loaders/webpack/mdx-loader.js +2 -2
- package/lib/esm/server/loaders/webpack/start.js +1 -1
- package/lib/esm/server/master/index.js +4 -4
- package/lib/esm/server/master/master.js +1 -0
- package/lib/esm/server/master/pool.js +38 -49
- package/lib/esm/server/master/runner.js +53 -66
- package/lib/esm/server/master/server.js +76 -6
- package/lib/esm/server/messages.js +118 -14
- package/lib/esm/server/selenium/browser.js +126 -57
- package/lib/esm/server/selenium/selenoid.js +5 -7
- package/lib/esm/server/stories.js +60 -83
- package/lib/esm/server/storybook/entry.js +7 -24
- package/lib/esm/server/storybook/helpers.js +13 -16
- package/lib/esm/server/storybook/providers/browser.js +60 -0
- package/lib/esm/server/storybook/{nodejs-provider.js → providers/nodejs.js} +42 -21
- package/lib/esm/server/update.js +1 -5
- package/lib/esm/server/utils.js +28 -10
- package/lib/esm/server/worker/helpers.js +2 -6
- package/lib/esm/server/worker/reporter.js +8 -20
- package/lib/esm/server/worker/worker.js +22 -20
- package/lib/esm/shared/index.js +78 -0
- package/lib/esm/shared/serializeRegExp.js +24 -0
- package/lib/esm/types.js +3 -0
- package/lib/types/cli.d.ts +1 -1
- package/lib/types/client/addon/Manager.d.ts +37 -37
- package/lib/types/client/addon/components/Addon.d.ts +8 -8
- package/lib/types/client/addon/components/Icons.d.ts +7 -7
- package/lib/types/client/addon/components/Panel.d.ts +9 -9
- package/lib/types/client/addon/components/TestSelect.d.ts +8 -9
- package/lib/types/client/addon/components/Tools.d.ts +6 -6
- 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 +23 -22
- package/lib/types/client/addon/preset.ie11.d.ts +10 -0
- package/lib/types/client/addon/readyForCapture.d.ts +6 -0
- package/lib/types/client/addon/register.d.ts +3 -3
- package/lib/types/client/addon/utils.d.ts +3 -6
- package/lib/types/client/addon/withCreevey.d.ts +24 -13
- package/lib/types/client/shared/components/ImagesView/BlendView.d.ts +3 -3
- package/lib/types/client/shared/components/ImagesView/ImagesView.d.ts +24 -25
- package/lib/types/client/shared/components/ImagesView/SideBySideView.d.ts +3 -3
- package/lib/types/client/shared/components/ImagesView/SlideView.d.ts +3 -3
- package/lib/types/client/shared/components/ImagesView/SwapView.d.ts +3 -3
- package/lib/types/client/shared/components/ImagesView/index.d.ts +5 -5
- package/lib/types/client/shared/components/PageFooter/PageFooter.d.ts +8 -9
- package/lib/types/client/shared/components/PageFooter/Paging.d.ts +7 -8
- package/lib/types/client/shared/components/PageHeader/ImagePreview.d.ts +12 -12
- package/lib/types/client/shared/components/PageHeader/PageHeader.d.ts +16 -17
- package/lib/types/client/shared/components/ResultsPage.d.ts +18 -18
- package/lib/types/client/shared/creeveyClientApi.d.ts +9 -9
- package/lib/types/client/shared/helpers.d.ts +46 -46
- package/lib/types/client/shared/viewMode.d.ts +4 -4
- package/lib/types/client/web/CreeveyApp.d.ts +11 -12
- package/lib/types/client/web/CreeveyContext.d.ts +11 -11
- package/lib/types/client/web/CreeveyLoader.d.ts +2 -3
- package/lib/types/client/web/CreeveyView/SideBar/Checkbox.d.ts +19 -19
- package/lib/types/client/web/CreeveyView/SideBar/Search.d.ts +6 -6
- package/lib/types/client/web/CreeveyView/SideBar/SideBar.d.ts +14 -14
- package/lib/types/client/web/CreeveyView/SideBar/SideBarHeader.d.ts +12 -13
- package/lib/types/client/web/CreeveyView/SideBar/SuiteLink.d.ts +33 -33
- package/lib/types/client/web/CreeveyView/SideBar/TestLink.d.ts +7 -8
- package/lib/types/client/web/CreeveyView/SideBar/TestStatusIcon.d.ts +10 -10
- package/lib/types/client/web/CreeveyView/SideBar/TestsStatus.d.ts +9 -9
- package/lib/types/client/web/CreeveyView/SideBar/Toggle.d.ts +6 -6
- package/lib/types/client/web/CreeveyView/SideBar/index.d.ts +1 -1
- package/lib/types/client/web/KeyboardEventsContext.d.ts +13 -13
- package/lib/types/client/web/index.d.ts +4 -4
- package/lib/types/creevey.d.ts +1 -1
- package/lib/types/index.d.ts +0 -1
- package/lib/types/server/config.d.ts +4 -4
- package/lib/types/server/docker.d.ts +7 -7
- package/lib/types/server/extract.d.ts +2 -2
- package/lib/types/server/index.d.ts +2 -2
- package/lib/types/server/loaders/babel/creevey-plugin.d.ts +1 -1
- package/lib/types/server/loaders/babel/helpers.d.ts +19 -19
- package/lib/types/server/loaders/babel/register.d.ts +5 -5
- package/lib/types/server/loaders/hooks/mdx.d.ts +1 -1
- package/lib/types/server/loaders/hooks/svelte.d.ts +1 -1
- package/lib/types/server/loaders/webpack/compile.d.ts +2 -2
- package/lib/types/server/loaders/webpack/creevey-loader.d.ts +4 -2
- package/lib/types/server/loaders/webpack/dummy-hmr.d.ts +10 -10
- package/lib/types/server/loaders/webpack/mdx-loader.d.ts +6 -6
- package/lib/types/server/loaders/webpack/start.d.ts +1 -1
- package/lib/types/server/logger.d.ts +10 -6
- package/lib/types/server/master/api.d.ts +7 -7
- package/lib/types/server/master/index.d.ts +3 -3
- package/lib/types/server/master/master.d.ts +7 -6
- package/lib/types/server/master/pool.d.ts +31 -30
- package/lib/types/server/master/runner.d.ts +26 -26
- package/lib/types/server/master/server.d.ts +2 -2
- package/lib/types/server/messages.d.ts +29 -18
- package/lib/types/server/selenium/browser.d.ts +17 -14
- package/lib/types/server/selenium/index.d.ts +2 -2
- package/lib/types/server/selenium/selenoid.d.ts +3 -3
- package/lib/types/server/stories.d.ts +8 -9
- package/lib/types/server/storybook/entry.d.ts +17 -14
- package/lib/types/server/storybook/helpers.d.ts +24 -23
- package/lib/types/server/storybook/providers/browser.d.ts +4 -0
- package/lib/types/server/storybook/providers/nodejs.d.ts +9 -0
- package/lib/types/server/update.d.ts +2 -2
- package/lib/types/server/utils.d.ts +19 -18
- package/lib/types/server/worker/chai-image.d.ts +6 -6
- package/lib/types/server/worker/helpers.d.ts +8 -7
- package/lib/types/server/worker/index.d.ts +1 -1
- package/lib/types/server/worker/reporter.d.ts +8 -8
- package/lib/types/server/worker/worker.d.ts +4 -4
- package/lib/types/shared/index.d.ts +7 -0
- package/lib/types/shared/serializeRegExp.d.ts +9 -0
- package/lib/types/types.d.ts +487 -459
- package/package.json +121 -99
- package/preset/ie11.js +5 -0
- package/{preset.js → preset/index.js} +2 -2
- package/types/mdx.d.ts +3 -2
- package/types/mocha.d.ts +1 -0
- package/lib/cjs/client/web/1.js +0 -13
- package/lib/cjs/client/web/2.js +0 -1
- package/lib/types/server/storybook/nodejs-provider.d.ts +0 -5
- package/storybook-static/stories.json +0 -530
@@ -1,46 +1,15 @@
|
|
1
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
2
|
-
|
3
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
4
|
-
|
5
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
6
|
-
|
7
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
8
|
-
|
9
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
10
|
-
|
11
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
12
|
-
|
13
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
14
|
-
|
15
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
16
|
-
|
17
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
18
|
-
|
19
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
20
|
-
|
21
|
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
22
|
-
|
23
|
-
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
24
|
-
|
25
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
26
|
-
|
27
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
28
|
-
|
29
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
30
|
-
|
31
1
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
32
2
|
|
33
3
|
import { SET_STORIES, STORY_RENDERED } from '@storybook/core-events';
|
4
|
+
import { denormalizeStoryParameters } from '../../shared';
|
34
5
|
import { isDefined } from '../../types';
|
35
6
|
import { initCreeveyClientApi } from '../shared/creeveyClientApi';
|
36
7
|
import { calcStatus } from '../shared/helpers';
|
37
8
|
import { ADDON_ID } from './register';
|
38
|
-
import { getEmojiByTestStatus
|
39
|
-
export
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
_classCallCheck(this, CreeveyManager);
|
9
|
+
import { getEmojiByTestStatus } from './utils';
|
10
|
+
export class CreeveyManager {
|
11
|
+
constructor(storybookApi) {
|
12
|
+
this.storybookApi = storybookApi;
|
44
13
|
|
45
14
|
_defineProperty(this, "storyId", '');
|
46
15
|
|
@@ -62,60 +31,38 @@ export var CreeveyManager = /*#__PURE__*/function () {
|
|
62
31
|
|
63
32
|
_defineProperty(this, "changeTestListeners", []);
|
64
33
|
|
65
|
-
_defineProperty(this, "initAll",
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
_this.storybookApi.on(SET_STORIES, _this.onSetStories);
|
73
|
-
|
74
|
-
_context.next = 4;
|
75
|
-
return initCreeveyClientApi();
|
76
|
-
|
77
|
-
case 4:
|
78
|
-
_this.creeveyApi = _context.sent;
|
79
|
-
|
80
|
-
_this.creeveyApi.onUpdate(_this.handleCreeveyUpdate);
|
81
|
-
|
82
|
-
_context.next = 8;
|
83
|
-
return _this.creeveyApi.status;
|
84
|
-
|
85
|
-
case 8:
|
86
|
-
_this.status = _context.sent;
|
87
|
-
|
88
|
-
case 9:
|
89
|
-
case "end":
|
90
|
-
return _context.stop();
|
91
|
-
}
|
92
|
-
}
|
93
|
-
}, _callee);
|
94
|
-
})));
|
34
|
+
_defineProperty(this, "initAll", async () => {
|
35
|
+
this.storybookApi.on(STORY_RENDERED, this.onStoryRendered);
|
36
|
+
this.storybookApi.on(SET_STORIES, this.onSetStories);
|
37
|
+
this.creeveyApi = await initCreeveyClientApi();
|
38
|
+
this.creeveyApi.onUpdate(this.handleCreeveyUpdate);
|
39
|
+
this.status = await this.creeveyApi.status;
|
40
|
+
});
|
95
41
|
|
96
|
-
_defineProperty(this, "handleCreeveyUpdate",
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
42
|
+
_defineProperty(this, "handleCreeveyUpdate", update => {
|
43
|
+
const {
|
44
|
+
tests,
|
45
|
+
removedTests = [],
|
46
|
+
isRunning
|
47
|
+
} = update;
|
101
48
|
|
102
49
|
if (isDefined(isRunning)) {
|
103
|
-
|
50
|
+
this.status.isRunning = isRunning;
|
104
51
|
}
|
105
52
|
|
106
53
|
if (isDefined(tests)) {
|
107
|
-
|
108
|
-
|
109
|
-
Object.values(tests).filter(isDefined).forEach(
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
54
|
+
const prevTests = this.status.tests;
|
55
|
+
const prevStories = this.stories || {};
|
56
|
+
Object.values(tests).filter(isDefined).forEach(update => {
|
57
|
+
const {
|
58
|
+
id,
|
59
|
+
skip,
|
60
|
+
status,
|
61
|
+
results,
|
62
|
+
approved,
|
63
|
+
storyId
|
64
|
+
} = update;
|
65
|
+
const test = prevTests[id];
|
119
66
|
|
120
67
|
if (!test) {
|
121
68
|
return prevTests[id] = update;
|
@@ -127,270 +74,175 @@ export var CreeveyManager = /*#__PURE__*/function () {
|
|
127
74
|
test.status = status;
|
128
75
|
|
129
76
|
if (isDefined(storyId) && isDefined(prevStories[storyId])) {
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
var oldStatus = storyStatus.map(function (x) {
|
135
|
-
return x.id === id ? status : x.status;
|
136
|
-
}).reduce(function (oldStatus, newStatus) {
|
137
|
-
return calcStatus(oldStatus, newStatus);
|
138
|
-
}, undefined);
|
139
|
-
story.name = _this.addStatusToStoryName(story.name, calcStatus(oldStatus, status), skip || false);
|
77
|
+
const story = prevStories[storyId];
|
78
|
+
const storyStatus = this.getStoryTests(storyId);
|
79
|
+
const oldStatus = storyStatus.map(x => x.id === id ? status : x.status).reduce((oldStatus, newStatus) => calcStatus(oldStatus, newStatus), undefined);
|
80
|
+
story.name = this.addStatusToStoryName(story.name, calcStatus(oldStatus, status), skip || false);
|
140
81
|
}
|
141
82
|
}
|
142
83
|
|
143
|
-
if (isDefined(results)) test.results ?
|
84
|
+
if (isDefined(results)) test.results ? test.results.push(...results) : test.results = results;
|
144
85
|
|
145
86
|
if (isDefined(approved)) {
|
146
|
-
Object.entries(approved).forEach(
|
147
|
-
|
148
|
-
image = _ref3[0],
|
149
|
-
retry = _ref3[1];
|
150
|
-
|
87
|
+
Object.entries(approved).forEach(_ref => {
|
88
|
+
let [image, retry] = _ref;
|
151
89
|
return retry !== undefined && test && ((test.approved = (test === null || test === void 0 ? void 0 : test.approved) || {})[image] = retry);
|
152
90
|
});
|
153
91
|
}
|
154
92
|
});
|
155
|
-
removedTests.forEach(
|
156
|
-
|
93
|
+
removedTests.forEach(_ref2 => {
|
94
|
+
let {
|
95
|
+
id
|
96
|
+
} = _ref2;
|
157
97
|
return delete prevTests[id];
|
158
98
|
});
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
void _this.storybookApi.setStories(_this.stories);
|
99
|
+
this.status.tests = prevTests;
|
100
|
+
this.stories = prevStories;
|
101
|
+
this.setPanelsTitle();
|
102
|
+
void this.storybookApi.setStories(this.stories);
|
165
103
|
}
|
166
104
|
|
167
|
-
|
168
|
-
return x(update);
|
169
|
-
});
|
105
|
+
this.updateStatusListeners.forEach(x => x(update));
|
170
106
|
});
|
171
107
|
|
172
|
-
_defineProperty(this, "getCurrentTest",
|
173
|
-
return
|
108
|
+
_defineProperty(this, "getCurrentTest", () => {
|
109
|
+
return this.status.tests[this.selectedTestId];
|
174
110
|
});
|
175
111
|
|
176
|
-
_defineProperty(this, "onStoryRendered",
|
177
|
-
if (
|
112
|
+
_defineProperty(this, "onStoryRendered", storyId => {
|
113
|
+
if (this.storyId === '') void this.addStatusesToSideBar();
|
178
114
|
|
179
|
-
if (
|
115
|
+
if (this.storyId !== storyId) {
|
180
116
|
var _this$getTestsByStory, _this$getTestsByStory2;
|
181
117
|
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
_this.changeTestListeners.forEach(function (x) {
|
188
|
-
return x(_this.selectedTestId);
|
189
|
-
});
|
118
|
+
this.storyId = storyId;
|
119
|
+
this.selectedTestId = (_this$getTestsByStory = (_this$getTestsByStory2 = this.getTestsByStoryIdAndBrowser(this.activeBrowser)[0]) === null || _this$getTestsByStory2 === void 0 ? void 0 : _this$getTestsByStory2.id) !== null && _this$getTestsByStory !== void 0 ? _this$getTestsByStory : '';
|
120
|
+
this.setPanelsTitle();
|
121
|
+
this.changeTestListeners.forEach(x => x(this.selectedTestId));
|
190
122
|
}
|
191
123
|
});
|
192
124
|
|
193
|
-
_defineProperty(this, "onStart",
|
125
|
+
_defineProperty(this, "onStart", () => {
|
194
126
|
var _this$creeveyApi;
|
195
127
|
|
196
|
-
(_this$creeveyApi =
|
128
|
+
(_this$creeveyApi = this.creeveyApi) === null || _this$creeveyApi === void 0 ? void 0 : _this$creeveyApi.start([this.selectedTestId]);
|
197
129
|
});
|
198
130
|
|
199
|
-
_defineProperty(this, "onStop",
|
131
|
+
_defineProperty(this, "onStop", () => {
|
200
132
|
var _this$creeveyApi2;
|
201
133
|
|
202
|
-
(_this$creeveyApi2 =
|
134
|
+
(_this$creeveyApi2 = this.creeveyApi) === null || _this$creeveyApi2 === void 0 ? void 0 : _this$creeveyApi2.stop();
|
203
135
|
});
|
204
136
|
|
205
|
-
_defineProperty(this, "onImageApprove",
|
137
|
+
_defineProperty(this, "onImageApprove", (id, retry, image) => {
|
206
138
|
var _this$creeveyApi3;
|
207
139
|
|
208
|
-
return (_this$creeveyApi3 =
|
140
|
+
return (_this$creeveyApi3 = this.creeveyApi) === null || _this$creeveyApi3 === void 0 ? void 0 : _this$creeveyApi3.approve(id, retry, image);
|
209
141
|
});
|
210
142
|
|
211
|
-
_defineProperty(this, "onStartAllStoryTests",
|
143
|
+
_defineProperty(this, "onStartAllStoryTests", () => {
|
212
144
|
var _this$creeveyApi4;
|
213
145
|
|
214
|
-
|
215
|
-
|
216
|
-
}).map(function (x) {
|
217
|
-
return x.id;
|
218
|
-
});
|
219
|
-
(_this$creeveyApi4 = _this.creeveyApi) === null || _this$creeveyApi4 === void 0 ? void 0 : _this$creeveyApi4.start(ids);
|
146
|
+
const ids = Object.values(this.status.tests).filter(isDefined).filter(x => x.storyId === this.storyId).map(x => x.id);
|
147
|
+
(_this$creeveyApi4 = this.creeveyApi) === null || _this$creeveyApi4 === void 0 ? void 0 : _this$creeveyApi4.start(ids);
|
220
148
|
});
|
221
149
|
|
222
|
-
_defineProperty(this, "onStartAllTests",
|
150
|
+
_defineProperty(this, "onStartAllTests", () => {
|
223
151
|
var _this$creeveyApi5;
|
224
152
|
|
225
|
-
|
226
|
-
|
227
|
-
});
|
228
|
-
(_this$creeveyApi5 = _this.creeveyApi) === null || _this$creeveyApi5 === void 0 ? void 0 : _this$creeveyApi5.start(ids);
|
153
|
+
const ids = Object.values(this.status.tests).filter(isDefined).map(x => x.id);
|
154
|
+
(_this$creeveyApi5 = this.creeveyApi) === null || _this$creeveyApi5 === void 0 ? void 0 : _this$creeveyApi5.start(ids);
|
229
155
|
});
|
230
156
|
|
231
|
-
_defineProperty(this, "onSetStories",
|
232
|
-
|
233
|
-
|
234
|
-
_this.stories = stories;
|
157
|
+
_defineProperty(this, "onSetStories", data => {
|
158
|
+
const stories = data.v ? denormalizeStoryParameters(data) : data.stories;
|
159
|
+
this.stories = stories;
|
235
160
|
});
|
236
161
|
|
237
|
-
_defineProperty(this, "setActiveBrowser",
|
162
|
+
_defineProperty(this, "setActiveBrowser", browser => {
|
238
163
|
var _this$getTestsByStory3, _this$getTestsByStory4;
|
239
164
|
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
_this.changeTestListeners.forEach(function (x) {
|
244
|
-
return x(_this.selectedTestId);
|
245
|
-
});
|
165
|
+
this.activeBrowser = browser;
|
166
|
+
this.selectedTestId = (_this$getTestsByStory3 = (_this$getTestsByStory4 = this.getTestsByStoryIdAndBrowser(this.activeBrowser)[0]) === null || _this$getTestsByStory4 === void 0 ? void 0 : _this$getTestsByStory4.id) !== null && _this$getTestsByStory3 !== void 0 ? _this$getTestsByStory3 : '';
|
167
|
+
this.changeTestListeners.forEach(x => x(this.selectedTestId));
|
246
168
|
});
|
247
169
|
|
248
|
-
_defineProperty(this, "setSelectedTestId",
|
249
|
-
|
250
|
-
|
251
|
-
_this.changeTestListeners.forEach(function (x) {
|
252
|
-
return x(_this.selectedTestId);
|
253
|
-
});
|
170
|
+
_defineProperty(this, "setSelectedTestId", testId => {
|
171
|
+
this.selectedTestId = testId;
|
172
|
+
this.changeTestListeners.forEach(x => x(this.selectedTestId));
|
254
173
|
});
|
255
174
|
|
256
|
-
_defineProperty(this, "getStoryTests",
|
257
|
-
if (!
|
258
|
-
return Object.values(
|
259
|
-
return (result === null || result === void 0 ? void 0 : result.storyId) === storyId;
|
260
|
-
}).filter(isDefined);
|
175
|
+
_defineProperty(this, "getStoryTests", storyId => {
|
176
|
+
if (!this.status || !this.status.tests) return [];
|
177
|
+
return Object.values(this.status.tests).filter(result => (result === null || result === void 0 ? void 0 : result.storyId) === storyId).filter(isDefined);
|
261
178
|
});
|
262
179
|
|
263
|
-
_defineProperty(this, "getBrowsers",
|
264
|
-
return
|
180
|
+
_defineProperty(this, "getBrowsers", () => {
|
181
|
+
return this.status.browsers;
|
265
182
|
});
|
266
183
|
|
267
|
-
_defineProperty(this, "getTestsByStoryIdAndBrowser",
|
268
|
-
return Object.values(
|
269
|
-
return (x === null || x === void 0 ? void 0 : x.browser) === browser && x.storyId === _this.storyId;
|
270
|
-
}).filter(isDefined);
|
184
|
+
_defineProperty(this, "getTestsByStoryIdAndBrowser", browser => {
|
185
|
+
return Object.values(this.status.tests).filter(x => (x === null || x === void 0 ? void 0 : x.browser) === browser && x.storyId === this.storyId).filter(isDefined);
|
271
186
|
});
|
272
187
|
|
273
|
-
_defineProperty(this, "getTabTitle",
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
}).reduce(function (oldStatus, newStatus) {
|
279
|
-
return calcStatus(oldStatus, newStatus);
|
280
|
-
}, undefined);
|
281
|
-
var browserSkip = tests.length > 0 ? tests.every(function (x) {
|
282
|
-
return x && x.skip;
|
283
|
-
}) : false;
|
284
|
-
var emojiStatus = getEmojiByTestStatus(browserStatus, browserSkip);
|
188
|
+
_defineProperty(this, "getTabTitle", browser => {
|
189
|
+
const tests = this.getTestsByStoryIdAndBrowser(browser);
|
190
|
+
const browserStatus = tests.map(x => x && x.status).reduce((oldStatus, newStatus) => calcStatus(oldStatus, newStatus), undefined);
|
191
|
+
const browserSkip = tests.length > 0 ? tests.every(x => x && x.skip) : false;
|
192
|
+
const emojiStatus = getEmojiByTestStatus(browserStatus, browserSkip);
|
285
193
|
return "".concat(emojiStatus ? "".concat(emojiStatus, " ") : '', "Creevey/").concat(browser);
|
286
194
|
});
|
287
195
|
|
288
|
-
_defineProperty(this, "setPanelsTitle",
|
196
|
+
_defineProperty(this, "setPanelsTitle", () => {
|
289
197
|
var _this$storybookApi;
|
290
198
|
|
291
|
-
|
199
|
+
const panels = (_this$storybookApi = this.storybookApi) === null || _this$storybookApi === void 0 ? void 0 : _this$storybookApi.getPanels();
|
292
200
|
if (!panels) return;
|
293
|
-
|
201
|
+
let firstPanelBrowser = this.activeBrowser;
|
294
202
|
|
295
|
-
for (
|
203
|
+
for (const p in panels) {
|
296
204
|
var _panel$id;
|
297
205
|
|
298
|
-
|
206
|
+
const panel = panels[p];
|
299
207
|
|
300
208
|
if (((_panel$id = panel.id) === null || _panel$id === void 0 ? void 0 : _panel$id.indexOf(ADDON_ID)) === 0 && panel.paramKey) {
|
301
|
-
panel.title =
|
209
|
+
panel.title = this.getTabTitle(panel.paramKey);
|
302
210
|
if (!firstPanelBrowser) firstPanelBrowser = panel.paramKey;
|
303
211
|
}
|
304
212
|
}
|
305
213
|
|
306
|
-
|
214
|
+
this.storybookApi.setSelectedPanel("".concat(ADDON_ID, "/panel/").concat(firstPanelBrowser));
|
307
215
|
});
|
308
216
|
|
309
217
|
this.storybookApi = storybookApi;
|
310
218
|
}
|
311
219
|
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
this.updateStatusListeners.push(listener);
|
318
|
-
return function () {
|
319
|
-
return void (_this2.updateStatusListeners = _this2.updateStatusListeners.filter(function (x) {
|
320
|
-
return x != listener;
|
321
|
-
}));
|
322
|
-
};
|
323
|
-
}
|
324
|
-
}, {
|
325
|
-
key: "onChangeTest",
|
326
|
-
value: function onChangeTest(listener) {
|
327
|
-
var _this3 = this;
|
328
|
-
|
329
|
-
this.changeTestListeners.push(listener);
|
330
|
-
return function () {
|
331
|
-
return void (_this3.changeTestListeners = _this3.changeTestListeners.filter(function (x) {
|
332
|
-
return x != listener;
|
333
|
-
}));
|
334
|
-
};
|
335
|
-
}
|
336
|
-
}, {
|
337
|
-
key: "addStatusesToSideBar",
|
338
|
-
value: function () {
|
339
|
-
var _addStatusesToSideBar = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
|
340
|
-
var _this4 = this;
|
341
|
-
|
342
|
-
var stories;
|
343
|
-
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
344
|
-
while (1) {
|
345
|
-
switch (_context2.prev = _context2.next) {
|
346
|
-
case 0:
|
347
|
-
if (Object.keys(this.stories).length) {
|
348
|
-
_context2.next = 2;
|
349
|
-
break;
|
350
|
-
}
|
351
|
-
|
352
|
-
return _context2.abrupt("return");
|
353
|
-
|
354
|
-
case 2:
|
355
|
-
stories = this.stories;
|
356
|
-
Object.keys(this.stories).forEach(function (storyId) {
|
357
|
-
var storyStatus = _this4.getStoryTests(storyId);
|
358
|
-
|
359
|
-
var status = storyStatus.map(function (x) {
|
360
|
-
return x.status;
|
361
|
-
}).reduce(function (oldStatus, newStatus) {
|
362
|
-
return calcStatus(oldStatus, newStatus);
|
363
|
-
}, undefined);
|
364
|
-
var skip = storyStatus.length > 0 ? storyStatus.every(function (x) {
|
365
|
-
return x.skip;
|
366
|
-
}) : false;
|
367
|
-
_this4.stories[storyId].name = _this4.addStatusToStoryName(stories[storyId].name, status, skip);
|
368
|
-
});
|
369
|
-
_context2.next = 6;
|
370
|
-
return this.storybookApi.setStories(this.stories);
|
371
|
-
|
372
|
-
case 6:
|
373
|
-
case "end":
|
374
|
-
return _context2.stop();
|
375
|
-
}
|
376
|
-
}
|
377
|
-
}, _callee2, this);
|
378
|
-
}));
|
220
|
+
onUpdateStatus(listener) {
|
221
|
+
this.updateStatusListeners.push(listener);
|
222
|
+
return () => void (this.updateStatusListeners = this.updateStatusListeners.filter(x => x != listener));
|
223
|
+
}
|
379
224
|
|
380
|
-
|
381
|
-
|
382
|
-
|
225
|
+
onChangeTest(listener) {
|
226
|
+
this.changeTestListeners.push(listener);
|
227
|
+
return () => void (this.changeTestListeners = this.changeTestListeners.filter(x => x != listener));
|
228
|
+
}
|
229
|
+
|
230
|
+
async addStatusesToSideBar() {
|
231
|
+
if (!Object.keys(this.stories).length) return;
|
232
|
+
const stories = this.stories;
|
233
|
+
Object.keys(this.stories).forEach(storyId => {
|
234
|
+
const storyStatus = this.getStoryTests(storyId);
|
235
|
+
const status = storyStatus.map(x => x.status).reduce((oldStatus, newStatus) => calcStatus(oldStatus, newStatus), undefined);
|
236
|
+
const skip = storyStatus.length > 0 ? storyStatus.every(x => x.skip) : false;
|
237
|
+
this.stories[storyId].name = this.addStatusToStoryName(stories[storyId].name, status, skip);
|
238
|
+
});
|
239
|
+
await this.storybookApi.setStories(this.stories);
|
240
|
+
}
|
241
|
+
|
242
|
+
addStatusToStoryName(name, status, skip) {
|
243
|
+
name = name.replace(/^(❌|✔|🟡|🕗|⏸) /, '');
|
244
|
+
const emojiStatus = getEmojiByTestStatus(status, skip);
|
245
|
+
return "".concat(emojiStatus ? "".concat(emojiStatus, " ") : '', " ").concat(name);
|
246
|
+
}
|
383
247
|
|
384
|
-
|
385
|
-
}()
|
386
|
-
}, {
|
387
|
-
key: "addStatusToStoryName",
|
388
|
-
value: function addStatusToStoryName(name, status, skip) {
|
389
|
-
name = name.replace(/^(❌|✔|🟡|🕗|⏸) /, '');
|
390
|
-
var emojiStatus = getEmojiByTestStatus(status, skip);
|
391
|
-
return "".concat(emojiStatus ? "".concat(emojiStatus, " ") : '', " ").concat(name);
|
392
|
-
}
|
393
|
-
}]);
|
394
|
-
|
395
|
-
return CreeveyManager;
|
396
|
-
}();
|
248
|
+
}
|
@@ -1,50 +1,31 @@
|
|
1
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
2
|
-
|
3
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
4
|
-
|
5
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
6
|
-
|
7
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
8
|
-
|
9
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
10
|
-
|
11
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
12
|
-
|
13
1
|
import { Placeholder } from '@storybook/components';
|
14
2
|
import React, { useEffect, useState } from 'react';
|
15
3
|
import { Panel } from './Panel';
|
16
|
-
export
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
var _useState3 = useState(manager.selectedTestId),
|
27
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
28
|
-
selectedTestId = _useState4[0],
|
29
|
-
setSelectedTestId = _useState4[1];
|
30
|
-
|
31
|
-
useEffect(function () {
|
4
|
+
export const Addon = _ref => {
|
5
|
+
let {
|
6
|
+
active,
|
7
|
+
browser,
|
8
|
+
manager
|
9
|
+
} = _ref;
|
10
|
+
const [tests, setTests] = useState([]);
|
11
|
+
const [selectedTestId, setSelectedTestId] = useState(manager.selectedTestId);
|
12
|
+
useEffect(() => {
|
32
13
|
if (active) {
|
33
14
|
manager.setActiveBrowser(browser);
|
34
|
-
|
15
|
+
const browserTests = manager.getTestsByStoryIdAndBrowser(manager.activeBrowser);
|
35
16
|
setTests(browserTests);
|
36
17
|
}
|
37
18
|
}, [active, browser, manager]);
|
38
|
-
useEffect(
|
39
|
-
|
19
|
+
useEffect(() => {
|
20
|
+
const unsubscribe = manager.onChangeTest(testId => {
|
40
21
|
setSelectedTestId(testId);
|
41
|
-
|
22
|
+
const status = manager.getTestsByStoryIdAndBrowser(manager.activeBrowser);
|
42
23
|
setTests(status);
|
43
24
|
});
|
44
25
|
return unsubscribe;
|
45
26
|
}, [manager]);
|
46
|
-
useEffect(
|
47
|
-
|
27
|
+
useEffect(() => {
|
28
|
+
const unsubscribe = manager.onUpdateStatus(() => {
|
48
29
|
setTests(manager.getTestsByStoryIdAndBrowser(manager.activeBrowser));
|
49
30
|
});
|
50
31
|
return unsubscribe;
|
@@ -1,7 +1,9 @@
|
|
1
1
|
import React from 'react';
|
2
|
-
export
|
3
|
-
|
4
|
-
|
2
|
+
export const NextIcon = _ref => {
|
3
|
+
let {
|
4
|
+
width,
|
5
|
+
height
|
6
|
+
} = _ref;
|
5
7
|
return /*#__PURE__*/React.createElement("svg", {
|
6
8
|
version: "1.1",
|
7
9
|
width: width,
|
@@ -12,9 +14,11 @@ export var NextIcon = function NextIcon(_ref) {
|
|
12
14
|
fill: "currentColor"
|
13
15
|
}));
|
14
16
|
};
|
15
|
-
export
|
16
|
-
|
17
|
-
|
17
|
+
export const ForwardIcon = _ref2 => {
|
18
|
+
let {
|
19
|
+
width,
|
20
|
+
height
|
21
|
+
} = _ref2;
|
18
22
|
return /*#__PURE__*/React.createElement("svg", {
|
19
23
|
version: "1.1",
|
20
24
|
width: width,
|
@@ -4,31 +4,35 @@ import { ResultsPage } from '../../shared/components/ResultsPage';
|
|
4
4
|
import { styled } from '@storybook/theming';
|
5
5
|
import { getTestPath } from '../../shared/helpers';
|
6
6
|
import TestSelect from './TestSelect';
|
7
|
-
|
8
|
-
|
7
|
+
const Wrapper = styled.div(_ref => {
|
8
|
+
let {
|
9
|
+
isRunning
|
10
|
+
} = _ref;
|
9
11
|
return {
|
10
12
|
opacity: isRunning ? 0.5 : 1,
|
11
13
|
height: '100%'
|
12
14
|
};
|
13
15
|
});
|
14
|
-
|
15
|
-
|
16
|
+
const TestSelectContainer = styled.div(_ref2 => {
|
17
|
+
let {
|
18
|
+
theme
|
19
|
+
} = _ref2;
|
16
20
|
return {
|
17
21
|
padding: '8px',
|
18
22
|
border: "1px solid ".concat(theme.appBorderColor)
|
19
23
|
};
|
20
24
|
});
|
21
|
-
export
|
25
|
+
export const Panel = _ref3 => {
|
22
26
|
var _result$results, _result$results$lengt, _result$results2;
|
23
27
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
28
|
+
let {
|
29
|
+
tests,
|
30
|
+
selectedTestId,
|
31
|
+
onChangeTest,
|
32
|
+
onImageApprove
|
33
|
+
} = _ref3;
|
34
|
+
const result = tests.find(x => x.id === selectedTestId);
|
35
|
+
const isRunning = (result === null || result === void 0 ? void 0 : result.status) === 'running';
|
32
36
|
return /*#__PURE__*/React.createElement("div", null, tests.length > 1 && /*#__PURE__*/React.createElement(TestSelectContainer, null, /*#__PURE__*/React.createElement(TestSelect, {
|
33
37
|
tests: tests,
|
34
38
|
selectedTestId: selectedTestId,
|