creevey 0.9.0-beta.20 → 0.9.0-beta.22

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 (475) hide show
  1. package/README.md +2 -2
  2. package/dist/cli.d.ts +2 -0
  3. package/dist/cli.js +5 -0
  4. package/dist/cli.js.map +1 -0
  5. package/dist/client/addon/components/Addon.d.ts +8 -0
  6. package/dist/client/addon/components/Addon.js +57 -0
  7. package/dist/client/addon/components/Addon.js.map +1 -0
  8. package/{lib/types → dist}/client/addon/components/Icons.d.ts +0 -1
  9. package/dist/client/addon/components/Icons.js +18 -0
  10. package/dist/client/addon/components/Icons.js.map +1 -0
  11. package/{lib/types → dist}/client/addon/components/Panel.d.ts +1 -2
  12. package/dist/client/addon/components/Panel.js +32 -0
  13. package/dist/client/addon/components/Panel.js.map +1 -0
  14. package/{lib/types → dist}/client/addon/components/TestSelect.d.ts +1 -2
  15. package/dist/client/addon/components/TestSelect.js +33 -0
  16. package/dist/client/addon/components/TestSelect.js.map +1 -0
  17. package/dist/client/addon/components/Tools.d.ts +6 -0
  18. package/dist/client/addon/components/Tools.js +89 -0
  19. package/dist/client/addon/components/Tools.js.map +1 -0
  20. package/{lib/types/client/addon/Manager.d.ts → dist/client/addon/controller.d.ts} +8 -7
  21. package/dist/client/addon/controller.js +208 -0
  22. package/dist/client/addon/controller.js.map +1 -0
  23. package/dist/client/addon/decorator.js +6 -0
  24. package/dist/client/addon/decorator.js.map +1 -0
  25. package/dist/client/addon/index.d.ts +2 -0
  26. package/dist/client/addon/index.js +19 -0
  27. package/dist/client/addon/index.js.map +1 -0
  28. package/dist/client/addon/manager.js +41 -0
  29. package/dist/client/addon/manager.js.map +1 -0
  30. package/dist/client/addon/preset.js +6 -0
  31. package/dist/client/addon/preset.js.map +1 -0
  32. package/dist/client/addon/preview.js +8 -0
  33. package/dist/client/addon/preview.js.map +1 -0
  34. package/dist/client/addon/readyForCapture.js +7 -0
  35. package/dist/client/addon/readyForCapture.js.map +1 -0
  36. package/{lib/types → dist}/client/addon/utils.d.ts +1 -1
  37. package/dist/client/addon/utils.js +27 -0
  38. package/dist/client/addon/utils.js.map +1 -0
  39. package/{lib/types → dist}/client/addon/withCreevey.d.ts +3 -3
  40. package/dist/client/addon/withCreevey.js +286 -0
  41. package/dist/client/addon/withCreevey.js.map +1 -0
  42. package/{lib/types → dist}/client/shared/components/ImagesView/BlendView.d.ts +2 -2
  43. package/dist/client/shared/components/ImagesView/BlendView.js +74 -0
  44. package/dist/client/shared/components/ImagesView/BlendView.js.map +1 -0
  45. package/dist/client/shared/components/ImagesView/ImagesView.d.ts +9 -0
  46. package/dist/client/shared/components/ImagesView/ImagesView.js +43 -0
  47. package/dist/client/shared/components/ImagesView/ImagesView.js.map +1 -0
  48. package/{lib/types → dist}/client/shared/components/ImagesView/SideBySideView.d.ts +2 -2
  49. package/dist/client/shared/components/ImagesView/SideBySideView.js +121 -0
  50. package/dist/client/shared/components/ImagesView/SideBySideView.js.map +1 -0
  51. package/{lib/types → dist}/client/shared/components/ImagesView/SlideView.d.ts +2 -2
  52. package/dist/client/shared/components/ImagesView/SlideView.js +136 -0
  53. package/dist/client/shared/components/ImagesView/SlideView.js.map +1 -0
  54. package/{lib/types → dist}/client/shared/components/ImagesView/SwapView.d.ts +2 -2
  55. package/dist/client/shared/components/ImagesView/SwapView.js +72 -0
  56. package/dist/client/shared/components/ImagesView/SwapView.js.map +1 -0
  57. package/{lib/types/client/shared/components/ImagesView/ImagesView.d.ts → dist/client/shared/components/ImagesView/common.d.ts} +1 -11
  58. package/dist/client/shared/components/ImagesView/common.js +14 -0
  59. package/dist/client/shared/components/ImagesView/common.js.map +1 -0
  60. package/dist/client/shared/components/ImagesView/index.d.ts +5 -0
  61. package/dist/client/shared/components/ImagesView/index.js +14 -0
  62. package/dist/client/shared/components/ImagesView/index.js.map +1 -0
  63. package/{lib/types → dist}/client/shared/components/PageFooter/PageFooter.d.ts +0 -1
  64. package/dist/client/shared/components/PageFooter/PageFooter.js +25 -0
  65. package/dist/client/shared/components/PageFooter/PageFooter.js.map +1 -0
  66. package/{lib/types → dist}/client/shared/components/PageFooter/Paging.d.ts +1 -2
  67. package/dist/client/shared/components/PageFooter/Paging.js +68 -0
  68. package/dist/client/shared/components/PageFooter/Paging.js.map +1 -0
  69. package/{lib/types → dist}/client/shared/components/PageHeader/ImagePreview.d.ts +1 -1
  70. package/dist/client/shared/components/PageHeader/ImagePreview.js +61 -0
  71. package/dist/client/shared/components/PageHeader/ImagePreview.js.map +1 -0
  72. package/{lib/types → dist}/client/shared/components/PageHeader/PageHeader.d.ts +2 -5
  73. package/dist/client/shared/components/PageHeader/PageHeader.js +86 -0
  74. package/dist/client/shared/components/PageHeader/PageHeader.js.map +1 -0
  75. package/{lib/types → dist}/client/shared/components/ResultsPage.d.ts +3 -5
  76. package/dist/client/shared/components/ResultsPage.js +95 -0
  77. package/dist/client/shared/components/ResultsPage.js.map +1 -0
  78. package/{lib/types → dist}/client/shared/creeveyClientApi.d.ts +1 -1
  79. package/dist/client/shared/creeveyClientApi.js +53 -0
  80. package/dist/client/shared/creeveyClientApi.js.map +1 -0
  81. package/{lib/types → dist}/client/shared/helpers.d.ts +3 -3
  82. package/dist/client/shared/helpers.js +381 -0
  83. package/dist/client/shared/helpers.js.map +1 -0
  84. package/{lib/types → dist}/client/shared/viewMode.d.ts +1 -1
  85. package/dist/client/shared/viewMode.js +11 -0
  86. package/dist/client/shared/viewMode.js.map +1 -0
  87. package/dist/client/web/202.js +1 -0
  88. package/dist/client/web/270.js +43 -0
  89. package/dist/client/web/752.js +1 -0
  90. package/{lib/types → dist}/client/web/CreeveyApp.d.ts +2 -3
  91. package/dist/client/web/CreeveyApp.js +130 -0
  92. package/dist/client/web/CreeveyApp.js.map +1 -0
  93. package/{lib/types → dist}/client/web/CreeveyContext.d.ts +1 -1
  94. package/dist/client/web/CreeveyContext.js +17 -0
  95. package/dist/client/web/CreeveyContext.js.map +1 -0
  96. package/dist/client/web/CreeveyLoader.d.ts +3 -0
  97. package/dist/client/web/CreeveyLoader.js +52 -0
  98. package/dist/client/web/CreeveyLoader.js.map +1 -0
  99. package/{lib/types → dist}/client/web/CreeveyView/SideBar/Checkbox.d.ts +2 -2
  100. package/dist/client/web/CreeveyView/SideBar/Checkbox.js +86 -0
  101. package/dist/client/web/CreeveyView/SideBar/Checkbox.js.map +1 -0
  102. package/{lib/types → dist}/client/web/CreeveyView/SideBar/Search.d.ts +0 -1
  103. package/dist/client/web/CreeveyView/SideBar/Search.js +125 -0
  104. package/dist/client/web/CreeveyView/SideBar/Search.js.map +1 -0
  105. package/{lib/types → dist}/client/web/CreeveyView/SideBar/SideBar.d.ts +2 -2
  106. package/dist/client/web/CreeveyView/SideBar/SideBar.js +101 -0
  107. package/dist/client/web/CreeveyView/SideBar/SideBar.js.map +1 -0
  108. package/{lib/types → dist}/client/web/CreeveyView/SideBar/SideBarHeader.d.ts +2 -3
  109. package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js +113 -0
  110. package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js.map +1 -0
  111. package/{lib/types → dist}/client/web/CreeveyView/SideBar/SuiteLink.d.ts +14 -14
  112. package/dist/client/web/CreeveyView/SideBar/SuiteLink.js +108 -0
  113. package/dist/client/web/CreeveyView/SideBar/SuiteLink.js.map +1 -0
  114. package/{lib/types → dist}/client/web/CreeveyView/SideBar/TestLink.d.ts +1 -2
  115. package/dist/client/web/CreeveyView/SideBar/TestLink.js +63 -0
  116. package/dist/client/web/CreeveyView/SideBar/TestLink.js.map +1 -0
  117. package/{lib/types → dist}/client/web/CreeveyView/SideBar/TestStatusIcon.d.ts +2 -2
  118. package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.js +52 -0
  119. package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.js.map +1 -0
  120. package/{lib/types → dist}/client/web/CreeveyView/SideBar/TestsStatus.d.ts +3 -3
  121. package/dist/client/web/CreeveyView/SideBar/TestsStatus.js +74 -0
  122. package/dist/client/web/CreeveyView/SideBar/TestsStatus.js.map +1 -0
  123. package/{lib/types → dist}/client/web/CreeveyView/SideBar/Toggle.d.ts +0 -1
  124. package/dist/client/web/CreeveyView/SideBar/Toggle.js +69 -0
  125. package/dist/client/web/CreeveyView/SideBar/Toggle.js.map +1 -0
  126. package/dist/client/web/CreeveyView/SideBar/index.d.ts +1 -0
  127. package/dist/client/web/CreeveyView/SideBar/index.js +6 -0
  128. package/dist/client/web/CreeveyView/SideBar/index.js.map +1 -0
  129. package/{lib/types → dist}/client/web/KeyboardEventsContext.d.ts +4 -4
  130. package/dist/client/web/KeyboardEventsContext.js +116 -0
  131. package/dist/client/web/KeyboardEventsContext.js.map +1 -0
  132. package/{lib/types → dist}/client/web/index.d.ts +1 -1
  133. package/{lib/cjs → dist}/client/web/index.html +12 -3
  134. package/dist/client/web/index.js +75 -0
  135. package/dist/client/web/index.js.map +1 -0
  136. package/dist/client/web/main.js +79 -0
  137. package/dist/creevey.d.ts +1 -0
  138. package/dist/creevey.js +52 -0
  139. package/dist/creevey.js.map +1 -0
  140. package/dist/index.d.ts +5 -0
  141. package/dist/index.js +24 -0
  142. package/dist/index.js.map +1 -0
  143. package/{lib/types → dist}/server/config.d.ts +1 -1
  144. package/dist/server/config.js +86 -0
  145. package/dist/server/config.js.map +1 -0
  146. package/{lib/types → dist}/server/docker.d.ts +2 -2
  147. package/dist/server/docker.js +122 -0
  148. package/dist/server/docker.js.map +1 -0
  149. package/{lib/types → dist}/server/index.d.ts +1 -1
  150. package/dist/server/index.js +47 -0
  151. package/dist/server/index.js.map +1 -0
  152. package/{lib/types → dist}/server/logger.d.ts +2 -2
  153. package/dist/server/logger.js +25 -0
  154. package/dist/server/logger.js.map +1 -0
  155. package/{lib/types → dist}/server/master/api.d.ts +1 -1
  156. package/dist/server/master/api.js +50 -0
  157. package/dist/server/master/api.js.map +1 -0
  158. package/dist/server/master/index.d.ts +3 -0
  159. package/dist/server/master/index.js +110 -0
  160. package/dist/server/master/index.js.map +1 -0
  161. package/{lib/types → dist}/server/master/master.d.ts +2 -2
  162. package/dist/server/master/master.js +40 -0
  163. package/dist/server/master/master.js.map +1 -0
  164. package/{lib/types → dist}/server/master/pool.d.ts +1 -2
  165. package/dist/server/master/pool.js +186 -0
  166. package/dist/server/master/pool.js.map +1 -0
  167. package/{lib/types → dist}/server/master/runner.d.ts +3 -8
  168. package/dist/server/master/runner.js +172 -0
  169. package/dist/server/master/runner.js.map +1 -0
  170. package/dist/server/master/server.d.ts +2 -0
  171. package/dist/server/master/server.js +114 -0
  172. package/dist/server/master/server.js.map +1 -0
  173. package/{lib/types → dist}/server/messages.d.ts +1 -4
  174. package/dist/server/messages.js +222 -0
  175. package/dist/server/messages.js.map +1 -0
  176. package/{lib/types → dist}/server/selenium/browser.d.ts +1 -1
  177. package/dist/server/selenium/browser.js +634 -0
  178. package/dist/server/selenium/browser.js.map +1 -0
  179. package/dist/server/selenium/index.d.ts +2 -0
  180. package/dist/server/selenium/index.js +19 -0
  181. package/dist/server/selenium/index.js.map +1 -0
  182. package/{lib/types → dist}/server/selenium/selenoid.d.ts +1 -1
  183. package/dist/server/selenium/selenoid.js +120 -0
  184. package/dist/server/selenium/selenoid.js.map +1 -0
  185. package/{lib/types → dist}/server/stories.d.ts +2 -7
  186. package/dist/server/stories.js +92 -0
  187. package/dist/server/stories.js.map +1 -0
  188. package/dist/server/storybook/providers/browser.d.ts +2 -0
  189. package/dist/server/storybook/providers/browser.js +60 -0
  190. package/dist/server/storybook/providers/browser.js.map +1 -0
  191. package/dist/server/storybook/providers/hybrid.d.ts +2 -0
  192. package/dist/server/storybook/providers/hybrid.js +59 -0
  193. package/dist/server/storybook/providers/hybrid.js.map +1 -0
  194. package/dist/server/telemetry.js +196 -0
  195. package/dist/server/telemetry.js.map +1 -0
  196. package/{lib/types → dist}/server/testsFiles/parser.d.ts +2 -6
  197. package/dist/server/testsFiles/parser.js +50 -0
  198. package/dist/server/testsFiles/parser.js.map +1 -0
  199. package/dist/server/update.d.ts +2 -0
  200. package/dist/server/update.js +53 -0
  201. package/dist/server/update.js.map +1 -0
  202. package/{lib/types → dist}/server/utils.d.ts +10 -9
  203. package/dist/server/utils.js +157 -0
  204. package/dist/server/utils.js.map +1 -0
  205. package/{lib/types → dist}/server/worker/chai-image.d.ts +1 -2
  206. package/dist/server/worker/chai-image.js +113 -0
  207. package/dist/server/worker/chai-image.js.map +1 -0
  208. package/{lib/types → dist}/server/worker/helpers.d.ts +1 -1
  209. package/dist/server/worker/helpers.js +57 -0
  210. package/dist/server/worker/helpers.js.map +1 -0
  211. package/dist/server/worker/index.d.ts +1 -0
  212. package/dist/server/worker/index.js +6 -0
  213. package/dist/server/worker/index.js.map +1 -0
  214. package/dist/server/worker/reporter.js +130 -0
  215. package/dist/server/worker/reporter.js.map +1 -0
  216. package/dist/server/worker/worker.d.ts +4 -0
  217. package/dist/server/worker/worker.js +213 -0
  218. package/dist/server/worker/worker.js.map +1 -0
  219. package/{lib/types → dist}/shared/index.d.ts +1 -1
  220. package/dist/shared/index.js +77 -0
  221. package/dist/shared/index.js.map +1 -0
  222. package/dist/shared/serializeRegExp.js +25 -0
  223. package/dist/shared/serializeRegExp.js.map +1 -0
  224. package/{lib/types → dist}/types.d.ts +48 -71
  225. package/dist/types.js +61 -0
  226. package/dist/types.js.map +1 -0
  227. package/docs/config.md +1 -4
  228. package/docs/tests.md +3 -3
  229. package/manager/package.json +3 -0
  230. package/package.json +76 -103
  231. package/preset/README.md +3 -0
  232. package/preset/package.json +3 -0
  233. package/preview/README.md +3 -0
  234. package/preview/package.json +3 -0
  235. package/src/cli.ts +3 -0
  236. package/src/client/addon/components/Addon.tsx +53 -0
  237. package/src/client/addon/components/Icons.tsx +28 -0
  238. package/src/client/addon/components/Panel.tsx +53 -0
  239. package/src/client/addon/components/TestSelect.tsx +48 -0
  240. package/src/client/addon/components/Tools.tsx +93 -0
  241. package/src/client/addon/controller.ts +224 -0
  242. package/src/client/addon/decorator.ts +3 -0
  243. package/src/client/addon/index.ts +2 -0
  244. package/src/client/addon/manager.ts +44 -0
  245. package/{lib/esm/client/addon/preset.js → src/client/addon/preset.ts} +2 -1
  246. package/src/client/addon/preview.ts +7 -0
  247. package/src/client/addon/readyForCapture.ts +9 -0
  248. package/src/client/addon/utils.tsx +24 -0
  249. package/src/client/addon/withCreevey.ts +326 -0
  250. package/src/client/shared/components/ImagesView/BlendView.tsx +71 -0
  251. package/src/client/shared/components/ImagesView/ImagesView.tsx +62 -0
  252. package/src/client/shared/components/ImagesView/SideBySideView.tsx +139 -0
  253. package/{lib/esm/client/shared/components/ImagesView/SlideView.js → src/client/shared/components/ImagesView/SlideView.tsx} +78 -75
  254. package/src/client/shared/components/ImagesView/SwapView.tsx +81 -0
  255. package/src/client/shared/components/ImagesView/common.ts +23 -0
  256. package/src/client/shared/components/ImagesView/index.ts +5 -0
  257. package/src/client/shared/components/PageFooter/PageFooter.tsx +44 -0
  258. package/src/client/shared/components/PageFooter/Paging.tsx +105 -0
  259. package/src/client/shared/components/PageHeader/ImagePreview.tsx +82 -0
  260. package/src/client/shared/components/PageHeader/PageHeader.tsx +123 -0
  261. package/src/client/shared/components/ResultsPage.tsx +135 -0
  262. package/src/client/shared/creeveyClientApi.ts +64 -0
  263. package/src/client/shared/helpers.ts +422 -0
  264. package/src/client/shared/viewMode.ts +10 -0
  265. package/src/client/web/CreeveyApp.tsx +177 -0
  266. package/src/client/web/CreeveyContext.tsx +20 -0
  267. package/src/client/web/CreeveyLoader.tsx +56 -0
  268. package/src/client/web/CreeveyView/SideBar/Checkbox.tsx +118 -0
  269. package/src/client/web/CreeveyView/SideBar/Search.tsx +140 -0
  270. package/src/client/web/CreeveyView/SideBar/SideBar.tsx +125 -0
  271. package/src/client/web/CreeveyView/SideBar/SideBarHeader.tsx +138 -0
  272. package/src/client/web/CreeveyView/SideBar/SuiteLink.tsx +118 -0
  273. package/src/client/web/CreeveyView/SideBar/TestLink.tsx +67 -0
  274. package/src/client/web/CreeveyView/SideBar/TestStatusIcon.tsx +58 -0
  275. package/src/client/web/CreeveyView/SideBar/TestsStatus.tsx +105 -0
  276. package/src/client/web/CreeveyView/SideBar/Toggle.tsx +85 -0
  277. package/src/client/web/CreeveyView/SideBar/index.ts +1 -0
  278. package/src/client/web/KeyboardEventsContext.tsx +121 -0
  279. package/{lib/esm → src}/client/web/index.html +12 -3
  280. package/src/client/web/index.tsx +63 -0
  281. package/src/creevey.ts +47 -0
  282. package/src/index.ts +4 -0
  283. package/src/server/config.ts +83 -0
  284. package/src/server/docker.ts +136 -0
  285. package/src/server/index.ts +51 -0
  286. package/{lib/esm/server/logger.js → src/server/logger.ts} +8 -6
  287. package/src/server/master/api.ts +55 -0
  288. package/src/server/master/index.ts +111 -0
  289. package/src/server/master/master.ts +47 -0
  290. package/src/server/master/pool.ts +203 -0
  291. package/src/server/master/runner.ts +189 -0
  292. package/src/server/master/server.ts +124 -0
  293. package/src/server/messages.ts +273 -0
  294. package/src/server/selenium/browser.ts +834 -0
  295. package/src/server/selenium/index.ts +2 -0
  296. package/src/server/selenium/selenoid.ts +154 -0
  297. package/src/server/stories.ts +133 -0
  298. package/src/server/storybook/providers/browser.ts +58 -0
  299. package/src/server/storybook/providers/hybrid.ts +70 -0
  300. package/src/server/telemetry.ts +212 -0
  301. package/src/server/testsFiles/parser.ts +62 -0
  302. package/src/server/update.ts +74 -0
  303. package/src/server/utils.ts +206 -0
  304. package/src/server/worker/chai-image.ts +147 -0
  305. package/src/server/worker/helpers.ts +61 -0
  306. package/src/server/worker/index.ts +1 -0
  307. package/src/server/worker/reporter.ts +170 -0
  308. package/src/server/worker/worker.ts +234 -0
  309. package/src/shared/index.ts +76 -0
  310. package/src/shared/serializeRegExp.ts +26 -0
  311. package/src/types.ts +500 -0
  312. package/types/chai.d.ts +0 -1
  313. package/types/global.d.ts +1 -1
  314. package/types/mocha.d.ts +1 -1
  315. package/.yarn/install-state.gz +0 -0
  316. package/addon/package.json +0 -5
  317. package/jest.config.js +0 -6
  318. package/lib/cjs/cli.js +0 -6
  319. package/lib/cjs/client/addon/Manager.js +0 -192
  320. package/lib/cjs/client/addon/components/Addon.js +0 -48
  321. package/lib/cjs/client/addon/components/Icons.js +0 -40
  322. package/lib/cjs/client/addon/components/Panel.js +0 -59
  323. package/lib/cjs/client/addon/components/TestSelect.js +0 -52
  324. package/lib/cjs/client/addon/components/Tools.js +0 -84
  325. package/lib/cjs/client/addon/decorator.js +0 -8
  326. package/lib/cjs/client/addon/index.js +0 -27
  327. package/lib/cjs/client/addon/preset.js +0 -8
  328. package/lib/cjs/client/addon/preview.js +0 -11
  329. package/lib/cjs/client/addon/readyForCapture.js +0 -9
  330. package/lib/cjs/client/addon/register.js +0 -57
  331. package/lib/cjs/client/addon/utils.js +0 -34
  332. package/lib/cjs/client/addon/withCreevey.js +0 -272
  333. package/lib/cjs/client/shared/components/ImagesView/BlendView.js +0 -75
  334. package/lib/cjs/client/shared/components/ImagesView/ImagesView.js +0 -76
  335. package/lib/cjs/client/shared/components/ImagesView/SideBySideView.js +0 -139
  336. package/lib/cjs/client/shared/components/ImagesView/SlideView.js +0 -151
  337. package/lib/cjs/client/shared/components/ImagesView/SwapView.js +0 -79
  338. package/lib/cjs/client/shared/components/ImagesView/index.js +0 -40
  339. package/lib/cjs/client/shared/components/PageFooter/PageFooter.js +0 -43
  340. package/lib/cjs/client/shared/components/PageFooter/Paging.js +0 -77
  341. package/lib/cjs/client/shared/components/PageHeader/ImagePreview.js +0 -86
  342. package/lib/cjs/client/shared/components/PageHeader/PageHeader.js +0 -100
  343. package/lib/cjs/client/shared/components/ResultsPage.js +0 -116
  344. package/lib/cjs/client/shared/creeveyClientApi.js +0 -66
  345. package/lib/cjs/client/shared/helpers.js +0 -357
  346. package/lib/cjs/client/shared/viewMode.js +0 -13
  347. package/lib/cjs/client/web/192.js +0 -1
  348. package/lib/cjs/client/web/632.js +0 -43
  349. package/lib/cjs/client/web/794.js +0 -1
  350. package/lib/cjs/client/web/main.js +0 -79
  351. package/lib/cjs/creevey.js +0 -56
  352. package/lib/cjs/index.js +0 -47
  353. package/lib/cjs/server/config.js +0 -76
  354. package/lib/cjs/server/docker.js +0 -124
  355. package/lib/cjs/server/index.js +0 -58
  356. package/lib/cjs/server/logger.js +0 -34
  357. package/lib/cjs/server/master/api.js +0 -58
  358. package/lib/cjs/server/master/index.js +0 -122
  359. package/lib/cjs/server/master/master.js +0 -42
  360. package/lib/cjs/server/master/pool.js +0 -163
  361. package/lib/cjs/server/master/runner.js +0 -254
  362. package/lib/cjs/server/master/server.js +0 -110
  363. package/lib/cjs/server/messages.js +0 -218
  364. package/lib/cjs/server/selenium/browser.js +0 -644
  365. package/lib/cjs/server/selenium/index.js +0 -27
  366. package/lib/cjs/server/selenium/selenoid.js +0 -148
  367. package/lib/cjs/server/stories.js +0 -148
  368. package/lib/cjs/server/storybook/providers/browser.js +0 -64
  369. package/lib/cjs/server/storybook/providers/hybrid.js +0 -63
  370. package/lib/cjs/server/telemetry.js +0 -167
  371. package/lib/cjs/server/testsFiles/parser.js +0 -56
  372. package/lib/cjs/server/testsFiles/register.js +0 -42
  373. package/lib/cjs/server/update.js +0 -62
  374. package/lib/cjs/server/utils.js +0 -144
  375. package/lib/cjs/server/worker/chai-image.js +0 -116
  376. package/lib/cjs/server/worker/helpers.js +0 -59
  377. package/lib/cjs/server/worker/index.js +0 -13
  378. package/lib/cjs/server/worker/reporter.js +0 -93
  379. package/lib/cjs/server/worker/worker.js +0 -238
  380. package/lib/cjs/shared/index.js +0 -87
  381. package/lib/cjs/shared/serializeRegExp.js +0 -34
  382. package/lib/cjs/types.js +0 -65
  383. package/lib/esm/cli.js +0 -4
  384. package/lib/esm/client/addon/Manager.js +0 -185
  385. package/lib/esm/client/addon/components/Addon.js +0 -39
  386. package/lib/esm/client/addon/components/Icons.js +0 -31
  387. package/lib/esm/client/addon/components/Panel.js +0 -51
  388. package/lib/esm/client/addon/components/TestSelect.js +0 -45
  389. package/lib/esm/client/addon/components/Tools.js +0 -75
  390. package/lib/esm/client/addon/decorator.js +0 -2
  391. package/lib/esm/client/addon/index.js +0 -2
  392. package/lib/esm/client/addon/preview.js +0 -5
  393. package/lib/esm/client/addon/readyForCapture.js +0 -3
  394. package/lib/esm/client/addon/register.js +0 -49
  395. package/lib/esm/client/addon/utils.js +0 -27
  396. package/lib/esm/client/addon/withCreevey.js +0 -263
  397. package/lib/esm/client/shared/components/ImagesView/BlendView.js +0 -67
  398. package/lib/esm/client/shared/components/ImagesView/ImagesView.js +0 -67
  399. package/lib/esm/client/shared/components/ImagesView/SideBySideView.js +0 -131
  400. package/lib/esm/client/shared/components/ImagesView/SwapView.js +0 -71
  401. package/lib/esm/client/shared/components/ImagesView/index.js +0 -5
  402. package/lib/esm/client/shared/components/PageFooter/PageFooter.js +0 -36
  403. package/lib/esm/client/shared/components/PageFooter/Paging.js +0 -70
  404. package/lib/esm/client/shared/components/PageHeader/ImagePreview.js +0 -79
  405. package/lib/esm/client/shared/components/PageHeader/PageHeader.js +0 -92
  406. package/lib/esm/client/shared/components/ResultsPage.js +0 -107
  407. package/lib/esm/client/shared/creeveyClientApi.js +0 -60
  408. package/lib/esm/client/shared/helpers.js +0 -327
  409. package/lib/esm/client/shared/viewMode.js +0 -6
  410. package/lib/esm/client/web/192.js +0 -1
  411. package/lib/esm/client/web/632.js +0 -43
  412. package/lib/esm/client/web/794.js +0 -1
  413. package/lib/esm/client/web/main.js +0 -79
  414. package/lib/esm/client/web/main.js.LICENSE.txt +0 -34
  415. package/lib/esm/creevey.js +0 -53
  416. package/lib/esm/index.js +0 -4
  417. package/lib/esm/server/config.js +0 -66
  418. package/lib/esm/server/docker.js +0 -115
  419. package/lib/esm/server/index.js +0 -50
  420. package/lib/esm/server/master/api.js +0 -51
  421. package/lib/esm/server/master/index.js +0 -115
  422. package/lib/esm/server/master/master.js +0 -33
  423. package/lib/esm/server/master/pool.js +0 -154
  424. package/lib/esm/server/master/runner.js +0 -246
  425. package/lib/esm/server/master/server.js +0 -103
  426. package/lib/esm/server/messages.js +0 -200
  427. package/lib/esm/server/selenium/browser.js +0 -631
  428. package/lib/esm/server/selenium/index.js +0 -2
  429. package/lib/esm/server/selenium/selenoid.js +0 -140
  430. package/lib/esm/server/stories.js +0 -139
  431. package/lib/esm/server/storybook/providers/browser.js +0 -56
  432. package/lib/esm/server/storybook/providers/hybrid.js +0 -53
  433. package/lib/esm/server/telemetry.js +0 -160
  434. package/lib/esm/server/testsFiles/parser.js +0 -44
  435. package/lib/esm/server/testsFiles/register.js +0 -34
  436. package/lib/esm/server/update.js +0 -53
  437. package/lib/esm/server/utils.js +0 -125
  438. package/lib/esm/server/worker/chai-image.js +0 -109
  439. package/lib/esm/server/worker/helpers.js +0 -53
  440. package/lib/esm/server/worker/index.js +0 -1
  441. package/lib/esm/server/worker/reporter.js +0 -84
  442. package/lib/esm/server/worker/worker.js +0 -231
  443. package/lib/esm/shared/index.js +0 -77
  444. package/lib/esm/shared/serializeRegExp.js +0 -24
  445. package/lib/esm/types.js +0 -47
  446. package/lib/types/cli.d.ts +0 -1
  447. package/lib/types/client/addon/components/Addon.d.ts +0 -9
  448. package/lib/types/client/addon/components/Tools.d.ts +0 -7
  449. package/lib/types/client/addon/index.d.ts +0 -2
  450. package/lib/types/client/addon/register.d.ts +0 -3
  451. package/lib/types/client/shared/components/ImagesView/index.d.ts +0 -5
  452. package/lib/types/client/web/CreeveyLoader.d.ts +0 -3
  453. package/lib/types/client/web/CreeveyView/SideBar/index.d.ts +0 -1
  454. package/lib/types/index.d.ts +0 -6
  455. package/lib/types/server/master/index.d.ts +0 -3
  456. package/lib/types/server/master/server.d.ts +0 -2
  457. package/lib/types/server/selenium/index.d.ts +0 -2
  458. package/lib/types/server/storybook/providers/browser.d.ts +0 -2
  459. package/lib/types/server/storybook/providers/hybrid.d.ts +0 -2
  460. package/lib/types/server/testsFiles/register.d.ts +0 -2
  461. package/lib/types/server/update.d.ts +0 -2
  462. package/lib/types/server/worker/index.d.ts +0 -1
  463. package/lib/types/server/worker/worker.d.ts +0 -4
  464. package/types/babel__register.d.ts +0 -1
  465. package/types/event-source-polyfill.d.ts +0 -6
  466. /package/{lib/types → dist}/client/addon/decorator.d.ts +0 -0
  467. /package/{lib/types/creevey.d.ts → dist/client/addon/manager.d.ts} +0 -0
  468. /package/{lib/types → dist}/client/addon/preset.d.ts +0 -0
  469. /package/{lib/types → dist}/client/addon/preview.d.ts +0 -0
  470. /package/{lib/types → dist}/client/addon/readyForCapture.d.ts +0 -0
  471. /package/{lib/cjs → dist}/client/web/main.js.LICENSE.txt +0 -0
  472. /package/{lib/types → dist}/server/telemetry.d.ts +0 -0
  473. /package/{lib/types → dist}/server/worker/reporter.d.ts +0 -0
  474. /package/{lib/types → dist}/shared/serializeRegExp.d.ts +0 -0
  475. /package/{addon → manager}/README.md +0 -0
