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.
Files changed (216) hide show
  1. package/.yarn/install-state.gz +0 -0
  2. package/.yarnrc.yml +1 -0
  3. package/lib/cjs/cli.js +1 -0
  4. package/lib/cjs/client/addon/Manager.js +151 -223
  5. package/lib/cjs/client/addon/components/Addon.js +2 -9
  6. package/lib/cjs/client/addon/components/Icons.js +1 -7
  7. package/lib/cjs/client/addon/components/Panel.js +5 -18
  8. package/lib/cjs/client/addon/components/TestSelect.js +12 -25
  9. package/lib/cjs/client/addon/components/Tools.js +17 -28
  10. package/lib/cjs/client/addon/decorator.js +1 -4
  11. package/lib/cjs/client/addon/index.js +0 -4
  12. package/lib/cjs/client/addon/preset.js +3 -12
  13. package/lib/cjs/client/addon/preview.js +1 -4
  14. package/lib/cjs/client/addon/readyForCapture.js +1 -4
  15. package/lib/cjs/client/addon/register.js +11 -26
  16. package/lib/cjs/client/addon/utils.js +1 -9
  17. package/lib/cjs/client/addon/withCreevey.js +55 -134
  18. package/lib/cjs/client/shared/components/ImagesView/BlendView.js +5 -17
  19. package/lib/cjs/client/shared/components/ImagesView/ImagesView.js +8 -24
  20. package/lib/cjs/client/shared/components/ImagesView/SideBySideView.js +7 -23
  21. package/lib/cjs/client/shared/components/ImagesView/SlideView.js +7 -22
  22. package/lib/cjs/client/shared/components/ImagesView/SwapView.js +5 -17
  23. package/lib/cjs/client/shared/components/ImagesView/index.js +0 -5
  24. package/lib/cjs/client/shared/components/PageFooter/PageFooter.js +1 -8
  25. package/lib/cjs/client/shared/components/PageFooter/Paging.js +2 -19
  26. package/lib/cjs/client/shared/components/PageHeader/ImagePreview.js +21 -17
  27. package/lib/cjs/client/shared/components/PageHeader/PageHeader.js +5 -24
  28. package/lib/cjs/client/shared/components/ResultsPage.js +9 -37
  29. package/lib/cjs/client/shared/creeveyClientApi.js +3 -13
  30. package/lib/cjs/client/shared/helpers.js +21 -75
  31. package/lib/cjs/client/shared/viewMode.js +2 -6
  32. package/lib/cjs/client/web/192.js +1 -0
  33. package/lib/cjs/client/web/632.js +43 -0
  34. package/lib/cjs/client/web/794.js +1 -0
  35. package/lib/cjs/client/web/main.js +78 -1
  36. package/lib/cjs/client/web/main.js.LICENSE.txt +0 -15
  37. package/lib/cjs/creevey.js +5 -21
  38. package/lib/cjs/index.js +0 -15
  39. package/lib/cjs/server/config.js +13 -33
  40. package/lib/cjs/server/docker.js +5 -27
  41. package/lib/cjs/server/index.js +8 -33
  42. package/lib/cjs/server/logger.js +5 -19
  43. package/lib/cjs/server/master/api.js +1 -14
  44. package/lib/cjs/server/master/index.js +15 -46
  45. package/lib/cjs/server/master/master.js +6 -21
  46. package/lib/cjs/server/master/pool.js +2 -37
  47. package/lib/cjs/server/master/runner.js +15 -42
  48. package/lib/cjs/server/master/server.js +5 -27
  49. package/lib/cjs/server/messages.js +7 -53
  50. package/lib/cjs/server/selenium/browser.js +51 -136
  51. package/lib/cjs/server/selenium/index.js +0 -4
  52. package/lib/cjs/server/selenium/selenoid.js +7 -33
  53. package/lib/cjs/server/stories.js +25 -30
  54. package/lib/cjs/server/storybook/providers/browser.js +5 -18
  55. package/lib/cjs/server/storybook/providers/hybrid.js +9 -29
  56. package/lib/cjs/server/testsFiles/parser.js +3 -19
  57. package/lib/cjs/server/testsFiles/register.js +7 -9
  58. package/lib/cjs/server/update.js +3 -20
  59. package/lib/cjs/server/utils.js +9 -41
  60. package/lib/cjs/server/worker/chai-image.js +1 -27
  61. package/lib/cjs/server/worker/helpers.js +2 -12
  62. package/lib/cjs/server/worker/index.js +1 -3
  63. package/lib/cjs/server/worker/reporter.js +8 -24
  64. package/lib/cjs/server/worker/worker.js +5 -49
  65. package/lib/cjs/shared/index.js +22 -36
  66. package/lib/cjs/shared/serializeRegExp.js +0 -8
  67. package/lib/cjs/types.js +4 -14
  68. package/lib/esm/cli.js +1 -1
  69. package/lib/esm/client/addon/Manager.js +151 -214
  70. package/lib/esm/client/addon/components/Panel.js +4 -6
  71. package/lib/esm/client/addon/components/TestSelect.js +11 -17
  72. package/lib/esm/client/addon/components/Tools.js +15 -14
  73. package/lib/esm/client/addon/preset.js +2 -8
  74. package/lib/esm/client/addon/readyForCapture.js +1 -3
  75. package/lib/esm/client/addon/register.js +6 -8
  76. package/lib/esm/client/addon/utils.js +0 -5
  77. package/lib/esm/client/addon/withCreevey.js +54 -116
  78. package/lib/esm/client/shared/components/ImagesView/BlendView.js +1 -1
  79. package/lib/esm/client/shared/components/ImagesView/ImagesView.js +6 -8
  80. package/lib/esm/client/shared/components/ImagesView/SideBySideView.js +3 -4
  81. package/lib/esm/client/shared/components/ImagesView/SlideView.js +3 -3
  82. package/lib/esm/client/shared/components/ImagesView/SwapView.js +1 -1
  83. package/lib/esm/client/shared/components/PageFooter/Paging.js +1 -11
  84. package/lib/esm/client/shared/components/PageHeader/ImagePreview.js +18 -7
  85. package/lib/esm/client/shared/components/PageHeader/PageHeader.js +3 -8
  86. package/lib/esm/client/shared/components/ResultsPage.js +6 -15
  87. package/lib/esm/client/shared/creeveyClientApi.js +3 -10
  88. package/lib/esm/client/shared/helpers.js +21 -47
  89. package/lib/esm/client/web/192.js +1 -0
  90. package/lib/esm/client/web/632.js +43 -0
  91. package/lib/esm/client/web/794.js +1 -0
  92. package/lib/esm/client/web/index.html +19 -0
  93. package/lib/esm/client/web/main.js +79 -0
  94. package/lib/esm/client/web/main.js.LICENSE.txt +34 -0
  95. package/lib/esm/creevey.js +4 -8
  96. package/lib/esm/index.js +0 -1
  97. package/lib/esm/server/config.js +7 -14
  98. package/lib/esm/server/docker.js +4 -12
  99. package/lib/esm/server/index.js +7 -21
  100. package/lib/esm/server/logger.js +0 -1
  101. package/lib/esm/server/master/api.js +0 -9
  102. package/lib/esm/server/master/index.js +15 -32
  103. package/lib/esm/server/master/master.js +2 -7
  104. package/lib/esm/server/master/pool.js +0 -23
  105. package/lib/esm/server/master/runner.js +14 -27
  106. package/lib/esm/server/master/server.js +4 -9
  107. package/lib/esm/server/messages.js +6 -38
  108. package/lib/esm/server/selenium/browser.js +50 -114
  109. package/lib/esm/server/selenium/selenoid.js +6 -17
  110. package/lib/esm/server/stories.js +24 -20
  111. package/lib/esm/server/storybook/providers/browser.js +4 -8
  112. package/lib/esm/server/storybook/providers/hybrid.js +6 -14
  113. package/lib/esm/server/testsFiles/parser.js +0 -6
  114. package/lib/esm/server/testsFiles/register.js +5 -2
  115. package/lib/esm/server/update.js +0 -8
  116. package/lib/esm/server/utils.js +3 -11
  117. package/lib/esm/server/worker/chai-image.js +0 -21
  118. package/lib/esm/server/worker/helpers.js +2 -9
  119. package/lib/esm/server/worker/reporter.js +7 -10
  120. package/lib/esm/server/worker/worker.js +4 -25
  121. package/lib/esm/shared/index.js +24 -25
  122. package/lib/esm/types.js +4 -1
  123. package/lib/types/client/addon/Manager.d.ts +1 -1
  124. package/lib/types/client/addon/components/Addon.d.ts +1 -0
  125. package/lib/types/client/addon/components/Icons.d.ts +1 -0
  126. package/lib/types/client/addon/components/Panel.d.ts +1 -0
  127. package/lib/types/client/addon/components/TestSelect.d.ts +1 -0
  128. package/lib/types/client/addon/components/Tools.d.ts +1 -0
  129. package/lib/types/client/addon/decorator.d.ts +1 -1
  130. package/lib/types/client/addon/preset.d.ts +2 -2
  131. package/lib/types/client/addon/preview.d.ts +1 -1
  132. package/lib/types/client/addon/withCreevey.d.ts +3 -2
  133. package/lib/types/client/shared/components/ImagesView/BlendView.d.ts +3 -1
  134. package/lib/types/client/shared/components/ImagesView/ImagesView.d.ts +1 -0
  135. package/lib/types/client/shared/components/ImagesView/SideBySideView.d.ts +3 -1
  136. package/lib/types/client/shared/components/ImagesView/SlideView.d.ts +3 -1
  137. package/lib/types/client/shared/components/ImagesView/SwapView.d.ts +3 -1
  138. package/lib/types/client/shared/components/PageFooter/PageFooter.d.ts +1 -0
  139. package/lib/types/client/shared/components/PageFooter/Paging.d.ts +1 -0
  140. package/lib/types/client/shared/components/PageHeader/ImagePreview.d.ts +3 -1
  141. package/lib/types/client/shared/components/PageHeader/PageHeader.d.ts +1 -0
  142. package/lib/types/client/shared/components/ResultsPage.d.ts +3 -1
  143. package/lib/types/client/web/CreeveyApp.d.ts +1 -0
  144. package/lib/types/client/web/CreeveyLoader.d.ts +2 -1
  145. package/lib/types/client/web/CreeveyView/SideBar/Checkbox.d.ts +4 -1
  146. package/lib/types/client/web/CreeveyView/SideBar/Search.d.ts +1 -0
  147. package/lib/types/client/web/CreeveyView/SideBar/SideBarHeader.d.ts +1 -0
  148. package/lib/types/client/web/CreeveyView/SideBar/SuiteLink.d.ts +19 -14
  149. package/lib/types/client/web/CreeveyView/SideBar/TestLink.d.ts +1 -0
  150. package/lib/types/client/web/CreeveyView/SideBar/TestStatusIcon.d.ts +3 -1
  151. package/lib/types/client/web/CreeveyView/SideBar/TestsStatus.d.ts +3 -1
  152. package/lib/types/client/web/CreeveyView/SideBar/Toggle.d.ts +1 -0
  153. package/lib/types/shared/index.d.ts +1 -1
  154. package/lib/types/types.d.ts +7 -28
  155. package/package.json +60 -78
  156. package/lib/cjs/client/addon/preset.ie11.js +0 -74
  157. package/lib/cjs/client/addon/preset.sb7.js +0 -19
  158. package/lib/cjs/client/web/142.js +0 -2
  159. package/lib/cjs/client/web/142.js.LICENSE.txt +0 -12
  160. package/lib/cjs/client/web/32.js +0 -1
  161. package/lib/cjs/client/web/551.js +0 -1
  162. package/lib/cjs/client/web/566.js +0 -2
  163. package/lib/cjs/client/web/566.js.LICENSE.txt +0 -31
  164. package/lib/cjs/client/web/691.js +0 -2
  165. package/lib/cjs/client/web/691.js.LICENSE.txt +0 -8
  166. package/lib/cjs/client/web/725.js +0 -1
  167. package/lib/cjs/server/extract.js +0 -46
  168. package/lib/cjs/server/loaders/babel/creevey-plugin.js +0 -86
  169. package/lib/cjs/server/loaders/babel/helpers.js +0 -469
  170. package/lib/cjs/server/loaders/babel/register.js +0 -124
  171. package/lib/cjs/server/loaders/hooks/mdx.js +0 -30
  172. package/lib/cjs/server/loaders/hooks/svelte.js +0 -65
  173. package/lib/cjs/server/loaders/webpack/compile.js +0 -269
  174. package/lib/cjs/server/loaders/webpack/creevey-loader.js +0 -172
  175. package/lib/cjs/server/loaders/webpack/dummy-hmr.js +0 -39
  176. package/lib/cjs/server/loaders/webpack/mdx-loader.js +0 -72
  177. package/lib/cjs/server/loaders/webpack/start.js +0 -41
  178. package/lib/cjs/server/storybook/entry.js +0 -53
  179. package/lib/cjs/server/storybook/helpers.js +0 -158
  180. package/lib/cjs/server/storybook/providers/nodejs.js +0 -239
  181. package/lib/esm/client/addon/preset.ie11.js +0 -59
  182. package/lib/esm/client/addon/preset.sb7.js +0 -8
  183. package/lib/esm/server/extract.js +0 -32
  184. package/lib/esm/server/loaders/babel/creevey-plugin.js +0 -72
  185. package/lib/esm/server/loaders/babel/helpers.js +0 -452
  186. package/lib/esm/server/loaders/babel/register.js +0 -103
  187. package/lib/esm/server/loaders/hooks/mdx.js +0 -15
  188. package/lib/esm/server/loaders/hooks/svelte.js +0 -49
  189. package/lib/esm/server/loaders/webpack/compile.js +0 -246
  190. package/lib/esm/server/loaders/webpack/creevey-loader.js +0 -152
  191. package/lib/esm/server/loaders/webpack/dummy-hmr.js +0 -32
  192. package/lib/esm/server/loaders/webpack/mdx-loader.js +0 -58
  193. package/lib/esm/server/loaders/webpack/start.js +0 -27
  194. package/lib/esm/server/storybook/entry.js +0 -27
  195. package/lib/esm/server/storybook/helpers.js +0 -97
  196. package/lib/esm/server/storybook/providers/nodejs.js +0 -216
  197. package/lib/types/client/addon/preset.ie11.d.ts +0 -10
  198. package/lib/types/client/addon/preset.sb7.d.ts +0 -2
  199. package/lib/types/server/extract.d.ts +0 -2
  200. package/lib/types/server/loaders/babel/creevey-plugin.d.ts +0 -1
  201. package/lib/types/server/loaders/babel/helpers.d.ts +0 -19
  202. package/lib/types/server/loaders/babel/register.d.ts +0 -5
  203. package/lib/types/server/loaders/hooks/mdx.d.ts +0 -1
  204. package/lib/types/server/loaders/hooks/svelte.d.ts +0 -1
  205. package/lib/types/server/loaders/webpack/compile.d.ts +0 -2
  206. package/lib/types/server/loaders/webpack/creevey-loader.d.ts +0 -4
  207. package/lib/types/server/loaders/webpack/dummy-hmr.d.ts +0 -10
  208. package/lib/types/server/loaders/webpack/mdx-loader.d.ts +0 -6
  209. package/lib/types/server/loaders/webpack/start.d.ts +0 -1
  210. package/lib/types/server/storybook/entry.d.ts +0 -17
  211. package/lib/types/server/storybook/helpers.d.ts +0 -24
  212. package/lib/types/server/storybook/providers/nodejs.d.ts +0 -9
  213. package/preset/ie11.js +0 -5
  214. package/preset/index.js +0 -9
  215. package/preset/sb7.js +0 -5
  216. package/types/mdx.d.ts +0 -7
