creevey 0.9.0-beta.2 → 0.9.0-beta.3

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.
Files changed (234) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +9 -1
  3. package/addon/README.md +3 -0
  4. package/addon/package.json +4 -0
  5. package/docs/config.md +29 -26
  6. package/jest.config.js +6 -0
  7. package/lib/cjs/client/addon/Manager.js +122 -270
  8. package/lib/cjs/client/addon/components/Addon.js +17 -38
  9. package/lib/cjs/client/addon/components/Icons.js +11 -7
  10. package/lib/cjs/client/addon/components/Panel.js +17 -13
  11. package/lib/cjs/client/addon/components/TestSelect.js +11 -9
  12. package/lib/cjs/client/addon/components/Tools.js +21 -40
  13. package/lib/cjs/client/addon/decorator.js +1 -1
  14. package/lib/cjs/client/addon/index.js +31 -0
  15. package/lib/cjs/client/addon/preset.ie11.js +74 -0
  16. package/lib/cjs/client/addon/preset.js +12 -31
  17. package/lib/cjs/client/addon/register.js +46 -70
  18. package/lib/cjs/client/addon/utils.js +6 -2
  19. package/lib/cjs/client/addon/withCreevey.js +161 -342
  20. package/lib/cjs/client/shared/components/ImagesView/BlendView.js +23 -21
  21. package/lib/cjs/client/shared/components/ImagesView/ImagesView.js +22 -18
  22. package/lib/cjs/client/shared/components/ImagesView/SideBySideView.js +42 -64
  23. package/lib/cjs/client/shared/components/ImagesView/SlideView.js +35 -48
  24. package/lib/cjs/client/shared/components/ImagesView/SwapView.js +24 -43
  25. package/lib/cjs/client/shared/components/ImagesView/index.js +9 -9
  26. package/lib/cjs/client/shared/components/PageFooter/PageFooter.js +12 -8
  27. package/lib/cjs/client/shared/components/PageFooter/Paging.js +14 -18
  28. package/lib/cjs/client/shared/components/PageHeader/ImagePreview.js +22 -18
  29. package/lib/cjs/client/shared/components/PageHeader/PageHeader.js +42 -67
  30. package/lib/cjs/client/shared/components/ResultsPage.js +39 -69
  31. package/lib/cjs/client/shared/creeveyClientApi.js +55 -82
  32. package/lib/cjs/client/shared/helpers.js +139 -210
  33. package/lib/cjs/client/shared/viewMode.js +5 -5
  34. package/lib/cjs/client/web/142.js +2 -0
  35. package/lib/cjs/client/web/142.js.LICENSE.txt +12 -0
  36. package/lib/cjs/client/web/32.js +1 -0
  37. package/lib/cjs/client/web/551.js +1 -0
  38. package/lib/cjs/client/web/566.js +2 -0
  39. package/lib/cjs/client/web/566.js.LICENSE.txt +31 -0
  40. package/lib/cjs/client/web/691.js +2 -0
  41. package/lib/cjs/client/web/691.js.LICENSE.txt +8 -0
  42. package/lib/cjs/client/web/725.js +1 -0
  43. package/lib/cjs/client/web/main.js +2 -38
  44. package/lib/cjs/client/web/main.js.LICENSE.txt +49 -0
  45. package/lib/cjs/creevey.js +3 -5
  46. package/lib/cjs/index.js +4 -4
  47. package/lib/cjs/server/config.js +2 -4
  48. package/lib/cjs/server/docker.js +3 -7
  49. package/lib/cjs/server/extract.js +1 -5
  50. package/lib/cjs/server/index.js +1 -1
  51. package/lib/cjs/server/loaders/babel/creevey-plugin.js +1 -3
  52. package/lib/cjs/server/loaders/babel/helpers.js +13 -23
  53. package/lib/cjs/server/loaders/babel/register.js +2 -4
  54. package/lib/cjs/server/loaders/webpack/compile.js +34 -51
  55. package/lib/cjs/server/loaders/webpack/creevey-loader.js +20 -22
  56. package/lib/cjs/server/loaders/webpack/dummy-hmr.js +2 -7
  57. package/lib/cjs/server/loaders/webpack/mdx-loader.js +2 -2
  58. package/lib/cjs/server/loaders/webpack/start.js +1 -1
  59. package/lib/cjs/server/logger.js +2 -1
  60. package/lib/cjs/server/master/index.js +2 -2
  61. package/lib/cjs/server/master/pool.js +9 -18
  62. package/lib/cjs/server/master/runner.js +53 -66
  63. package/lib/cjs/server/master/server.js +5 -3
  64. package/lib/cjs/server/messages.js +8 -10
  65. package/lib/cjs/server/selenium/browser.js +22 -46
  66. package/lib/cjs/server/selenium/selenoid.js +5 -7
  67. package/lib/cjs/server/stories.js +16 -33
  68. package/lib/cjs/server/storybook/entry.js +7 -22
  69. package/lib/cjs/server/storybook/helpers.js +20 -27
  70. package/lib/cjs/server/storybook/providers/browser.js +5 -9
  71. package/lib/cjs/server/storybook/providers/nodejs.js +7 -9
  72. package/lib/cjs/server/update.js +1 -5
  73. package/lib/cjs/server/utils.js +27 -36
  74. package/lib/cjs/server/worker/reporter.js +8 -20
  75. package/lib/cjs/server/worker/worker.js +6 -16
  76. package/lib/cjs/shared/index.js +101 -0
  77. package/lib/cjs/shared/serializeRegExp.js +42 -0
  78. package/lib/cjs/types.js +6 -6
  79. package/lib/esm/client/addon/Manager.js +122 -270
  80. package/lib/esm/client/addon/components/Addon.js +15 -34
  81. package/lib/esm/client/addon/components/Icons.js +10 -6
  82. package/lib/esm/client/addon/components/Panel.js +17 -13
  83. package/lib/esm/client/addon/components/TestSelect.js +11 -9
  84. package/lib/esm/client/addon/components/Tools.js +19 -36
  85. package/lib/esm/client/addon/decorator.js +1 -1
  86. package/lib/esm/client/addon/index.js +2 -0
  87. package/lib/esm/client/addon/preset.ie11.js +59 -0
  88. package/lib/esm/client/addon/preset.js +11 -26
  89. package/lib/esm/client/addon/register.js +42 -66
  90. package/lib/esm/client/addon/utils.js +3 -2
  91. package/lib/esm/client/addon/withCreevey.js +155 -341
  92. package/lib/esm/client/shared/components/ImagesView/BlendView.js +21 -17
  93. package/lib/esm/client/shared/components/ImagesView/ImagesView.js +21 -17
  94. package/lib/esm/client/shared/components/ImagesView/SideBySideView.js +40 -60
  95. package/lib/esm/client/shared/components/ImagesView/SlideView.js +33 -44
  96. package/lib/esm/client/shared/components/ImagesView/SwapView.js +22 -39
  97. package/lib/esm/client/shared/components/PageFooter/PageFooter.js +12 -8
  98. package/lib/esm/client/shared/components/PageFooter/Paging.js +14 -18
  99. package/lib/esm/client/shared/components/PageHeader/ImagePreview.js +22 -18
  100. package/lib/esm/client/shared/components/PageHeader/PageHeader.js +37 -60
  101. package/lib/esm/client/shared/components/ResultsPage.js +36 -64
  102. package/lib/esm/client/shared/creeveyClientApi.js +57 -84
  103. package/lib/esm/client/shared/helpers.js +123 -194
  104. package/lib/esm/client/shared/viewMode.js +4 -4
  105. package/lib/esm/creevey.js +3 -5
  106. package/lib/esm/index.js +1 -3
  107. package/lib/esm/server/config.js +2 -4
  108. package/lib/esm/server/docker.js +2 -2
  109. package/lib/esm/server/extract.js +1 -3
  110. package/lib/esm/server/index.js +1 -1
  111. package/lib/esm/server/loaders/babel/creevey-plugin.js +1 -3
  112. package/lib/esm/server/loaders/babel/helpers.js +12 -22
  113. package/lib/esm/server/loaders/babel/register.js +3 -5
  114. package/lib/esm/server/loaders/webpack/compile.js +35 -52
  115. package/lib/esm/server/loaders/webpack/creevey-loader.js +9 -10
  116. package/lib/esm/server/loaders/webpack/dummy-hmr.js +2 -6
  117. package/lib/esm/server/loaders/webpack/mdx-loader.js +2 -2
  118. package/lib/esm/server/loaders/webpack/start.js +1 -1
  119. package/lib/esm/server/master/index.js +2 -2
  120. package/lib/esm/server/master/pool.js +7 -18
  121. package/lib/esm/server/master/runner.js +53 -66
  122. package/lib/esm/server/master/server.js +5 -3
  123. package/lib/esm/server/messages.js +3 -5
  124. package/lib/esm/server/selenium/browser.js +19 -43
  125. package/lib/esm/server/selenium/selenoid.js +4 -6
  126. package/lib/esm/server/stories.js +16 -32
  127. package/lib/esm/server/storybook/entry.js +5 -22
  128. package/lib/esm/server/storybook/helpers.js +11 -20
  129. package/lib/esm/server/storybook/providers/browser.js +4 -5
  130. package/lib/esm/server/storybook/providers/nodejs.js +7 -8
  131. package/lib/esm/server/update.js +1 -5
  132. package/lib/esm/server/utils.js +18 -31
  133. package/lib/esm/server/worker/reporter.js +8 -20
  134. package/lib/esm/server/worker/worker.js +6 -16
  135. package/lib/esm/shared/index.js +78 -0
  136. package/lib/esm/shared/serializeRegExp.js +24 -0
  137. package/lib/types/cli.d.ts +1 -1
  138. package/lib/types/client/addon/Manager.d.ts +37 -37
  139. package/lib/types/client/addon/components/Addon.d.ts +8 -8
  140. package/lib/types/client/addon/components/Icons.d.ts +7 -7
  141. package/lib/types/client/addon/components/Panel.d.ts +9 -9
  142. package/lib/types/client/addon/components/TestSelect.d.ts +8 -9
  143. package/lib/types/client/addon/components/Tools.d.ts +6 -6
  144. package/lib/types/client/addon/decorator.d.ts +1 -1
  145. package/lib/types/client/addon/index.d.ts +2 -0
  146. package/lib/types/client/addon/preset.d.ts +23 -24
  147. package/lib/types/client/addon/preset.ie11.d.ts +10 -0
  148. package/lib/types/client/addon/readyForCapture.d.ts +6 -6
  149. package/lib/types/client/addon/register.d.ts +3 -3
  150. package/lib/types/client/addon/utils.d.ts +3 -2
  151. package/lib/types/client/addon/withCreevey.d.ts +24 -24
  152. package/lib/types/client/shared/components/ImagesView/BlendView.d.ts +3 -3
  153. package/lib/types/client/shared/components/ImagesView/ImagesView.d.ts +24 -25
  154. package/lib/types/client/shared/components/ImagesView/SideBySideView.d.ts +3 -3
  155. package/lib/types/client/shared/components/ImagesView/SlideView.d.ts +3 -3
  156. package/lib/types/client/shared/components/ImagesView/SwapView.d.ts +3 -3
  157. package/lib/types/client/shared/components/ImagesView/index.d.ts +5 -5
  158. package/lib/types/client/shared/components/PageFooter/PageFooter.d.ts +8 -9
  159. package/lib/types/client/shared/components/PageFooter/Paging.d.ts +7 -8
  160. package/lib/types/client/shared/components/PageHeader/ImagePreview.d.ts +12 -12
  161. package/lib/types/client/shared/components/PageHeader/PageHeader.d.ts +16 -17
  162. package/lib/types/client/shared/components/ResultsPage.d.ts +18 -18
  163. package/lib/types/client/shared/creeveyClientApi.d.ts +9 -9
  164. package/lib/types/client/shared/helpers.d.ts +46 -46
  165. package/lib/types/client/shared/viewMode.d.ts +4 -4
  166. package/lib/types/client/web/CreeveyApp.d.ts +11 -12
  167. package/lib/types/client/web/CreeveyContext.d.ts +11 -11
  168. package/lib/types/client/web/CreeveyLoader.d.ts +2 -3
  169. package/lib/types/client/web/CreeveyView/SideBar/Checkbox.d.ts +19 -19
  170. package/lib/types/client/web/CreeveyView/SideBar/Search.d.ts +6 -6
  171. package/lib/types/client/web/CreeveyView/SideBar/SideBar.d.ts +14 -14
  172. package/lib/types/client/web/CreeveyView/SideBar/SideBarHeader.d.ts +12 -13
  173. package/lib/types/client/web/CreeveyView/SideBar/SuiteLink.d.ts +33 -33
  174. package/lib/types/client/web/CreeveyView/SideBar/TestLink.d.ts +7 -8
  175. package/lib/types/client/web/CreeveyView/SideBar/TestStatusIcon.d.ts +10 -10
  176. package/lib/types/client/web/CreeveyView/SideBar/TestsStatus.d.ts +9 -9
  177. package/lib/types/client/web/CreeveyView/SideBar/Toggle.d.ts +6 -6
  178. package/lib/types/client/web/CreeveyView/SideBar/index.d.ts +1 -1
  179. package/lib/types/client/web/KeyboardEventsContext.d.ts +13 -13
  180. package/lib/types/client/web/index.d.ts +4 -4
  181. package/lib/types/creevey.d.ts +1 -1
  182. package/lib/types/index.d.ts +0 -1
  183. package/lib/types/server/config.d.ts +4 -4
  184. package/lib/types/server/docker.d.ts +7 -7
  185. package/lib/types/server/extract.d.ts +2 -2
  186. package/lib/types/server/index.d.ts +2 -2
  187. package/lib/types/server/loaders/babel/creevey-plugin.d.ts +1 -1
  188. package/lib/types/server/loaders/babel/helpers.d.ts +19 -19
  189. package/lib/types/server/loaders/babel/register.d.ts +5 -5
  190. package/lib/types/server/loaders/hooks/mdx.d.ts +1 -1
  191. package/lib/types/server/loaders/hooks/svelte.d.ts +1 -1
  192. package/lib/types/server/loaders/webpack/compile.d.ts +2 -2
  193. package/lib/types/server/loaders/webpack/creevey-loader.d.ts +4 -2
  194. package/lib/types/server/loaders/webpack/dummy-hmr.d.ts +10 -10
  195. package/lib/types/server/loaders/webpack/mdx-loader.d.ts +6 -6
  196. package/lib/types/server/loaders/webpack/start.d.ts +1 -1
  197. package/lib/types/server/logger.d.ts +10 -6
  198. package/lib/types/server/master/api.d.ts +7 -7
  199. package/lib/types/server/master/index.d.ts +3 -3
  200. package/lib/types/server/master/master.d.ts +7 -7
  201. package/lib/types/server/master/pool.d.ts +31 -31
  202. package/lib/types/server/master/runner.d.ts +26 -26
  203. package/lib/types/server/master/server.d.ts +2 -2
  204. package/lib/types/server/messages.d.ts +27 -27
  205. package/lib/types/server/selenium/browser.d.ts +17 -17
  206. package/lib/types/server/selenium/index.d.ts +2 -2
  207. package/lib/types/server/selenium/selenoid.d.ts +3 -3
  208. package/lib/types/server/stories.d.ts +8 -8
  209. package/lib/types/server/storybook/entry.d.ts +17 -18
  210. package/lib/types/server/storybook/helpers.d.ts +24 -24
  211. package/lib/types/server/storybook/providers/browser.d.ts +4 -4
  212. package/lib/types/server/storybook/providers/hybrid.d.ts +4 -4
  213. package/lib/types/server/storybook/providers/nodejs.d.ts +9 -9
  214. package/lib/types/server/testsFiles/parser.d.ts +12 -12
  215. package/lib/types/server/testsFiles/register.d.ts +2 -2
  216. package/lib/types/server/update.d.ts +2 -2
  217. package/lib/types/server/utils.d.ts +24 -20
  218. package/lib/types/server/worker/chai-image.d.ts +6 -6
  219. package/lib/types/server/worker/helpers.d.ts +8 -8
  220. package/lib/types/server/worker/index.d.ts +1 -1
  221. package/lib/types/server/worker/reporter.d.ts +8 -8
  222. package/lib/types/server/worker/worker.d.ts +4 -4
  223. package/lib/types/{shared.d.ts → shared/index.d.ts} +7 -16
  224. package/lib/types/shared/serializeRegExp.d.ts +9 -0
  225. package/lib/types/types.d.ts +489 -489
  226. package/package.json +114 -102
  227. package/preset/ie11.js +5 -0
  228. package/{preset.js → preset/index.js} +2 -2
  229. package/types/mdx.d.ts +3 -2
  230. package/lib/cjs/client/web/1.js +0 -13
  231. package/lib/cjs/client/web/2.js +0 -1
  232. package/lib/cjs/shared.js +0 -124
  233. package/lib/esm/shared.js +0 -93
  234. package/storybook-static/stories.json +0 -21