@@ -1,148 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.startSelenoidContainer = startSelenoidContainer;
7
- exports.startSelenoidStandalone = startSelenoidStandalone;
8
- var _path = _interopRequireDefault(require("path"));
9
- var _util = require("util");
10
- var _fs = require("fs");
11
- var _utils = require("../utils");
12
- var _docker = require("../docker");
13
- var _core = require("@octokit/core");
14
- var _messages = require("../messages");
15
- var _cluster = _interopRequireDefault(require("cluster"));
16
- var _shelljs = require("shelljs");
17
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
18
- const mkdirAsync = (0, _util.promisify)(_fs.mkdir);
19
- const writeFileAsync = (0, _util.promisify)(_fs.writeFile);
20
- const copyFileAsync = (0, _util.promisify)(_fs.copyFile);
21
- async function createSelenoidConfig(browsers, {
22
- useDocker
23
- }) {
24
- const selenoidConfig = {};
25
- const selenoidConfigDir = _path.default.join((0, _utils.getCreeveyCache)(), 'selenoid');
26
- browsers.forEach(({
27
- browserName,
28
- version = 'latest',
29
- browserVersion = version,
30
- dockerImage = `selenoid/${browserName}:${browserVersion}`,
31
- webdriverCommand = []
32
- }) => {
33
- if (!selenoidConfig[browserName]) selenoidConfig[browserName] = {
34
- default: browserVersion,
35
- versions: {}
36
- };
37
- if (!useDocker && webdriverCommand.length == 0) throw new Error('Please specify "webdriverCommand" browser option with path to browser webdriver');
38
- selenoidConfig[browserName].versions[browserVersion] = {
39
- image: useDocker ? dockerImage : webdriverCommand,
40
- port: '4444',
41
- path: !useDocker || ['chrome', 'opera', 'webkit', 'MicrosoftEdge'].includes(browserName) ? '/' : '/wd/hub'
42
- };
43
- });
44
- await mkdirAsync(selenoidConfigDir, {
45
- recursive: true
46
- });
47
- await writeFileAsync(_path.default.join(selenoidConfigDir, 'browsers.json'), JSON.stringify(selenoidConfig));
48
- return selenoidConfigDir;
49
- }
50
- async function downloadSelenoidBinary(destination) {
51
- const platformNameMapping = {
52
- darwin: 'selenoid_darwin_amd64',
53
- linux: 'selenoid_linux_amd64',
54
- win32: 'selenoid_windows_amd64.exe'
55
- };
56
- const octokit = new _core.Octokit();
57
- const response = await octokit.request('GET /repos/{owner}/{repo}/releases/latest', {
58
- owner: 'aerokube',
59
- repo: 'selenoid'
60
- });
61
- const {
62
- assets
63
- } = response.data;
64
- const {
65
- browser_download_url: downloadUrl,
66
- size: binarySize
67
- } = assets.find(({
68
- name
69
- }) => platformNameMapping[process.platform] == name) ?? {};
70
- if ((0, _fs.existsSync)(destination) && (0, _fs.lstatSync)(destination).size == binarySize) return;
71
- if (!downloadUrl) {
72
- 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`);
73
- }
74
- return (0, _utils.downloadBinary)(downloadUrl, destination);
75
- }
76
- async function startSelenoidStandalone(config, debug) {
77
- config.gridUrl = 'http://localhost:4444/wd/hub';
78
- if (_cluster.default.isWorker) return;
79
- const browsers = Object.values(config.browsers).filter(browser => !browser.gridUrl);
80
- const selenoidConfigDir = await createSelenoidConfig(browsers, {
81
- useDocker: false
82
- });
83
- const binaryPath = _path.default.join(selenoidConfigDir, process.platform == 'win32' ? 'selenoid.exe' : 'selenoid');
84
- if (config.selenoidPath) {
85
- await copyFileAsync(_path.default.resolve(config.selenoidPath), binaryPath);
86
- } else {
87
- await downloadSelenoidBinary(binaryPath);
88
- }
89
-
90
- // TODO Download browser webdrivers
91
- try {
92
- if (process.platform != 'win32') (0, _shelljs.chmod)('+x', binaryPath);
93
- } catch (_) {
94
- /* noop */
95
- }
96
- const selenoidProcess = (0, _shelljs.exec)(`${binaryPath} -conf ./browsers.json -disable-docker`, {
97
- async: true,
98
- cwd: selenoidConfigDir
99
- });
100
- if (debug) {
101
- var _selenoidProcess$stdo, _selenoidProcess$stde;
102
- (_selenoidProcess$stdo = selenoidProcess.stdout) === null || _selenoidProcess$stdo === void 0 || _selenoidProcess$stdo.pipe(process.stdout);
103
- (_selenoidProcess$stde = selenoidProcess.stderr) === null || _selenoidProcess$stde === void 0 || _selenoidProcess$stde.pipe(process.stderr);
104
- }
105
- (0, _messages.subscribeOn)('shutdown', () => selenoidProcess.kill());
106
- }
107
- async function startSelenoidContainer(config, debug) {
108
- const browsers = Object.values(config.browsers).filter(browser => !browser.gridUrl);
109
- const images = [];
110
- let limit = 0;
111
- browsers.forEach(({
112
- browserName,
113
- version = 'latest',
114
- browserVersion = version,
115
- limit: browserLimit = 1,
116
- dockerImage = `selenoid/${browserName}:${browserVersion}`
117
- }) => {
118
- limit += browserLimit;
119
- images.push(dockerImage);
120
- });
121
- const selenoidImage = config.dockerImage;
122
- const pullOptions = {
123
- auth: config.dockerAuth,
124
- platform: config.dockerImagePlatform
125
- };
126
- if (config.pullImages) {
127
- await (0, _docker.pullImages)([selenoidImage], pullOptions);
128
- await (0, _docker.pullImages)(images, pullOptions);
129
- }
130
-
131
- // TODO Allow pass custom options
132
- const selenoidOptions = {
133
- ExposedPorts: {
134
- '4444/tcp': {}
135
- },
136
- HostConfig: {
137
- PortBindings: {
138
- '4444/tcp': [{
139
- HostPort: '4444'
140
- }]
141
- },
142
- Binds: ['/var/run/docker.sock:/var/run/docker.sock', `${await createSelenoidConfig(browsers, {
143
- useDocker: true
144
- })}:/etc/selenoid/:ro`]
145
- }
146
- };
147
- return (0, _docker.runImage)(selenoidImage, ['-limit', String(limit)], selenoidOptions, debug);
148
- }
@@ -1,148 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.loadTestsFromStories = loadTestsFromStories;
7
- exports.saveStoriesJson = saveStoriesJson;
8
- exports.saveTestsJson = saveTestsJson;
9
- var _path = _interopRequireDefault(require("path"));
10
- var _fs = require("fs");
11
- var _crypto = require("crypto");
12
- var _lodash = require("lodash");
13
- var _types = require("../types");
14
- var _utils = require("./utils");
15
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
- function storyTestFabric(delay, testFn) {
17
- return async function storyTest() {
18
- delay ? await new Promise(resolve => setTimeout(resolve, delay)) : void 0;
19
- await (testFn ? testFn.call(this) : this.screenshots.length > 0 ? this.expect(this.screenshots.reduce((screenshots, {
20
- imageName,
21
- screenshot
22
- }, index) => ({
23
- ...screenshots,
24
- [imageName ?? `screenshot_${index}`]: screenshot
25
- }), {})).to.matchImages() : this.expect(await this.takeScreenshot()).to.matchImage());
26
- };
27
- }
28
- function createCreeveyTest(browser, storyMeta, skipOptions, testName) {
29
- const {
30
- kind,
31
- name: story,
32
- id: storyId
33
- } = storyMeta;
34
- const path = [kind, story, testName, browser].filter(_types.isDefined);
35
- const skip = skipOptions ? (0, _utils.shouldSkip)(browser, {
36
- kind,
37
- story
38
- }, skipOptions, testName) : false;
39
- const id = (0, _crypto.createHash)('sha1').update(path.join('/')).digest('hex');
40
- return {
41
- id,
42
- skip,
43
- browser,
44
- testName,
45
- storyPath: [...kind.split('/').map(x => x.trim()), story],
46
- storyId
47
- };
48
- }
49
- function convertStories(browserName, stories) {
50
- const tests = {};
51
- (Array.isArray(stories) ? stories : Object.values(stories)).forEach(storyMeta => {
52
- // TODO Skip docsOnly stories for now
53
- if (storyMeta.parameters.docsOnly) return;
54
- const {
55
- delay: delayParam,
56
- tests: storyTests,
57
- skip
58
- } = storyMeta.parameters.creevey ?? {};
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]
62
- // typeof tests === "function" => rootSuite -> kindSuite -> storyTest -> browser -> [images.png]
63
- // typeof tests === "object" => rootSuite -> kindSuite -> storySuite -> test -> [browsers.png]
64
- // typeof tests === "object" => rootSuite -> kindSuite -> storySuite -> test -> browser -> [images.png]
65
-
66
- if (!storyTests) {
67
- const test = createCreeveyTest(browserName, storyMeta, skip);
68
- tests[test.id] = {
69
- ...test,
70
- storyId: storyMeta.id,
71
- story: storyMeta,
72
- fn: storyTestFabric(delay)
73
- };
74
- return;
75
- }
76
- Object.entries(storyTests).forEach(([testName, testFn]) => {
77
- const test = createCreeveyTest(browserName, storyMeta, skip, testName);
78
- tests[test.id] = {
79
- ...test,
80
- storyId: storyMeta.id,
81
- story: storyMeta,
82
- fn: storyTestFabric(delay, testFn)
83
- };
84
- });
85
- });
86
- return tests;
87
- }
88
- async function loadTestsFromStories(browsers, provider, update) {
89
- const testIdsByFiles = new Map();
90
- const stories = await provider(storiesByFiles => {
91
- const testsDiff = {};
92
- const tests = {};
93
- browsers.forEach(browser => {
94
- Array.from(storiesByFiles.entries()).forEach(([filename, stories]) => {
95
- var _testIdsByFiles$get;
96
- Object.assign(tests, convertStories(browser, stories));
97
- const changed = Object.keys(tests);
98
- const removed = ((_testIdsByFiles$get = testIdsByFiles.get(filename)) === null || _testIdsByFiles$get === void 0 ? void 0 : _testIdsByFiles$get.filter(testId => !tests[testId])) ?? [];
99
- if (changed.length == 0) testIdsByFiles.delete(filename);else testIdsByFiles.set(filename, changed);
100
- Object.assign(testsDiff, tests);
101
- removed.forEach(testId => testsDiff[testId] = undefined);
102
- });
103
- });
104
- update === null || update === void 0 || update(testsDiff);
105
- });
106
- const tests = browsers.reduce((tests, browser) => Object.assign(tests, convertStories(browser, stories)), {});
107
- Object.values(tests).filter(_types.isDefined).forEach(({
108
- id,
109
- story: {
110
- parameters: {
111
- fileName
112
- }
113
- }
114
- }) =>
115
- // TODO Don't use filename as a key, due possible collisions if two require.context with same structure of modules are defined
116
- testIdsByFiles.set(fileName, [...(testIdsByFiles.get(fileName) ?? []), id]));
117
- return tests;
118
- }
119
- function saveStoriesJson(storiesData, extract) {
120
- const outputDir = typeof extract == 'boolean' ? 'storybook-static' : extract;
121
-
122
- // NOTE Copy-pasted from Storybook's `getStoriesJsonData` method
123
- const allowed = ['fileName', 'docsOnly', 'framework', '__id', '__isArgsStory'];
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']),
130
- parameters: (0, _lodash.pick)(v.parameters, allowed)
131
- }));
132
-
133
- // TODO Fix args stories
134
- (0, _utils.removeProps)(storiesData ?? {}, ['stories', () => true, 'parameters', '__isArgsStory']);
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);
136
- (0, _fs.mkdirSync)(outputDir, {
137
- recursive: true
138
- });
139
- (0, _fs.writeFileSync)(_path.default.join(outputDir, 'stories.json'), JSON.stringify(storiesData, null, 2));
140
- }
141
- function saveTestsJson(tests, dstPath = process.cwd()) {
142
- (0, _fs.mkdirSync)(dstPath, {
143
- recursive: true
144
- });
145
- (0, _fs.writeFileSync)(_path.default.join(dstPath, 'tests.json'),
146
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
147
- JSON.stringify(tests, (_, value) => (0, _types.isFunction)(value) ? value.toString() : value, 2));
148
- }
@@ -1,64 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.loadStories = void 0;
7
- var _cluster = _interopRequireDefault(require("cluster"));
8
- var _selenium = require("../../selenium");
9
- var _messages = require("../../messages");
10
- var _types = require("../../../types");
11
- var _logger = require("../../logger");
12
- var _shared = require("../../../shared");
13
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
- const loadStories = async (_config, _options, storiesListener) => {
15
- if (_cluster.default.isPrimary) {
16
- return new Promise(resolve => {
17
- const worker = Object.values(_cluster.default.workers ?? {}).filter(_types.isDefined).find(worker => worker.isConnected());
18
- if (worker) {
19
- const unsubscribe = (0, _messages.subscribeOnWorker)(worker, 'stories', message => {
20
- if (message.type == 'set') {
21
- const {
22
- stories,
23
- oldTests
24
- } = message.payload;
25
- if (oldTests.length > 0) _logger.logger.warn(`If you use browser stories provider of CSFv3 Storybook feature\n` + `Creevey will not load tests defined in story parameters from following stories:\n` + oldTests.join('\n'));
26
- unsubscribe();
27
- resolve(stories);
28
- }
29
- });
30
- (0, _messages.sendStoriesMessage)(worker, {
31
- type: 'get'
32
- });
33
- }
34
- (0, _messages.subscribeOn)('stories', message => {
35
- // TODO updates only one browser :(
36
- if (message.type == 'update') storiesListener(new Map(message.payload));
37
- });
38
- });
39
- } else {
40
- (0, _messages.subscribeOn)('stories', message => {
41
- if (message.type == 'get') (0, _messages.emitStoriesMessage)({
42
- type: 'set',
43
- payload: {
44
- stories,
45
- oldTests: storiesWithOldTests
46
- }
47
- });
48
- if (message.type == 'update') storiesListener(new Map(message.payload));
49
- });
50
- const stories = (0, _shared.deserializeRawStories)(await (0, _selenium.loadStoriesFromBrowser)());
51
- const storiesWithOldTests = [];
52
- Object.values(stories).forEach(story => {
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;
57
- storiesWithOldTests.push(`${story.kind}/${story.name}`);
58
- }
59
- });
60
- return stories;
61
- }
62
- };
63
- exports.loadStories = loadStories;
64
- loadStories.providerName = 'browser';
@@ -1,63 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.loadStories = void 0;
7
- var _chokidar = _interopRequireDefault(require("chokidar"));
8
- var _browser = require("./browser");
9
- var _logger = require("../../logger");
10
- var _parser = _interopRequireDefault(require("../../testsFiles/parser"));
11
- var _utils = require("../../../server/utils");
12
- var _shared = require("../../../shared");
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; }
16
- const loadStories = async (_config, _options, storiesListener) => {
17
- let creeveyParamsByStoryId = {};
18
- const mergeParamsFromTestsToStory = (story, creeveyParams) => {
19
- if (story.parameters) {
20
- story.parameters.creevey = (0, _shared.combineParameters)(story.parameters.creevey || {}, creeveyParams);
21
- }
22
- };
23
- const stories = await (0, _browser.loadStories)(_config, {}, updatedStoriesByFiles => {
24
- Array.from(updatedStoriesByFiles.entries()).forEach(([, storiesArray]) => {
25
- storiesArray.forEach(story => {
26
- const creeveyParams = creeveyParamsByStoryId[story.id];
27
- if (creeveyParams) {
28
- mergeParamsFromTestsToStory(story, creeveyParams);
29
- }
30
- });
31
- });
32
- storiesListener(updatedStoriesByFiles);
33
- });
34
-
35
- // TODO fix test files hot reloading
36
- creeveyParamsByStoryId = await parseParams(_config /*, (data) => console.log(data) */);
37
- Object.entries(stories).forEach(([storyId, story]) => {
38
- mergeParamsFromTestsToStory(story, creeveyParamsByStoryId[storyId]);
39
- });
40
- return stories;
41
- };
42
- exports.loadStories = loadStories;
43
- async function parseParams(config, listener) {
44
- if (!config.testsDir) {
45
- return Promise.resolve({});
46
- }
47
- const testFiles = (0, _utils.readDirRecursive)(config.testsDir).filter(file => {
48
- var _config$testsRegex;
49
- return (_config$testsRegex = config.testsRegex) === null || _config$testsRegex === void 0 ? void 0 : _config$testsRegex.test(file);
50
- });
51
- await (await Promise.resolve().then(() => _interopRequireWildcard(require('../../testsFiles/register')))).default(config);
52
- if (listener) {
53
- _chokidar.default.watch(testFiles).on('change', filePath => {
54
- _logger.logger.debug(`changed: ${filePath}`);
55
-
56
- // doesn't work, always returns {} due modules caching
57
- // see https://github.com/nodejs/modules/issues/307
58
- void (0, _parser.default)(testFiles).then(data => listener(data));
59
- });
60
- }
61
- return (0, _parser.default)(testFiles);
62
- }
63
- loadStories.providerName = 'hybrid';
@@ -1,167 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.sendScreenshotsCount = sendScreenshotsCount;
7
- var _path = _interopRequireDefault(require("path"));
8
- var _https = _interopRequireDefault(require("https"));
9
- var _shelljs = require("shelljs");
10
- var _qs = require("qs");
11
- var _lodash = require("lodash");
12
- var _uuid = require("uuid");
13
- var _types = require("../types");
14
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
- const konturGitHost = 'git.skbkontur.ru';
16
- const trackId = 232; // front_infra
17
- const origin = 'http://localhost/';
18
- const category = 'tests_run';
19
- const action = 'done';
20
- function buildPathname(label, info) {
21
- return `/track-event?${(0, _qs.stringify)({
22
- id: trackId,
23
- c: category,
24
- a: action,
25
- l: label,
26
- cv: typeof info == 'string' ? info : JSON.stringify(info),
27
- ts: new Date().toISOString(),
28
- url: origin
29
- })}`;
30
- }
31
- function sanitizeGridUrl(gridUrl) {
32
- const url = new URL(gridUrl);
33
- url.username = url.username ? '********' : '';
34
- url.password = url.password ? '********' : '';
35
- return url.toString();
36
- }
37
- function tryGetRepoUrl() {
38
- try {
39
- const gitRemoteOutput = (0, _shelljs.exec)('git remote -v', {
40
- silent: true
41
- });
42
- const [, repoUrl] = gitRemoteOutput.stdout.match(/origin\s+(.*)\s+\(fetch\)/) ?? [];
43
- return [repoUrl, null];
44
- } catch (error) {
45
- return [undefined, error];
46
- }
47
- }
48
- function tryGetStorybookVersion() {
49
- try {
50
- const storybookPackageOutput = (0, _shelljs.exec)(`node -e "console.log(JSON.stringify(require('storybook/package.json')))"`, {
51
- silent: true
52
- });
53
- const storybookPackage = JSON.parse(storybookPackageOutput);
54
- return [storybookPackage.version, null];
55
- } catch (error) {
56
- return [undefined, error];
57
- }
58
- }
59
- function tryGetCreeveyVersion() {
60
- try {
61
- // eslint-disable-next-line @typescript-eslint/no-var-requires, node/no-missing-require
62
- const creeveyPackage = require('creevey/package.json');
63
- return [creeveyPackage.version, null];
64
- } catch (error) {
65
- return [undefined, error];
66
- }
67
- }
68
- function sendRequest(options) {
69
- return new Promise((resolve, reject) => {
70
- const req = _https.default.request(options, res => {
71
- if (res.statusCode) {
72
- if (res.statusCode >= 200 && res.statusCode < 300) {
73
- resolve();
74
- } else if (res.statusCode >= 300 && res.statusCode < 400) {
75
- reject(new Error(`Redirection error: ${res.statusCode}`));
76
- } else if (res.statusCode >= 400 && res.statusCode < 500) {
77
- reject(new Error(`Client error: ${res.statusCode}`));
78
- } else if (res.statusCode >= 500 && res.statusCode < 600) {
79
- reject(new Error(`Server error: ${res.statusCode}`));
80
- } else {
81
- reject(new Error(`Unexpected status code: ${res.statusCode}`));
82
- }
83
- } else {
84
- reject(new Error('No status code received'));
85
- }
86
- });
87
- req.on('error', reject);
88
- req.end();
89
- });
90
- }
91
- async function sendScreenshotsCount(config, options, status) {
92
- var _config$storiesProvid;
93
- const [repoUrl] = tryGetRepoUrl();
94
- const isKonturRepo = repoUrl === null || repoUrl === void 0 ? void 0 : repoUrl.includes(konturGitHost);
95
- if (!isKonturRepo || config.disableTelemetry) return;
96
- const uuid = (0, _uuid.v4)();
97
- const [creeveyVersion, creeveyVersionError] = tryGetCreeveyVersion();
98
- const [storybookVersion, storybookVersionError] = tryGetStorybookVersion();
99
- const gridUrl = config.gridUrl ? sanitizeGridUrl(config.gridUrl) : undefined;
100
- const configMeta = {
101
- runId: uuid,
102
- repoUrl: repoUrl ?? 'unknown',
103
- creeveyVersion: creeveyVersion ?? 'unknown',
104
- storybookVersion: storybookVersion ?? 'unknown',
105
- options: options._,
106
- gridUrl,
107
- screenDir: config.screenDir ? _path.default.relative(process.cwd(), config.screenDir) : undefined,
108
- useDocker: config.useDocker,
109
- dockerImage: config.dockerImage,
110
- maxRetries: config.maxRetries,
111
- diffOptions: config.diffOptions,
112
- storiesProvider: ((_config$storiesProvid = config.storiesProvider) === null || _config$storiesProvid === void 0 ? void 0 : _config$storiesProvid.providerName) ?? 'unknown',
113
- errors: [creeveyVersionError, storybookVersionError].some(Boolean) ? [creeveyVersionError ? `Error while getting creevey version: ${creeveyVersionError.message}` : undefined, storybookVersionError ? `Error while getting storybook version: ${storybookVersionError.message}` : undefined].filter(Boolean) : undefined
114
- };
115
- const browsersMeta = {
116
- runId: uuid,
117
- browsers: Object.fromEntries(Object.entries(config.browsers ?? {}).map(([name, browser]) => [name, typeof browser === 'object' ? {
118
- name: browser.name,
119
- gridUrl: browser.gridUrl ? sanitizeGridUrl(browser.gridUrl) : undefined,
120
- browserName: browser.browserName,
121
- browserVersion: browser.browserVersion,
122
- platformName: browser.platformName,
123
- viewport: browser.viewport,
124
- limit: browser.limit,
125
- dockerImage: browser.dockerImage,
126
- 'se:teamname': browser['se:teamname']
127
- } : browser]))
128
- };
129
- const tests = {};
130
- Object.values((status === null || status === void 0 ? void 0 : status.tests) ?? {}).filter(_types.isDefined).forEach(test => {
131
- (0, _lodash.set)(tests, [...test.storyPath, test.testName, test.browser].filter(_types.isDefined), test.id);
132
- });
133
- const testsMeta = {
134
- runId: uuid,
135
- tests
136
- };
137
- const fullPathname = buildPathname('tests', testsMeta);
138
- // NOTE: Keep request path shorter than 32k symbols
139
- const chunksCount = Math.ceil(fullPathname.length / 32_000);
140
- let chunks = [];
141
- if (chunksCount > 1) {
142
- const testsString = JSON.stringify(tests);
143
- const chunkSize = Math.ceil(testsString.length / chunksCount);
144
- chunks = Array.from({
145
- length: chunksCount
146
- }).map((_, chunkIndex) => testsString.slice(chunkIndex * chunkSize, (chunkIndex + 1) * chunkSize)).map((testsPart, seq) => buildPathname('tests', {
147
- runId: uuid,
148
- tests: testsPart,
149
- seq
150
- }));
151
- } else {
152
- chunks = [fullPathname];
153
- }
154
- await Promise.all([sendRequest({
155
- host: 'metrika.kontur.ru',
156
- path: buildPathname('config', configMeta),
157
- protocol: 'https:'
158
- }), sendRequest({
159
- host: 'metrika.kontur.ru',
160
- path: buildPathname('browsers', browsersMeta),
161
- protocol: 'https:'
162
- }), ...chunks.map(chunk => sendRequest({
163
- host: 'metrika.kontur.ru',
164
- path: chunk,
165
- protocol: 'https:'
166
- }))]);
167
- }
@@ -1,56 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = parse;
7
- exports.test = exports.story = exports.kind = void 0;
8
- var _csf = require("@storybook/csf");
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; }
11
- async function parse(files) {
12
- result = {};
13
- await Promise.all(files.map(async file => (specifier => new Promise(r => r(`${specifier}`)).then(s => _interopRequireWildcard(require(s))))(file)));
14
- return result;
15
- }
16
- let result = {};
17
- let kindTitle = '';
18
- let storyTitle = '';
19
- let storyParams = null;
20
- const setStoryParameters = params => {
21
- storyParams = params;
22
- };
23
- const getStoryId = (kindTitle, storyTitle) => {
24
- return (0, _csf.toId)(kindTitle, (0, _csf.storyNameFromExport)(storyTitle));
25
- };
26
- const kind = (title, kindFn) => {
27
- kindTitle = title;
28
- kindFn();
29
- kindTitle = '';
30
- };
31
- exports.kind = kind;
32
- const story = (title, storyFn) => {
33
- var _result$storyId;
34
- storyTitle = title;
35
- storyParams = null;
36
- storyFn({
37
- setStoryParameters
38
- });
39
- const storyId = getStoryId(kindTitle, storyTitle);
40
- result[storyId] = Object.assign({}, storyParams, {
41
- tests: (_result$storyId = result[storyId]) === null || _result$storyId === void 0 ? void 0 : _result$storyId.tests
42
- });
43
- storyTitle = '';
44
- storyParams = null;
45
- };
46
- exports.story = story;
47
- const test = (title, testFn) => {
48
- const storyId = getStoryId(kindTitle, storyTitle);
49
- if (!result[storyId]) {
50
- result[storyId] = {};
51
- }
52
- result[storyId].tests = Object.assign({}, result[storyId].tests, {
53
- [title]: testFn
54
- });
55
- };
56
- exports.test = test;