@@ -5,38 +5,24 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.startSelenoidContainer = startSelenoidContainer;
7
7
  exports.startSelenoidStandalone = startSelenoidStandalone;
8
-
9
8
  var _path = _interopRequireDefault(require("path"));
10
-
11
9
  var _util = require("util");
12
-
13
10
  var _fs = require("fs");
14
-
15
11
  var _utils = require("../utils");
16
-
17
12
  var _docker = require("../docker");
18
-
19
13
  var _core = require("@octokit/core");
20
-
21
14
  var _messages = require("../messages");
22
-
23
15
  var _cluster = _interopRequireDefault(require("cluster"));
24
-
25
16
  var _shelljs = require("shelljs");
26
-
27
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
28
-
17
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
29
18
  const mkdirAsync = (0, _util.promisify)(_fs.mkdir);
30
19
  const writeFileAsync = (0, _util.promisify)(_fs.writeFile);
31
20
  const copyFileAsync = (0, _util.promisify)(_fs.copyFile);
32
-
33
21
  async function createSelenoidConfig(browsers, {
34
22
  useDocker
35
23
  }) {
36
24
  const selenoidConfig = {};
37
-
38
25
  const selenoidConfigDir = _path.default.join((0, _utils.getCreeveyCache)(), 'selenoid');
39
-
40
26
  browsers.forEach(({
41
27
  browserName,
42
28
  version = 'latest',
@@ -60,7 +46,6 @@ async function createSelenoidConfig(browsers, {
60
46
  await writeFileAsync(_path.default.join(selenoidConfigDir, 'browsers.json'), JSON.stringify(selenoidConfig));
61
47
  return selenoidConfigDir;
62
48
  }
63
-
64
49
  async function downloadSelenoidBinary(destination) {
65
50
  const platformNameMapping = {
66
51
  darwin: 'selenoid_darwin_amd64',
@@ -82,14 +67,11 @@ async function downloadSelenoidBinary(destination) {
82
67
  name
83
68
  }) => platformNameMapping[process.platform] == name) ?? {};
84
69
  if ((0, _fs.existsSync)(destination) && (0, _fs.lstatSync)(destination).size == binarySize) return;
85
-
86
70
  if (!downloadUrl) {
87
71
  throw new Error(`Couldn't get download url for selenoid binary. Please download it manually from "https://github.com/aerokube/selenoid/releases/latest" and define "selenoidPath" option in the Creevey config`);
88
72
  }
89
-
90
73
  return (0, _utils.downloadBinary)(downloadUrl, destination);
91
74
  }
92
-
93
75
  async function startSelenoidStandalone(config, debug) {
94
76
  config.gridUrl = 'http://localhost:4444/wd/hub';
95
77
  if (_cluster.default.isWorker) return;
@@ -97,37 +79,30 @@ async function startSelenoidStandalone(config, debug) {
97
79
  const selenoidConfigDir = await createSelenoidConfig(browsers, {
98
80
  useDocker: false
99
81
  });
100
-
101
82
  const binaryPath = _path.default.join(selenoidConfigDir, process.platform == 'win32' ? 'selenoid.exe' : 'selenoid');
102
-
103
83
  if (config.selenoidPath) {
104
84
  await copyFileAsync(_path.default.resolve(config.selenoidPath), binaryPath);
105
85
  } else {
106
86
  await downloadSelenoidBinary(binaryPath);
107
- } // TODO Download browser webdrivers
108
-
87
+ }
109
88
 
89
+ // TODO Download browser webdrivers
110
90
  try {
111
91
  if (process.platform != 'win32') (0, _shelljs.chmod)('+x', binaryPath);
112
92
  } catch (_) {
113
93
  /* noop */
114
94
  }
115
-
116
95
  const selenoidProcess = (0, _shelljs.exec)(`${binaryPath} -conf ./browsers.json -disable-docker`, {
117
96
  async: true,
118
97
  cwd: selenoidConfigDir
119
98
  });
120
-
121
99
  if (debug) {
122
100
  var _selenoidProcess$stdo, _selenoidProcess$stde;
123
-
124
- (_selenoidProcess$stdo = selenoidProcess.stdout) === null || _selenoidProcess$stdo === void 0 ? void 0 : _selenoidProcess$stdo.pipe(process.stdout);
125
- (_selenoidProcess$stde = selenoidProcess.stderr) === null || _selenoidProcess$stde === void 0 ? void 0 : _selenoidProcess$stde.pipe(process.stderr);
101
+ (_selenoidProcess$stdo = selenoidProcess.stdout) === null || _selenoidProcess$stdo === void 0 || _selenoidProcess$stdo.pipe(process.stdout);
102
+ (_selenoidProcess$stde = selenoidProcess.stderr) === null || _selenoidProcess$stde === void 0 || _selenoidProcess$stde.pipe(process.stderr);
126
103
  }
127
-
128
104
  (0, _messages.subscribeOn)('shutdown', () => selenoidProcess.kill());
129
105
  }
130
-
131
106
  async function startSelenoidContainer(config, debug) {
132
107
  const browsers = Object.values(config.browsers).filter(browser => !browser.gridUrl);
133
108
  const images = [];
@@ -146,13 +121,12 @@ async function startSelenoidContainer(config, debug) {
146
121
  auth: config.dockerAuth,
147
122
  platform: config.dockerImagePlatform
148
123
  };
149
-
150
124
  if (config.pullImages) {
151
125
  await (0, _docker.pullImages)([selenoidImage], pullOptions);
152
126
  await (0, _docker.pullImages)(images, pullOptions);
153
- } // TODO Allow pass custom options
154
-
127
+ }
155
128
 
129
+ // TODO Allow pass custom options
156
130
  const selenoidOptions = {
157
131
  ExposedPorts: {
158
132
  '4444/tcp': {}
@@ -6,33 +6,25 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.loadTestsFromStories = loadTestsFromStories;
7
7
  exports.saveStoriesJson = saveStoriesJson;
8
8
  exports.saveTestsJson = saveTestsJson;
9
-
10
9
  var _path = _interopRequireDefault(require("path"));
11
-
12
10
  var _fs = require("fs");
13
-
14
11
  var _crypto = require("crypto");
15
-
16
12
  var _lodash = require("lodash");
17
-
18
13
  var _types = require("../types");
19
-
20
14
  var _utils = require("./utils");
21
-
22
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
-
15
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
24
16
  function storyTestFabric(delay, testFn) {
25
17
  return async function storyTest() {
26
18
  delay ? await new Promise(resolve => setTimeout(resolve, delay)) : void 0;
27
19
  await (testFn ? testFn.call(this) : this.screenshots.length > 0 ? this.expect(this.screenshots.reduce((screenshots, {
28
20
  imageName,
29
21
  screenshot
30
- }, index) => ({ ...screenshots,
22
+ }, index) => ({
23
+ ...screenshots,
31
24
  [imageName ?? `screenshot_${index}`]: screenshot
32
25
  }), {})).to.matchImages() : this.expect(await this.takeScreenshot()).to.matchImage());
33
26
  };
34
27
  }
35
-
36
28
  function createCreeveyTest(browser, storyMeta, skipOptions, testName) {
37
29
  const {
38
30
  kind,
@@ -54,7 +46,6 @@ function createCreeveyTest(browser, storyMeta, skipOptions, testName) {
54
46
  storyId
55
47
  };
56
48
  }
57
-
58
49
  function convertStories(browserName, stories) {
59
50
  const tests = {};
60
51
  (Array.isArray(stories) ? stories : Object.values(stories)).forEach(storyMeta => {
@@ -65,24 +56,27 @@ function convertStories(browserName, stories) {
65
56
  tests: storyTests,
66
57
  skip
67
58
  } = storyMeta.parameters.creevey ?? {};
68
- const delay = typeof delayParam == 'number' ? delayParam : delayParam !== null && delayParam !== void 0 && delayParam.for.includes(browserName) ? delayParam.ms : 0; // typeof tests === "undefined" => rootSuite -> kindSuite -> storyTest -> [browsers.png]
59
+ const delay = typeof delayParam == 'number' ? delayParam : delayParam !== null && delayParam !== void 0 && delayParam.for.includes(browserName) ? delayParam.ms : 0;
60
+
61
+ // typeof tests === "undefined" => rootSuite -> kindSuite -> storyTest -> [browsers.png]
69
62
  // typeof tests === "function" => rootSuite -> kindSuite -> storyTest -> browser -> [images.png]
70
63
  // typeof tests === "object" => rootSuite -> kindSuite -> storySuite -> test -> [browsers.png]
71
64
  // typeof tests === "object" => rootSuite -> kindSuite -> storySuite -> test -> browser -> [images.png]
72
65
 
73
66
  if (!storyTests) {
74
67
  const test = createCreeveyTest(browserName, storyMeta, skip);
75
- tests[test.id] = { ...test,
68
+ tests[test.id] = {
69
+ ...test,
76
70
  storyId: storyMeta.id,
77
71
  story: storyMeta,
78
72
  fn: storyTestFabric(delay)
79
73
  };
80
74
  return;
81
75
  }
82
-
83
76
  Object.entries(storyTests).forEach(([testName, testFn]) => {
84
77
  const test = createCreeveyTest(browserName, storyMeta, skip, testName);
85
- tests[test.id] = { ...test,
78
+ tests[test.id] = {
79
+ ...test,
86
80
  storyId: storyMeta.id,
87
81
  story: storyMeta,
88
82
  fn: storyTestFabric(delay, testFn)
@@ -91,7 +85,6 @@ function convertStories(browserName, stories) {
91
85
  });
92
86
  return tests;
93
87
  }
94
-
95
88
  async function loadTestsFromStories(browsers, provider, update) {
96
89
  const testIdsByFiles = new Map();
97
90
  const stories = await provider(storiesByFiles => {
@@ -100,7 +93,6 @@ async function loadTestsFromStories(browsers, provider, update) {
100
93
  browsers.forEach(browser => {
101
94
  Array.from(storiesByFiles.entries()).forEach(([filename, stories]) => {
102
95
  var _testIdsByFiles$get;
103
-
104
96
  Object.assign(tests, convertStories(browser, stories));
105
97
  const changed = Object.keys(tests);
106
98
  const removed = ((_testIdsByFiles$get = testIdsByFiles.get(filename)) === null || _testIdsByFiles$get === void 0 ? void 0 : _testIdsByFiles$get.filter(testId => !tests[testId])) ?? [];
@@ -109,7 +101,7 @@ async function loadTestsFromStories(browsers, provider, update) {
109
101
  removed.forEach(testId => testsDiff[testId] = undefined);
110
102
  });
111
103
  });
112
- update === null || update === void 0 ? void 0 : update(testsDiff);
104
+ update === null || update === void 0 || update(testsDiff);
113
105
  });
114
106
  const tests = browsers.reduce((tests, browser) => Object.assign(tests, convertStories(browser, stories)), {});
115
107
  Object.values(tests).filter(_types.isDefined).forEach(({
@@ -119,23 +111,26 @@ async function loadTestsFromStories(browsers, provider, update) {
119
111
  fileName
120
112
  }
121
113
  }
122
- }) => // TODO Don't use filename as a key, due possible collisions if two require.context with same structure of modules are defined
114
+ }) =>
115
+ // TODO Don't use filename as a key, due possible collisions if two require.context with same structure of modules are defined
123
116
  testIdsByFiles.set(fileName, [...(testIdsByFiles.get(fileName) ?? []), id]));
124
117
  return tests;
125
118
  }
126
-
127
119
  function saveStoriesJson(storiesData, extract) {
128
- const outputDir = typeof extract == 'boolean' ? 'storybook-static' : extract; // NOTE Copy-pasted from Storybook's `getStoriesJsonData` method
120
+ const outputDir = typeof extract == 'boolean' ? 'storybook-static' : extract;
129
121
 
122
+ // NOTE Copy-pasted from Storybook's `getStoriesJsonData` method
130
123
  const allowed = ['fileName', 'docsOnly', 'framework', '__id', '__isArgsStory'];
131
- storiesData.globalParameters = (0, _lodash.pick)(storiesData.globalParameters, allowed); // @ts-expect-error ignore error
132
-
133
- storiesData.kindParameters = (0, _lodash.mapValues)(storiesData.kindParameters, v => (0, _lodash.pick)(v, allowed)); // @ts-expect-error ignore error
134
-
135
- storiesData.stories = (0, _lodash.mapValues)(storiesData.stories, v => ({ ...(0, _lodash.pick)(v, ['id', 'name', 'kind', 'story']),
124
+ storiesData.globalParameters = (0, _lodash.pick)(storiesData.globalParameters, allowed);
125
+ // @ts-expect-error ignore error
126
+ storiesData.kindParameters = (0, _lodash.mapValues)(storiesData.kindParameters, v => (0, _lodash.pick)(v, allowed));
127
+ // @ts-expect-error ignore error
128
+ storiesData.stories = (0, _lodash.mapValues)(storiesData.stories, v => ({
129
+ ...(0, _lodash.pick)(v, ['id', 'name', 'kind', 'story']),
136
130
  parameters: (0, _lodash.pick)(v.parameters, allowed)
137
- })); // TODO Fix args stories
131
+ }));
138
132
 
133
+ // TODO Fix args stories
139
134
  (0, _utils.removeProps)(storiesData ?? {}, ['stories', () => true, 'parameters', '__isArgsStory']);
140
135
  Object.values((storiesData === null || storiesData === void 0 ? void 0 : storiesData.stories) ?? {}).forEach(story => (0, _types.isObject)(story) && 'parameters' in story && (0, _types.isObject)(story.parameters) && delete story.parameters.__isArgsStory);
141
136
  (0, _fs.mkdirSync)(outputDir, {
@@ -143,11 +138,11 @@ function saveStoriesJson(storiesData, extract) {
143
138
  });
144
139
  (0, _fs.writeFileSync)(_path.default.join(outputDir, 'stories.json'), JSON.stringify(storiesData, null, 2));
145
140
  }
146
-
147
141
  function saveTestsJson(tests, dstPath = process.cwd()) {
148
142
  (0, _fs.mkdirSync)(dstPath, {
149
143
  recursive: true
150
144
  });
151
- (0, _fs.writeFileSync)(_path.default.join(dstPath, 'tests.json'), // eslint-disable-next-line @typescript-eslint/no-unsafe-return
145
+ (0, _fs.writeFileSync)(_path.default.join(dstPath, 'tests.json'),
146
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
152
147
  JSON.stringify(tests, (_, value) => (0, _types.isFunction)(value) ? value.toString() : value, 2));
153
148
  }
@@ -4,26 +4,17 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.loadStories = void 0;
7
-
8
7
  var _cluster = _interopRequireDefault(require("cluster"));
9
-
10
8
  var _selenium = require("../../selenium");
11
-
12
9
  var _messages = require("../../messages");
13
-
14
10
  var _types = require("../../../types");
15
-
16
11
  var _logger = require("../../logger");
17
-
18
12
  var _shared = require("../../../shared");
19
-
20
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
-
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
22
14
  const loadStories = async (_config, _options, storiesListener) => {
23
15
  if (_cluster.default.isPrimary) {
24
16
  return new Promise(resolve => {
25
17
  const worker = Object.values(_cluster.default.workers ?? {}).filter(_types.isDefined).find(worker => worker.isConnected());
26
-
27
18
  if (worker) {
28
19
  const unsubscribe = (0, _messages.subscribeOnWorker)(worker, 'stories', message => {
29
20
  if (message.type == 'set') {
@@ -40,7 +31,6 @@ const loadStories = async (_config, _options, storiesListener) => {
40
31
  type: 'get'
41
32
  });
42
33
  }
43
-
44
34
  (0, _messages.subscribeOn)('stories', message => {
45
35
  // TODO updates only one browser :(
46
36
  if (message.type == 'update') storiesListener(new Map(message.payload));
@@ -60,17 +50,14 @@ const loadStories = async (_config, _options, storiesListener) => {
60
50
  const stories = (0, _shared.deserializeRawStories)(await (0, _selenium.loadStoriesFromBrowser)());
61
51
  const storiesWithOldTests = [];
62
52
  Object.values(stories).forEach(story => {
63
- var _parameters, _parameters$creevey;
64
-
65
- if ((_parameters = story.parameters) !== null && _parameters !== void 0 && (_parameters$creevey = _parameters.creevey) !== null && _parameters$creevey !== void 0 && _parameters$creevey.tests) {
66
- var _parameters2, _parameters2$creevey;
67
-
68
- (_parameters2 = story.parameters) === null || _parameters2 === void 0 ? true : (_parameters2$creevey = _parameters2.creevey) === null || _parameters2$creevey === void 0 ? true : delete _parameters2$creevey.tests;
53
+ var _parameters;
54
+ if ((_parameters = story.parameters) !== null && _parameters !== void 0 && (_parameters = _parameters.creevey) !== null && _parameters !== void 0 && _parameters.tests) {
55
+ var _parameters2;
56
+ (_parameters2 = story.parameters) === null || _parameters2 === void 0 || (_parameters2 = _parameters2.creevey) === null || _parameters2 === void 0 || delete _parameters2.tests;
69
57
  storiesWithOldTests.push(`${story.kind}/${story.name}`);
70
58
  }
71
59
  });
72
60
  return stories;
73
61
  }
74
62
  };
75
-
76
63
  exports.loadStories = loadStories;
@@ -4,79 +4,59 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.loadStories = void 0;
7
-
8
7
  var _chokidar = _interopRequireDefault(require("chokidar"));
9
-
10
8
  var _browser = require("./browser");
11
-
12
9
  var _logger = require("../../logger");
13
-
14
10
  var _parser = _interopRequireDefault(require("../../testsFiles/parser"));
15
-
16
11
  var _utils = require("../../../server/utils");
17
-
18
12
  var _shared = require("../../../shared");
19
-
20
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
-
22
- 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); }
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
-
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
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 loadStories = async (_config, _options, storiesListener) => {
27
17
  let creeveyParamsByStoryId = {};
28
-
29
18
  const mergeParamsFromTestsToStory = (story, creeveyParams) => {
30
19
  if (story.parameters) {
31
20
  story.parameters.creevey = (0, _shared.combineParameters)(story.parameters.creevey || {}, creeveyParams);
32
21
  }
33
22
  };
34
-
35
23
  const stories = await (0, _browser.loadStories)(_config, {}, updatedStoriesByFiles => {
36
24
  Array.from(updatedStoriesByFiles.entries()).forEach(([, storiesArray]) => {
37
25
  storiesArray.forEach(story => {
38
26
  const creeveyParams = creeveyParamsByStoryId[story.id];
39
-
40
27
  if (creeveyParams) {
41
28
  mergeParamsFromTestsToStory(story, creeveyParams);
42
29
  }
43
30
  });
44
31
  });
45
32
  storiesListener(updatedStoriesByFiles);
46
- }); // TODO fix test files hot reloading
33
+ });
47
34
 
48
- creeveyParamsByStoryId = await parseParams(_config
49
- /*, (data) => console.log(data) */
50
- );
35
+ // TODO fix test files hot reloading
36
+ creeveyParamsByStoryId = await parseParams(_config /*, (data) => console.log(data) */);
51
37
  Object.entries(stories).forEach(([storyId, story]) => {
52
38
  mergeParamsFromTestsToStory(story, creeveyParamsByStoryId[storyId]);
53
39
  });
54
40
  return stories;
55
41
  };
56
-
57
42
  exports.loadStories = loadStories;
58
-
59
43
  async function parseParams(config, listener) {
60
44
  if (!config.testsDir) {
61
45
  return Promise.resolve({});
62
46
  }
63
-
64
47
  const testFiles = (0, _utils.readDirRecursive)(config.testsDir).filter(file => {
65
48
  var _config$testsRegex;
66
-
67
49
  return (_config$testsRegex = config.testsRegex) === null || _config$testsRegex === void 0 ? void 0 : _config$testsRegex.test(file);
68
50
  });
69
51
  await (await Promise.resolve().then(() => _interopRequireWildcard(require('../../testsFiles/register')))).default(config);
70
-
71
52
  if (listener) {
72
53
  _chokidar.default.watch(testFiles).on('change', filePath => {
73
- _logger.logger.debug(`changed: ${filePath}`); // doesn't work, always returns {} due modules caching
74
- // see https://github.com/nodejs/modules/issues/307
75
-
54
+ _logger.logger.debug(`changed: ${filePath}`);
76
55
 
56
+ // doesn't work, always returns {} due modules caching
57
+ // see https://github.com/nodejs/modules/issues/307
77
58
  void (0, _parser.default)(testFiles).then(data => listener(data));
78
59
  });
79
60
  }
80
-
81
61
  return (0, _parser.default)(testFiles);
82
62
  }
@@ -5,43 +5,32 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = parse;
7
7
  exports.test = exports.story = exports.kind = void 0;
8
-
9
8
  var _csf = require("@storybook/csf");
10
-
11
- 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); }
12
-
13
- 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; }
14
-
9
+ 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); }
10
+ 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
11
  async function parse(files) {
16
12
  result = {};
17
- await Promise.all(files.map(async file => Promise.resolve(`${file}`).then(s => _interopRequireWildcard(require(s)))));
13
+ await Promise.all(files.map(async file => (specifier => new Promise(r => r(`${specifier}`)).then(s => _interopRequireWildcard(require(s))))(file)));
18
14
  return result;
19
15
  }
20
-
21
16
  let result = {};
22
17
  let kindTitle = '';
23
18
  let storyTitle = '';
24
19
  let storyParams = null;
25
-
26
20
  const setStoryParameters = params => {
27
21
  storyParams = params;
28
22
  };
29
-
30
23
  const getStoryId = (kindTitle, storyTitle) => {
31
24
  return (0, _csf.toId)(kindTitle, (0, _csf.storyNameFromExport)(storyTitle));
32
25
  };
33
-
34
26
  const kind = (title, kindFn) => {
35
27
  kindTitle = title;
36
28
  kindFn();
37
29
  kindTitle = '';
38
30
  };
39
-
40
31
  exports.kind = kind;
41
-
42
32
  const story = (title, storyFn) => {
43
33
  var _result$storyId;
44
-
45
34
  storyTitle = title;
46
35
  storyParams = null;
47
36
  storyFn({
@@ -54,19 +43,14 @@ const story = (title, storyFn) => {
54
43
  storyTitle = '';
55
44
  storyParams = null;
56
45
  };
57
-
58
46
  exports.story = story;
59
-
60
47
  const test = (title, testFn) => {
61
48
  const storyId = getStoryId(kindTitle, storyTitle);
62
-
63
49
  if (!result[storyId]) {
64
50
  result[storyId] = {};
65
51
  }
66
-
67
52
  result[storyId].tests = Object.assign({}, result[storyId].tests, {
68
53
  [title]: testFn
69
54
  });
70
55
  };
71
-
72
56
  exports.test = test;
@@ -4,15 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = register;
7
-
8
7
  var _pirates = require("pirates");
9
-
10
8
  var _getTsconfig = require("get-tsconfig");
11
-
12
- 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); }
13
-
14
- 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; }
15
-
9
+ 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); }
10
+ 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; }
16
11
  async function register(config) {
17
12
  (0, _pirates.addHook)(() => '', {
18
13
  exts: ['.jpg', '.jpeg', '.png', '.gif', '.eot', '.otf', '.svg', '.ttf', '.woff', '.woff2', '.css', '.less', '.scss', '.styl'],
@@ -20,8 +15,9 @@ async function register(config) {
20
15
  });
21
16
  const {
22
17
  path: tsConfigPath
23
- } = (0, _getTsconfig.getTsconfig)(config.tsConfig) || {}; // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
18
+ } = (0, _getTsconfig.getTsconfig)(config.tsConfig) || {};
24
19
 
20
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
25
21
  (await Promise.resolve().then(() => _interopRequireWildcard(require('@babel/register')))).default(config.babelOptions({
26
22
  babelrc: false,
27
23
  rootMode: 'upward-optional',
@@ -40,5 +36,7 @@ async function register(config) {
40
36
  plugins: [['@babel/plugin-transform-runtime'], ...(tsConfigPath ? [['babel-plugin-tsconfig-paths', {
41
37
  tsconfig: tsConfigPath
42
38
  }]] : [])]
43
- })); // (await import('ts-node')).register({ project: tsConfigPath, transpileOnly: true });
39
+ }));
40
+
41
+ // (await import('ts-node')).register({ project: tsConfigPath, transpileOnly: true });
44
42
  }
@@ -4,21 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = update;
7
-
8
7
  var _path = _interopRequireDefault(require("path"));
9
-
10
8
  var _fs = _interopRequireWildcard(require("fs"));
11
-
12
9
  var _micromatch = _interopRequireDefault(require("micromatch"));
13
-
14
10
  var _types = require("../types");
15
-
16
- 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); }
17
-
18
- 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; }
19
-
20
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
-
11
+ 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); }
12
+ 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; }
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
22
14
  function tryToLoadTestsData(filename) {
23
15
  try {
24
16
  // eslint-disable-next-line @typescript-eslint/no-var-requires
@@ -27,28 +19,22 @@ function tryToLoadTestsData(filename) {
27
19
  /* noop */
28
20
  }
29
21
  }
30
-
31
22
  const actualRegex = /^(.*)-actual-(\d+)\.png$/i;
32
-
33
23
  function approve(dirents, srcPath, dstPath, testPaths, isMatch) {
34
24
  dirents.filter(dirent => dirent.isFile()).map(dirent => actualRegex.exec(dirent.name)).filter(_types.isDefined).filter(([fileName, imageName]) => !testPaths || testPaths.find(([token]) => token == imageName) && isMatch(_path.default.join(srcPath, fileName))).reduce((images, [, imageName, retry]) => Number(retry) > (images.get(imageName) ?? -1) ? images.set(imageName, Number(retry)) : images, new Map()).forEach((retry, imageName) => {
35
25
  (0, _fs.mkdirSync)(dstPath, {
36
26
  recursive: true
37
27
  });
38
-
39
28
  _fs.default.copyFileSync(_path.default.join(srcPath, `${imageName}-actual-${retry}.png`), _path.default.join(dstPath, `${imageName}.png`));
40
29
  });
41
30
  }
42
-
43
31
  function traverse(srcPath, dstPath, testPaths, isMatch) {
44
32
  const dirents = _fs.default.readdirSync(srcPath, {
45
33
  withFileTypes: true
46
34
  });
47
-
48
35
  approve(dirents, srcPath, dstPath, testPaths, isMatch);
49
36
  dirents.filter(dirent => dirent.isDirectory()).map(dirent => [dirent.name, testPaths === null || testPaths === void 0 ? void 0 : testPaths.map(([token, ...restPath]) => token == dirent.name ? restPath : null).filter(_types.isDefined)]).filter(([, paths]) => !paths || paths.length > 0).forEach(([dirname, paths]) => traverse(_path.default.join(srcPath, dirname), _path.default.join(dstPath, dirname), paths, isMatch));
50
37
  }
51
-
52
38
  function update(config, grepPattern) {
53
39
  const {
54
40
  reportDir,
@@ -60,13 +46,11 @@ function update(config, grepPattern) {
60
46
  const testsMeta = tryToLoadTestsData(`${reportDir}/tests.json`);
61
47
  const testsReport = tryToLoadTestsData(`${reportDir}/data`);
62
48
  let testPaths = null;
63
-
64
49
  if (testsMeta && testsReport) {
65
50
  testPaths = Object.values(testsMeta).filter(_types.isDefined).filter(({
66
51
  id
67
52
  }) => {
68
53
  var _testsReport$id;
69
-
70
54
  return ((_testsReport$id = testsReport[id]) === null || _testsReport$id === void 0 ? void 0 : _testsReport$id.status) == 'failed';
71
55
  }).map(({
72
56
  storyPath,
@@ -74,6 +58,5 @@ function update(config, grepPattern) {
74
58
  browser
75
59
  }) => [...storyPath, ...(testName ? [testName] : []), browser]);
76
60
  }
77
-
78
61
  traverse(reportDir, screenDir, testPaths, value => isMatch(_path.default.relative(reportDir, value)));
79
62
  }