@@ -3,13 +3,15 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.withCreevey = withCreevey;
7
6
  exports.capture = capture;
7
+ exports.withCreevey = withCreevey;
8
8
 
9
9
  var Events = _interopRequireWildcard(require("@storybook/core-events"));
10
10
 
11
11
  var polyfill = _interopRequireWildcard(require("event-source-polyfill"));
12
12
 
13
+ var _testingLibrary = require("@storybook/testing-library");
14
+
13
15
  var _addons = require("@storybook/addons");
14
16
 
15
17
  var _types = require("../../types");
@@ -18,81 +20,45 @@ var _shared = require("../../shared");
18
20
 
19
21
  var _helpers = require("../shared/helpers");
20
22
 
21
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
-
23
- 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; }
24
-
25
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
26
-
27
- 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."); }
28
-
29
- 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); }
30
-
31
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
32
-
33
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
34
-
35
- 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; }
23
+ var _utils = require("./utils");
36
24
 
37
- 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); } }
25
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
38
26
 
39
- 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); }); }; }
27
+ 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; }
40
28
 
41
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
42
-
43
- if ((typeof process === "undefined" ? "undefined" : _typeof(process)) != 'object' || typeof process.version != 'string') {
29
+ if (typeof process != 'object' || typeof process.version != 'string') {
44
30
  // NOTE If you don't use babel-polyfill or any other polyfills that add EventSource for IE11
45
31
  // You don't get hot reload in IE11. So put polyfill for that to better UX
46
32
  // Don't load in nodejs environment
47
33
  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
48
- var NativeEventSource = polyfill.NativeEventSource,
49
- EventSourcePolyfill = polyfill.EventSourcePolyfill; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
34
+ const {
35
+ NativeEventSource,
36
+ EventSourcePolyfill
37
+ } = polyfill; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
50
38
 
51
39
  window.EventSource = NativeEventSource || EventSourcePolyfill;
52
40
  }
53
41
 
54
- var 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";
55
-
56
- function resetCurrentStory(_x) {
57
- return _resetCurrentStory.apply(this, arguments);
58
- }
42
+ 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";
59
43
 
60
- function _resetCurrentStory() {
61
- _resetCurrentStory = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4(channel) {
62
- return regeneratorRuntime.wrap(function _callee4$(_context4) {
63
- while (1) {
64
- switch (_context4.prev = _context4.next) {
65
- case 0:
66
- setTimeout(function () {
67
- return channel.emit(Events.SET_CURRENT_STORY, {
68
- storyId: true,
69
- name: '',
70
- kind: ''
71
- });
72
- }, 0);
73
- return _context4.abrupt("return", new Promise(function (resolve) {
74
- return channel.once(Events.STORY_MISSING, resolve);
75
- }));
76
-
77
- case 2:
78
- case "end":
79
- return _context4.stop();
80
- }
81
- }
82
- }, _callee4);
83
- }));
84
- return _resetCurrentStory.apply(this, arguments);
44
+ async function resetCurrentStory(channel) {
45
+ setTimeout(() => channel.emit(Events.SET_CURRENT_STORY, {
46
+ storyId: true,
47
+ name: '',
48
+ kind: ''
49
+ }), 0);
50
+ return new Promise(resolve => channel.once(Events.STORY_MISSING, resolve));
85
51
  }
86
52
 
87
53
  function catchRenderError(channel) {
88
- var rejectCallback;
89
- var promise = new Promise(function (_resolve, reject) {
90
- return rejectCallback = reject;
91
- });
54
+ let rejectCallback;
55
+ const promise = new Promise((_resolve, reject) => rejectCallback = reject);
92
56
 
93
57
  function errorHandler(_ref) {
94
- var title = _ref.title,
95
- description = _ref.description;
58
+ let {
59
+ title,
60
+ description
61
+ } = _ref;
96
62
  rejectCallback({
97
63
  message: title,
98
64
  stack: description
@@ -116,10 +82,8 @@ function catchRenderError(channel) {
116
82
  }
117
83
 
118
84
  function waitForStoryRendered(channel) {
119
- var resolveCallback;
120
- var promise = new Promise(function (resolve) {
121
- return resolveCallback = resolve;
122
- });
85
+ let resolveCallback;
86
+ const promise = new Promise(resolve => resolveCallback = resolve);
123
87
 
124
88
  function renderHandler() {
125
89
  resolveCallback();
@@ -137,13 +101,11 @@ function waitForStoryRendered(channel) {
137
101
 
138
102
  function waitForFontsLoaded() {
139
103
  if (!document.fonts) return;
140
- var areFontsLoading = Array.from(document.fonts).some(function (font) {
141
- return font.status == 'loading';
142
- });
104
+ const areFontsLoading = Array.from(document.fonts).some(font => font.status == 'loading');
143
105
 
144
106
  if (areFontsLoading) {
145
- return new Promise(function (resolve) {
146
- var fontsLoadedHandler = function fontsLoadedHandler() {
107
+ return new Promise(resolve => {
108
+ const fontsLoadedHandler = () => {
147
109
  document.fonts.removeEventListener('loadingdone', fontsLoadedHandler);
148
110
  resolve();
149
111
  };
@@ -154,247 +116,133 @@ function waitForFontsLoaded() {
154
116
  }
155
117
 
156
118
  function waitForCaptureCall() {
157
- return new Promise(function (resolve) {
158
- return captureResolver = resolve;
159
- });
119
+ return new Promise(resolve => captureResolver = resolve);
160
120
  }
161
121
 
162
122
  function initCreeveyState() {
163
123
  var _window$localStorage$;
164
124
 
165
- var prevState = JSON.parse((_window$localStorage$ = window.localStorage.getItem('Creevey_Tests')) !== null && _window$localStorage$ !== void 0 ? _window$localStorage$ : '{}');
125
+ const prevState = JSON.parse((_window$localStorage$ = window.localStorage.getItem('Creevey_Tests')) !== null && _window$localStorage$ !== void 0 ? _window$localStorage$ : '{}');
166
126
  if (prevState.creeveyHost) window.__CREEVEY_SERVER_HOST__ = prevState.creeveyHost;
167
127
  if (prevState.creeveyPort) window.__CREEVEY_SERVER_PORT__ = prevState.creeveyPort;
168
128
  if (prevState.setStoriesCounter) setStoriesCounter = prevState.setStoriesCounter;
169
129
  if (prevState.isTestBrowser) isTestBrowser = prevState.isTestBrowser;
170
- window.addEventListener('beforeunload', function () {
130
+ window.addEventListener('beforeunload', () => {
171
131
  window.localStorage.setItem('Creevey_Tests', JSON.stringify({
172
132
  creeveyHost: window.__CREEVEY_SERVER_HOST__,
173
133
  creeveyPort: window.__CREEVEY_SERVER_PORT__,
174
- setStoriesCounter: setStoriesCounter,
175
- isTestBrowser: isTestBrowser
134
+ setStoriesCounter,
135
+ isTestBrowser
176
136
  }));
177
137
  });
178
138
  }
179
139
 
180
- var isTestBrowser = false;
181
- var captureResolver;
182
- var waitForCreevey;
183
- var creeveyReady;
184
- var setStoriesCounter = 0;
140
+ let isTestBrowser = false;
141
+ let captureResolver;
142
+ let waitForCreevey;
143
+ let creeveyReady;
144
+ let setStoriesCounter = 0;
185
145
 
186
146
  function withCreevey() {
187
- var currentStory = '';
188
- var isAnimationDisabled = false;
147
+ let currentStory = '';
148
+ let isAnimationDisabled = false;
189
149
  initCreeveyState();
190
150
 
191
151
  function disableAnimation() {
192
152
  isAnimationDisabled = true;
193
- var style = document.createElement('style');
194
- var textNode = document.createTextNode(disableAnimationsStyles);
153
+ const style = document.createElement('style');
154
+ const textNode = document.createTextNode(disableAnimationsStyles);
195
155
  style.setAttribute('type', 'text/css');
196
156
  style.appendChild(textNode);
197
157
  document.head.appendChild(style);
198
158
  }
199
159
 
200
- function getStories() {
201
- return _getStories.apply(this, arguments);
202
- }
160
+ async function getStories() {
161
+ var _window$__STORYBOOK_S;
203
162
 
204
- function _getStories() {
205
- _getStories = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
206
- var _window$__STORYBOOK_S;
207
-
208
- var storiesPromise, store;
209
- return regeneratorRuntime.wrap(function _callee$(_context) {
210
- while (1) {
211
- switch (_context.prev = _context.next) {
212
- case 0:
213
- storiesPromise = new Promise(function (resolve) {
214
- return _addons.addons.getChannel().once(Events.SET_STORIES, function (data) {
215
- return resolve((0, _shared.serializeRawStories)((0, _shared.denormalizeStoryParameters)(data)));
216
- });
217
- });
218
- store = (_window$__STORYBOOK_S = window.__STORYBOOK_STORY_STORE__) !== null && _window$__STORYBOOK_S !== void 0 ? _window$__STORYBOOK_S : {}; // @ts-expect-error `pushToManager` exists only in Storybook 6.0 - 6.3
219
-
220
- if (!store.pushToManager) {
221
- _context.next = 6;
222
- break;
223
- }
224
-
225
- // @ts-expect-error `pushToManager` exists only in Storybook 6.0 - 6.3
226
- // eslint-disable-next-line @typescript-eslint/no-unsafe-call
227
- store.pushToManager();
228
- _context.next = 13;
229
- break;
230
-
231
- case 6:
232
- if (!store.cacheAllCSFFiles) {
233
- _context.next = 12;
234
- break;
235
- }
236
-
237
- _context.next = 9;
238
- return store.cacheAllCSFFiles();
239
-
240
- case 9:
241
- _addons.addons.getChannel().emit(Events.SET_STORIES, store.getSetStoriesPayload());
242
-
243
- _context.next = 13;
244
- break;
245
-
246
- case 12:
247
- return _context.abrupt("return");
248
-
249
- case 13:
250
- _addons.addons.getChannel().on(Events.SET_STORIES, function (data) {
251
- // TODO Figure out how to get only updated stories
252
- // TODO Subscribe on hmr? like use dummy-hmr
253
- setStoriesCounter += 1;
254
- var stories = (0, _shared.serializeRawStories)((0, _shared.denormalizeStoryParameters)(data));
255
- var storiesByFiles = new Map();
256
- Object.values(stories).forEach(function (story) {
257
- var storiesFromFile = storiesByFiles.get(story.parameters.fileName);
258
- if (storiesFromFile) storiesFromFile.push(story);else storiesByFiles.set(story.parameters.fileName, [story]);
259
- });
260
- void fetch("http://".concat((0, _helpers.getConnectionUrl)(), "/stories"), {
261
- method: 'POST',
262
- headers: {
263
- 'Content-Type': 'application/json'
264
- },
265
- body: JSON.stringify({
266
- setStoriesCounter: setStoriesCounter,
267
- stories: _toConsumableArray(storiesByFiles.entries())
268
- })
269
- });
270
- });
271
-
272
- return _context.abrupt("return", storiesPromise);
273
-
274
- case 15:
275
- case "end":
276
- return _context.stop();
277
- }
278
- }
279
- }, _callee);
280
- }));
281
- return _getStories.apply(this, arguments);
282
- }
163
+ const storiesPromise = new Promise(resolve => _addons.addons.getChannel().once(Events.SET_STORIES, data => resolve((0, _shared.serializeRawStories)((0, _shared.denormalizeStoryParameters)(data)))));
164
+ const store = (_window$__STORYBOOK_S = window.__STORYBOOK_STORY_STORE__) !== null && _window$__STORYBOOK_S !== void 0 ? _window$__STORYBOOK_S : {};
165
+
166
+ if (store.cacheAllCSFFiles) {
167
+ await store.cacheAllCSFFiles();
168
+
169
+ _addons.addons.getChannel().emit(Events.SET_STORIES, store.getSetStoriesPayload());
170
+ } else return;
171
+
172
+ _addons.addons.getChannel().on(Events.SET_STORIES, data => {
173
+ // TODO Figure out how to get only updated stories
174
+ // TODO Subscribe on hmr? like use dummy-hmr
175
+ setStoriesCounter += 1;
176
+ const stories = (0, _shared.serializeRawStories)((0, _shared.denormalizeStoryParameters)(data));
177
+ const storiesByFiles = new Map();
178
+ Object.values(stories).forEach(story => {
179
+ const storiesFromFile = storiesByFiles.get(story.parameters.fileName);
180
+ if (storiesFromFile) storiesFromFile.push(story);else storiesByFiles.set(story.parameters.fileName, [story]);
181
+ });
182
+ void fetch("http://".concat((0, _helpers.getConnectionUrl)(), "/stories"), {
183
+ method: 'POST',
184
+ headers: {
185
+ 'Content-Type': 'application/json'
186
+ },
187
+ body: JSON.stringify({
188
+ setStoriesCounter,
189
+ stories: [...storiesByFiles.entries()]
190
+ })
191
+ });
192
+ });
283
193
 
284
- function selectStory(_x2, _x3, _x4, _x5, _x6) {
285
- return _selectStory.apply(this, arguments);
194
+ return storiesPromise;
286
195
  }
287
196
 
288
- function _selectStory() {
289
- _selectStory = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(storyId, kind, name, shouldWaitForReady, callback) {
290
- var channel, waitForReady, isCaptureCalled, renderPromise, errorPromise, capturePromise, _reason$stack, errorMessage;
291
-
292
- return regeneratorRuntime.wrap(function _callee3$(_context3) {
293
- while (1) {
294
- switch (_context3.prev = _context3.next) {
295
- case 0:
296
- if (!isAnimationDisabled) disableAnimation();
297
- isTestBrowser = true;
298
- channel = _addons.addons.getChannel();
299
- waitForReady = shouldWaitForReady ? new Promise(function (resolve) {
300
- return window.__CREEVEY_SET_READY_FOR_CAPTURE__ = resolve;
301
- }) : Promise.resolve();
302
-
303
- if (!(storyId == currentStory)) {
304
- _context3.next = 9;
305
- break;
306
- }
307
-
308
- _context3.next = 7;
309
- return resetCurrentStory(channel);
310
-
311
- case 7:
312
- _context3.next = 10;
313
- break;
314
-
315
- case 9:
316
- currentStory = storyId;
317
-
318
- case 10:
319
- isCaptureCalled = false;
320
- renderPromise = waitForStoryRendered(channel);
321
- errorPromise = catchRenderError(channel);
322
- capturePromise = waitForCaptureCall().then(function () {
323
- return isCaptureCalled = true;
324
- });
325
- setTimeout(function () {
326
- return channel.emit(Events.SET_CURRENT_STORY, {
327
- storyId: storyId,
328
- name: name,
329
- kind: kind
330
- });
331
- }, 0);
332
- _context3.prev = 15;
333
- _context3.next = 18;
334
- return Promise.race([_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
335
- return regeneratorRuntime.wrap(function _callee2$(_context2) {
336
- while (1) {
337
- switch (_context2.prev = _context2.next) {
338
- case 0:
339
- _context2.next = 2;
340
- return Promise.race([renderPromise, capturePromise]);
341
-
342
- case 2:
343
- _context2.next = 4;
344
- return waitForFontsLoaded();
345
-
346
- case 4:
347
- _context2.next = 6;
348
- return waitForReady;
349
-
350
- case 6:
351
- case "end":
352
- return _context2.stop();
353
- }
354
- }
355
- }, _callee2);
356
- }))(), errorPromise]);
357
-
358
- case 18:
359
- callback([null, isCaptureCalled]);
360
- _context3.next = 25;
361
- break;
362
-
363
- case 21:
364
- _context3.prev = 21;
365
- _context3.t0 = _context3["catch"](15);
366
- // NOTE Event `STORY_THREW_EXCEPTION` triggered only in react and vue frameworks and return Error instance
367
- // NOTE Event `STORY_ERRORED` return error-like object without `name` field
368
- errorMessage = _context3.t0 instanceof Error ? (_reason$stack = _context3.t0.stack) !== null && _reason$stack !== void 0 ? _reason$stack : _context3.t0.message : (0, _types.isObject)(_context3.t0) ? "".concat(_context3.t0.message, "\n ").concat(_context3.t0.stack) : _context3.t0;
369
- callback([errorMessage]);
370
-
371
- case 25:
372
- _context3.prev = 25;
373
- renderPromise.cancel();
374
- errorPromise.cancel();
375
- return _context3.finish(25);
376
-
377
- case 29:
378
- case "end":
379
- return _context3.stop();
380
- }
381
- }
382
- }, _callee3, null, [[15, 21, 25, 29]]);
383
- }));
384
- return _selectStory.apply(this, arguments);
197
+ async function selectStory(storyId, kind, name, shouldWaitForReady, callback) {
198
+ if (!isAnimationDisabled) disableAnimation();
199
+ isTestBrowser = true;
200
+
201
+ const channel = _addons.addons.getChannel();
202
+
203
+ const waitForReady = shouldWaitForReady ? new Promise(resolve => window.__CREEVEY_SET_READY_FOR_CAPTURE__ = resolve) : Promise.resolve();
204
+ if (storyId == currentStory) await resetCurrentStory(channel);else currentStory = storyId;
205
+ let isCaptureCalled = false;
206
+ const renderPromise = waitForStoryRendered(channel);
207
+ const errorPromise = catchRenderError(channel);
208
+ const capturePromise = waitForCaptureCall().then(() => isCaptureCalled = true);
209
+ setTimeout(() => channel.emit(Events.SET_CURRENT_STORY, {
210
+ storyId,
211
+ name,
212
+ kind
213
+ }), 0);
214
+
215
+ try {
216
+ await Promise.race([(async () => {
217
+ await Promise.race([renderPromise, capturePromise]);
218
+ await waitForFontsLoaded();
219
+ await waitForReady;
220
+ })(), errorPromise]);
221
+ callback([null, isCaptureCalled]);
222
+ } catch (reason) {
223
+ var _reason$stack;
224
+
225
+ // NOTE Event `STORY_THREW_EXCEPTION` triggered only in react and vue frameworks and return Error instance
226
+ // NOTE Event `STORY_ERRORED` return error-like object without `name` field
227
+ const errorMessage = reason instanceof Error ? (_reason$stack = reason.stack) !== null && _reason$stack !== void 0 ? _reason$stack : reason.message : (0, _types.isObject)(reason) ? "".concat(reason.message, "\n ").concat(reason.stack) : reason;
228
+ callback([errorMessage]);
229
+ } finally {
230
+ renderPromise.cancel();
231
+ errorPromise.cancel();
232
+ }
385
233
  }
386
234
 
387
235
  function updateGlobals(globals) {
388
236
  _addons.addons.getChannel().emit(Events.UPDATE_GLOBALS, {
389
- globals: globals
237
+ globals
390
238
  });
391
239
  }
392
240
 
393
241
  function insertIgnoreStyles(ignoreSelectors) {
394
- var stylesElement = document.createElement('style');
242
+ const stylesElement = document.createElement('style');
395
243
  stylesElement.setAttribute('type', 'text/css');
396
244
  document.head.appendChild(stylesElement);
397
- ignoreSelectors.forEach(function (selector) {
245
+ ignoreSelectors.forEach(selector => {
398
246
  stylesElement.innerHTML += "\n ".concat(selector, " {\n background: #000 !important;\n box-shadow: none !important;\n text-shadow: none !important;\n outline: 0 !important;\n color: rgba(0,0,0,0) !important;\n }\n ").concat(selector, " *, ").concat(selector, "::before, ").concat(selector, "::after {\n visibility: hidden !important;\n }\n ");
399
247
  });
400
248
  return stylesElement;
@@ -408,17 +256,17 @@ function withCreevey() {
408
256
 
409
257
  function hasPlayCompletedYet(callback) {
410
258
  creeveyReady();
411
- var isCaptureCalled = false;
412
- var isPlayCompleted = false;
259
+ let isCaptureCalled = false;
260
+ let isPlayCompleted = false;
413
261
 
414
- var channel = _addons.addons.getChannel();
262
+ const channel = _addons.addons.getChannel();
415
263
 
416
- void waitForStoryRendered(channel).then(function () {
264
+ void waitForStoryRendered(channel).then(() => {
417
265
  if (isCaptureCalled) return;
418
266
  isPlayCompleted = true;
419
267
  callback(true);
420
268
  });
421
- void waitForCaptureCall().then(function () {
269
+ void waitForCaptureCall().then(() => {
422
270
  if (isPlayCompleted) return;
423
271
  isCaptureCalled = true;
424
272
  callback(false);
@@ -431,49 +279,51 @@ function withCreevey() {
431
279
  window.__CREEVEY_INSERT_IGNORE_STYLES__ = insertIgnoreStyles;
432
280
  window.__CREEVEY_REMOVE_IGNORE_STYLES__ = removeIgnoreStyles;
433
281
  window.__CREEVEY_HAS_PLAY_COMPLETED_YET__ = hasPlayCompletedYet;
434
- window.__CREEVEY_SET_READY_FOR_CAPTURE__ = _types.noop; // const queryAllByQuery = (container: HTMLElement, query: string): HTMLElement[] =>
435
- // [...container.querySelectorAll(query)].filter((e) => e instanceof HTMLElement) as HTMLElement[];
436
- // const getMultipleError = (_: Element | null, query: string): string => `Found multiple elements by query: ${query}`;
437
- // const getMissingError = (_: Element | null, query: string): string => `Unable to find an element by query: ${query}`;
438
- // const [queryByQuery, getAllByQuery, getByQuery, findAllByQuery, findByQuery] = buildQueries(
439
- // queryAllByQuery,
440
- // getMultipleError,
441
- // getMissingError,
442
- // );
443
- // const queries = {
444
- // queryByQuery,
445
- // getAllByQuery,
446
- // getByQuery,
447
- // findAllByQuery,
448
- // findByQuery,
449
- // };
282
+ window.__CREEVEY_SET_READY_FOR_CAPTURE__ = _types.noop;
283
+
284
+ const queryAllByQuery = (container, query) => [...container.querySelectorAll(query)].filter(e => e instanceof HTMLElement);
285
+
286
+ const getMultipleError = (_, query) => "Found multiple elements by query: ".concat(query);
450
287
 
288
+ const getMissingError = (_, query) => "Unable to find an element by query: ".concat(query);
289
+
290
+ const [queryByQuery, getAllByQuery, getByQuery, findAllByQuery, findByQuery] = (0, _testingLibrary.buildQueries)(queryAllByQuery, getMultipleError, getMissingError);
291
+ const queries = {
292
+ queryByQuery,
293
+ getAllByQuery,
294
+ getByQuery,
295
+ findAllByQuery,
296
+ findByQuery
297
+ };
451
298
  return (0, _addons.makeDecorator)({
452
299
  name: 'withCreevey',
453
300
  parameterName: 'creevey',
454
- wrapper: function wrapper(getStory, context) {
301
+ wrapper: (getStory, context) => {
455
302
  var _ref2;
456
303
 
457
304
  // TODO Define proper types, like captureElement is a promise
458
- var _context$parameters$c = context.parameters.creevey = (_ref2 = context.parameters.creevey) !== null && _ref2 !== void 0 ? _ref2 : {},
459
- captureElement = _context$parameters$c.captureElement;
460
-
305
+ const {
306
+ captureElement
307
+ } = context.parameters.creevey = (_ref2 = context.parameters.creevey) !== null && _ref2 !== void 0 ? _ref2 : {};
461
308
  Object.defineProperty(context.parameters.creevey, 'captureElement', {
462
- get: function get() {
309
+ get() {
463
310
  switch (true) {
464
311
  case captureElement === undefined:
465
312
  return Promise.resolve(context.canvasElement);
466
313
 
467
314
  case captureElement === null:
468
315
  return Promise.resolve(document.documentElement);
469
- // case typeof captureElement == 'string':
470
- // return within<typeof queries>(context.canvasElement, queries).findByQuery(captureElement as string);
316
+
317
+ case typeof captureElement == 'string':
318
+ return _utils.isInternetExplorer // some code from testing-library makes IE hang
319
+ ? Promise.resolve(context.canvasElement.querySelector(captureElement)) : (0, _testingLibrary.within)(context.canvasElement, queries).findByQuery(captureElement);
471
320
 
472
321
  case typeof captureElement == 'function':
473
322
  // TODO Define type for it
474
323
  return Promise.resolve(captureElement(context));
475
324
  }
476
325
  },
326
+
477
327
  enumerable: true,
478
328
  configurable: true
479
329
  });
@@ -482,50 +332,19 @@ function withCreevey() {
482
332
  });
483
333
  }
484
334
 
485
- function capture(_x7) {
486
- return _capture.apply(this, arguments);
487
- }
488
-
489
- function _capture() {
490
- _capture = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5(options) {
491
- return regeneratorRuntime.wrap(function _callee5$(_context5) {
492
- while (1) {
493
- switch (_context5.prev = _context5.next) {
494
- case 0:
495
- if (isTestBrowser) {
496
- _context5.next = 2;
497
- break;
498
- }
499
-
500
- return _context5.abrupt("return");
501
-
502
- case 2:
503
- captureResolver();
504
- waitForCreevey = new Promise(function (resolve) {
505
- return creeveyReady = resolve;
506
- });
507
- _context5.next = 6;
508
- return fetch("http://".concat((0, _helpers.getConnectionUrl)(), "/capture"), {
509
- method: 'POST',
510
- headers: {
511
- 'Content-Type': 'application/json'
512
- },
513
- body: JSON.stringify({
514
- workerId: window.__CREEVEY_WORKER_ID__,
515
- options: options
516
- })
517
- });
518
-
519
- case 6:
520
- _context5.next = 8;
521
- return waitForCreevey;
522
-
523
- case 8:
524
- case "end":
525
- return _context5.stop();
526
- }
527
- }
528
- }, _callee5);
529
- }));
530
- return _capture.apply(this, arguments);
335
+ async function capture(options) {
336
+ if (!isTestBrowser) return;
337
+ captureResolver();
338
+ waitForCreevey = new Promise(resolve => creeveyReady = resolve);
339
+ await fetch("http://".concat((0, _helpers.getConnectionUrl)(), "/capture"), {
340
+ method: 'POST',
341
+ headers: {
342
+ 'Content-Type': 'application/json'
343
+ },
344
+ body: JSON.stringify({
345
+ workerId: window.__CREEVEY_WORKER_ID__,
346
+ options
347
+ })
348
+ });
349
+ await waitForCreevey;
531
350
  }