creevey 0.9.0-beta.2 → 0.9.0-beta.21

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 (518) hide show
  1. package/.yarnrc.yml +1 -0
  2. package/CHANGELOG.md +51 -0
  3. package/README.md +11 -3
  4. package/dist/cli.d.ts +2 -0
  5. package/dist/cli.js +5 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/client/addon/components/Addon.d.ts +8 -0
  8. package/dist/client/addon/components/Addon.js +57 -0
  9. package/dist/client/addon/components/Addon.js.map +1 -0
  10. package/dist/client/addon/components/Icons.js +18 -0
  11. package/dist/client/addon/components/Icons.js.map +1 -0
  12. package/{lib/types → dist}/client/addon/components/Panel.d.ts +1 -1
  13. package/dist/client/addon/components/Panel.js +32 -0
  14. package/dist/client/addon/components/Panel.js.map +1 -0
  15. package/{lib/types → dist}/client/addon/components/TestSelect.d.ts +1 -2
  16. package/dist/client/addon/components/TestSelect.js +33 -0
  17. package/dist/client/addon/components/TestSelect.js.map +1 -0
  18. package/dist/client/addon/components/Tools.d.ts +6 -0
  19. package/dist/client/addon/components/Tools.js +89 -0
  20. package/dist/client/addon/components/Tools.js.map +1 -0
  21. package/{lib/types/client/addon/Manager.d.ts → dist/client/addon/controller.d.ts} +9 -8
  22. package/dist/client/addon/controller.js +208 -0
  23. package/dist/client/addon/controller.js.map +1 -0
  24. package/dist/client/addon/decorator.d.ts +1 -0
  25. package/dist/client/addon/decorator.js +6 -0
  26. package/dist/client/addon/decorator.js.map +1 -0
  27. package/dist/client/addon/index.d.ts +2 -0
  28. package/dist/client/addon/index.js +19 -0
  29. package/dist/client/addon/index.js.map +1 -0
  30. package/dist/client/addon/manager.js +41 -0
  31. package/dist/client/addon/manager.js.map +1 -0
  32. package/dist/client/addon/preset.d.ts +2 -0
  33. package/dist/client/addon/preset.js +6 -0
  34. package/dist/client/addon/preset.js.map +1 -0
  35. package/dist/client/addon/preview.d.ts +4 -0
  36. package/dist/client/addon/preview.js +8 -0
  37. package/dist/client/addon/preview.js.map +1 -0
  38. package/dist/client/addon/readyForCapture.js +7 -0
  39. package/dist/client/addon/readyForCapture.js.map +1 -0
  40. package/{lib/types → dist}/client/addon/utils.d.ts +2 -1
  41. package/dist/client/addon/utils.js +27 -0
  42. package/dist/client/addon/utils.js.map +1 -0
  43. package/{lib/types → dist}/client/addon/withCreevey.d.ts +6 -5
  44. package/dist/client/addon/withCreevey.js +286 -0
  45. package/dist/client/addon/withCreevey.js.map +1 -0
  46. package/dist/client/shared/components/ImagesView/BlendView.d.ts +5 -0
  47. package/dist/client/shared/components/ImagesView/BlendView.js +74 -0
  48. package/dist/client/shared/components/ImagesView/BlendView.js.map +1 -0
  49. package/dist/client/shared/components/ImagesView/ImagesView.d.ts +9 -0
  50. package/dist/client/shared/components/ImagesView/ImagesView.js +43 -0
  51. package/dist/client/shared/components/ImagesView/ImagesView.js.map +1 -0
  52. package/dist/client/shared/components/ImagesView/SideBySideView.d.ts +5 -0
  53. package/dist/client/shared/components/ImagesView/SideBySideView.js +121 -0
  54. package/dist/client/shared/components/ImagesView/SideBySideView.js.map +1 -0
  55. package/dist/client/shared/components/ImagesView/SlideView.d.ts +5 -0
  56. package/dist/client/shared/components/ImagesView/SlideView.js +136 -0
  57. package/dist/client/shared/components/ImagesView/SlideView.js.map +1 -0
  58. package/dist/client/shared/components/ImagesView/SwapView.d.ts +5 -0
  59. package/dist/client/shared/components/ImagesView/SwapView.js +72 -0
  60. package/dist/client/shared/components/ImagesView/SwapView.js.map +1 -0
  61. package/{lib/types/client/shared/components/ImagesView/ImagesView.d.ts → dist/client/shared/components/ImagesView/common.d.ts} +1 -11
  62. package/dist/client/shared/components/ImagesView/common.js +14 -0
  63. package/dist/client/shared/components/ImagesView/common.js.map +1 -0
  64. package/dist/client/shared/components/ImagesView/index.d.ts +5 -0
  65. package/dist/client/shared/components/ImagesView/index.js +14 -0
  66. package/dist/client/shared/components/ImagesView/index.js.map +1 -0
  67. package/{lib/types → dist}/client/shared/components/PageFooter/PageFooter.d.ts +0 -1
  68. package/dist/client/shared/components/PageFooter/PageFooter.js +25 -0
  69. package/dist/client/shared/components/PageFooter/PageFooter.js.map +1 -0
  70. package/{lib/types → dist}/client/shared/components/PageFooter/Paging.d.ts +1 -2
  71. package/dist/client/shared/components/PageFooter/Paging.js +68 -0
  72. package/dist/client/shared/components/PageFooter/Paging.js.map +1 -0
  73. package/{lib/types → dist}/client/shared/components/PageHeader/ImagePreview.d.ts +3 -1
  74. package/dist/client/shared/components/PageHeader/ImagePreview.js +61 -0
  75. package/dist/client/shared/components/PageHeader/ImagePreview.js.map +1 -0
  76. package/{lib/types → dist}/client/shared/components/PageHeader/PageHeader.d.ts +2 -5
  77. package/dist/client/shared/components/PageHeader/PageHeader.js +86 -0
  78. package/dist/client/shared/components/PageHeader/PageHeader.js.map +1 -0
  79. package/{lib/types → dist}/client/shared/components/ResultsPage.d.ts +5 -5
  80. package/dist/client/shared/components/ResultsPage.js +95 -0
  81. package/dist/client/shared/components/ResultsPage.js.map +1 -0
  82. package/{lib/types → dist}/client/shared/creeveyClientApi.d.ts +1 -1
  83. package/dist/client/shared/creeveyClientApi.js +53 -0
  84. package/dist/client/shared/creeveyClientApi.js.map +1 -0
  85. package/{lib/types → dist}/client/shared/helpers.d.ts +3 -3
  86. package/dist/client/shared/helpers.js +381 -0
  87. package/dist/client/shared/helpers.js.map +1 -0
  88. package/{lib/types → dist}/client/shared/viewMode.d.ts +1 -1
  89. package/dist/client/shared/viewMode.js +11 -0
  90. package/dist/client/shared/viewMode.js.map +1 -0
  91. package/dist/client/web/202.js +1 -0
  92. package/dist/client/web/270.js +43 -0
  93. package/dist/client/web/752.js +1 -0
  94. package/{lib/types → dist}/client/web/CreeveyApp.d.ts +2 -3
  95. package/dist/client/web/CreeveyApp.js +130 -0
  96. package/dist/client/web/CreeveyApp.js.map +1 -0
  97. package/{lib/types → dist}/client/web/CreeveyContext.d.ts +1 -1
  98. package/dist/client/web/CreeveyContext.js +17 -0
  99. package/dist/client/web/CreeveyContext.js.map +1 -0
  100. package/dist/client/web/CreeveyLoader.d.ts +3 -0
  101. package/dist/client/web/CreeveyLoader.js +52 -0
  102. package/dist/client/web/CreeveyLoader.js.map +1 -0
  103. package/{lib/types → dist}/client/web/CreeveyView/SideBar/Checkbox.d.ts +6 -3
  104. package/dist/client/web/CreeveyView/SideBar/Checkbox.js +86 -0
  105. package/dist/client/web/CreeveyView/SideBar/Checkbox.js.map +1 -0
  106. package/dist/client/web/CreeveyView/SideBar/Search.js +125 -0
  107. package/dist/client/web/CreeveyView/SideBar/Search.js.map +1 -0
  108. package/{lib/types → dist}/client/web/CreeveyView/SideBar/SideBar.d.ts +2 -2
  109. package/dist/client/web/CreeveyView/SideBar/SideBar.js +101 -0
  110. package/dist/client/web/CreeveyView/SideBar/SideBar.js.map +1 -0
  111. package/{lib/types → dist}/client/web/CreeveyView/SideBar/SideBarHeader.d.ts +2 -3
  112. package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js +113 -0
  113. package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js.map +1 -0
  114. package/dist/client/web/CreeveyView/SideBar/SuiteLink.d.ts +38 -0
  115. package/dist/client/web/CreeveyView/SideBar/SuiteLink.js +108 -0
  116. package/dist/client/web/CreeveyView/SideBar/SuiteLink.js.map +1 -0
  117. package/{lib/types → dist}/client/web/CreeveyView/SideBar/TestLink.d.ts +1 -2
  118. package/dist/client/web/CreeveyView/SideBar/TestLink.js +63 -0
  119. package/dist/client/web/CreeveyView/SideBar/TestLink.js.map +1 -0
  120. package/{lib/types → dist}/client/web/CreeveyView/SideBar/TestStatusIcon.d.ts +4 -2
  121. package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.js +52 -0
  122. package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.js.map +1 -0
  123. package/dist/client/web/CreeveyView/SideBar/TestsStatus.d.ts +11 -0
  124. package/dist/client/web/CreeveyView/SideBar/TestsStatus.js +74 -0
  125. package/dist/client/web/CreeveyView/SideBar/TestsStatus.js.map +1 -0
  126. package/dist/client/web/CreeveyView/SideBar/Toggle.js +69 -0
  127. package/dist/client/web/CreeveyView/SideBar/Toggle.js.map +1 -0
  128. package/dist/client/web/CreeveyView/SideBar/index.d.ts +1 -0
  129. package/dist/client/web/CreeveyView/SideBar/index.js +6 -0
  130. package/dist/client/web/CreeveyView/SideBar/index.js.map +1 -0
  131. package/{lib/types → dist}/client/web/KeyboardEventsContext.d.ts +6 -4
  132. package/dist/client/web/KeyboardEventsContext.js +116 -0
  133. package/dist/client/web/KeyboardEventsContext.js.map +1 -0
  134. package/{lib/types → dist}/client/web/index.d.ts +1 -1
  135. package/{lib/cjs → dist}/client/web/index.html +12 -3
  136. package/dist/client/web/index.js +75 -0
  137. package/dist/client/web/index.js.map +1 -0
  138. package/dist/client/web/main.js +79 -0
  139. package/dist/client/web/main.js.LICENSE.txt +34 -0
  140. package/dist/creevey.d.ts +1 -0
  141. package/dist/creevey.js +52 -0
  142. package/dist/creevey.js.map +1 -0
  143. package/dist/index.d.ts +5 -0
  144. package/dist/index.js +24 -0
  145. package/dist/index.js.map +1 -0
  146. package/{lib/types → dist}/server/config.d.ts +1 -1
  147. package/dist/server/config.js +84 -0
  148. package/dist/server/config.js.map +1 -0
  149. package/{lib/types → dist}/server/docker.d.ts +2 -2
  150. package/dist/server/docker.js +122 -0
  151. package/dist/server/docker.js.map +1 -0
  152. package/{lib/types → dist}/server/index.d.ts +1 -1
  153. package/dist/server/index.js +47 -0
  154. package/dist/server/index.js.map +1 -0
  155. package/dist/server/logger.d.ts +10 -0
  156. package/dist/server/logger.js +25 -0
  157. package/dist/server/logger.js.map +1 -0
  158. package/{lib/types → dist}/server/master/api.d.ts +1 -1
  159. package/dist/server/master/api.js +50 -0
  160. package/dist/server/master/api.js.map +1 -0
  161. package/dist/server/master/index.d.ts +3 -0
  162. package/dist/server/master/index.js +110 -0
  163. package/dist/server/master/index.js.map +1 -0
  164. package/{lib/types → dist}/server/master/master.d.ts +2 -2
  165. package/dist/server/master/master.js +40 -0
  166. package/dist/server/master/master.js.map +1 -0
  167. package/{lib/types → dist}/server/master/pool.d.ts +1 -2
  168. package/dist/server/master/pool.js +186 -0
  169. package/dist/server/master/pool.js.map +1 -0
  170. package/{lib/types → dist}/server/master/runner.d.ts +3 -8
  171. package/dist/server/master/runner.js +172 -0
  172. package/dist/server/master/runner.js.map +1 -0
  173. package/dist/server/master/server.d.ts +2 -0
  174. package/dist/server/master/server.js +114 -0
  175. package/dist/server/master/server.js.map +1 -0
  176. package/{lib/types → dist}/server/messages.d.ts +13 -14
  177. package/dist/server/messages.js +222 -0
  178. package/dist/server/messages.js.map +1 -0
  179. package/{lib/types → dist}/server/selenium/browser.d.ts +5 -3
  180. package/dist/server/selenium/browser.js +634 -0
  181. package/dist/server/selenium/browser.js.map +1 -0
  182. package/dist/server/selenium/index.d.ts +2 -0
  183. package/dist/server/selenium/index.js +19 -0
  184. package/dist/server/selenium/index.js.map +1 -0
  185. package/{lib/types → dist}/server/selenium/selenoid.d.ts +1 -1
  186. package/dist/server/selenium/selenoid.js +120 -0
  187. package/dist/server/selenium/selenoid.js.map +1 -0
  188. package/{lib/types → dist}/server/stories.d.ts +2 -7
  189. package/dist/server/stories.js +92 -0
  190. package/dist/server/stories.js.map +1 -0
  191. package/dist/server/storybook/providers/browser.d.ts +2 -0
  192. package/dist/server/storybook/providers/browser.js +60 -0
  193. package/dist/server/storybook/providers/browser.js.map +1 -0
  194. package/dist/server/storybook/providers/hybrid.d.ts +2 -0
  195. package/dist/server/storybook/providers/hybrid.js +59 -0
  196. package/dist/server/storybook/providers/hybrid.js.map +1 -0
  197. package/dist/server/telemetry.d.ts +2 -0
  198. package/dist/server/telemetry.js +196 -0
  199. package/dist/server/telemetry.js.map +1 -0
  200. package/{lib/types → dist}/server/testsFiles/parser.d.ts +2 -6
  201. package/dist/server/testsFiles/parser.js +50 -0
  202. package/dist/server/testsFiles/parser.js.map +1 -0
  203. package/dist/server/update.d.ts +2 -0
  204. package/dist/server/update.js +53 -0
  205. package/dist/server/update.js.map +1 -0
  206. package/{lib/types → dist}/server/utils.d.ts +11 -7
  207. package/dist/server/utils.js +142 -0
  208. package/dist/server/utils.js.map +1 -0
  209. package/{lib/types → dist}/server/worker/chai-image.d.ts +1 -2
  210. package/dist/server/worker/chai-image.js +113 -0
  211. package/dist/server/worker/chai-image.js.map +1 -0
  212. package/{lib/types → dist}/server/worker/helpers.d.ts +1 -1
  213. package/dist/server/worker/helpers.js +57 -0
  214. package/dist/server/worker/helpers.js.map +1 -0
  215. package/dist/server/worker/index.d.ts +1 -0
  216. package/dist/server/worker/index.js +6 -0
  217. package/dist/server/worker/index.js.map +1 -0
  218. package/dist/server/worker/reporter.js +130 -0
  219. package/dist/server/worker/reporter.js.map +1 -0
  220. package/dist/server/worker/worker.d.ts +4 -0
  221. package/dist/server/worker/worker.js +213 -0
  222. package/dist/server/worker/worker.js.map +1 -0
  223. package/dist/shared/index.d.ts +7 -0
  224. package/dist/shared/index.js +77 -0
  225. package/dist/shared/index.js.map +1 -0
  226. package/dist/shared/serializeRegExp.d.ts +9 -0
  227. package/dist/shared/serializeRegExp.js +25 -0
  228. package/dist/shared/serializeRegExp.js.map +1 -0
  229. package/{lib/types → dist}/types.d.ts +73 -103
  230. package/dist/types.js +61 -0
  231. package/dist/types.js.map +1 -0
  232. package/docs/config.md +30 -30
  233. package/docs/tests.md +3 -3
  234. package/eslint.config.mjs +62 -0
  235. package/manager/README.md +3 -0
  236. package/manager/package.json +3 -0
  237. package/package.json +137 -165
  238. package/preset/README.md +3 -0
  239. package/preset/package.json +3 -0
  240. package/preview/README.md +3 -0
  241. package/preview/package.json +3 -0
  242. package/src/cli.ts +3 -0
  243. package/src/client/addon/components/Addon.tsx +53 -0
  244. package/src/client/addon/components/Icons.tsx +28 -0
  245. package/src/client/addon/components/Panel.tsx +53 -0
  246. package/src/client/addon/components/TestSelect.tsx +48 -0
  247. package/src/client/addon/components/Tools.tsx +93 -0
  248. package/src/client/addon/controller.ts +224 -0
  249. package/src/client/addon/decorator.ts +3 -0
  250. package/src/client/addon/index.ts +2 -0
  251. package/src/client/addon/manager.ts +44 -0
  252. package/src/client/addon/preset.ts +3 -0
  253. package/src/client/addon/preview.ts +7 -0
  254. package/src/client/addon/readyForCapture.ts +9 -0
  255. package/src/client/addon/utils.tsx +24 -0
  256. package/src/client/addon/withCreevey.ts +326 -0
  257. package/src/client/shared/components/ImagesView/BlendView.tsx +71 -0
  258. package/src/client/shared/components/ImagesView/ImagesView.tsx +62 -0
  259. package/src/client/shared/components/ImagesView/SideBySideView.tsx +139 -0
  260. package/src/client/shared/components/ImagesView/SlideView.tsx +146 -0
  261. package/src/client/shared/components/ImagesView/SwapView.tsx +81 -0
  262. package/src/client/shared/components/ImagesView/common.ts +23 -0
  263. package/src/client/shared/components/ImagesView/index.ts +5 -0
  264. package/src/client/shared/components/PageFooter/PageFooter.tsx +44 -0
  265. package/src/client/shared/components/PageFooter/Paging.tsx +105 -0
  266. package/src/client/shared/components/PageHeader/ImagePreview.tsx +82 -0
  267. package/src/client/shared/components/PageHeader/PageHeader.tsx +123 -0
  268. package/src/client/shared/components/ResultsPage.tsx +135 -0
  269. package/src/client/shared/creeveyClientApi.ts +64 -0
  270. package/src/client/shared/helpers.ts +422 -0
  271. package/src/client/shared/viewMode.ts +10 -0
  272. package/src/client/web/CreeveyApp.tsx +177 -0
  273. package/src/client/web/CreeveyContext.tsx +20 -0
  274. package/src/client/web/CreeveyLoader.tsx +56 -0
  275. package/src/client/web/CreeveyView/SideBar/Checkbox.tsx +118 -0
  276. package/src/client/web/CreeveyView/SideBar/Search.tsx +140 -0
  277. package/src/client/web/CreeveyView/SideBar/SideBar.tsx +125 -0
  278. package/src/client/web/CreeveyView/SideBar/SideBarHeader.tsx +138 -0
  279. package/src/client/web/CreeveyView/SideBar/SuiteLink.tsx +118 -0
  280. package/src/client/web/CreeveyView/SideBar/TestLink.tsx +67 -0
  281. package/src/client/web/CreeveyView/SideBar/TestStatusIcon.tsx +58 -0
  282. package/src/client/web/CreeveyView/SideBar/TestsStatus.tsx +105 -0
  283. package/src/client/web/CreeveyView/SideBar/Toggle.tsx +85 -0
  284. package/src/client/web/CreeveyView/SideBar/index.ts +1 -0
  285. package/src/client/web/KeyboardEventsContext.tsx +121 -0
  286. package/src/client/web/index.html +28 -0
  287. package/src/client/web/index.tsx +63 -0
  288. package/src/creevey.ts +47 -0
  289. package/src/index.ts +4 -0
  290. package/src/server/config.ts +83 -0
  291. package/src/server/docker.ts +136 -0
  292. package/src/server/index.ts +51 -0
  293. package/{lib/esm/server/logger.js → src/server/logger.ts} +8 -7
  294. package/src/server/master/api.ts +55 -0
  295. package/src/server/master/index.ts +111 -0
  296. package/src/server/master/master.ts +47 -0
  297. package/src/server/master/pool.ts +203 -0
  298. package/src/server/master/runner.ts +189 -0
  299. package/src/server/master/server.ts +124 -0
  300. package/src/server/messages.ts +273 -0
  301. package/src/server/selenium/browser.ts +834 -0
  302. package/src/server/selenium/index.ts +2 -0
  303. package/src/server/selenium/selenoid.ts +154 -0
  304. package/src/server/stories.ts +133 -0
  305. package/src/server/storybook/providers/browser.ts +58 -0
  306. package/src/server/storybook/providers/hybrid.ts +70 -0
  307. package/src/server/telemetry.ts +212 -0
  308. package/src/server/testsFiles/parser.ts +60 -0
  309. package/src/server/update.ts +74 -0
  310. package/src/server/utils.ts +184 -0
  311. package/src/server/worker/chai-image.ts +147 -0
  312. package/src/server/worker/helpers.ts +61 -0
  313. package/src/server/worker/index.ts +1 -0
  314. package/src/server/worker/reporter.ts +170 -0
  315. package/src/server/worker/worker.ts +234 -0
  316. package/src/shared/index.ts +76 -0
  317. package/src/shared/serializeRegExp.ts +26 -0
  318. package/src/types.ts +500 -0
  319. package/types/chai.d.ts +0 -1
  320. package/types/global.d.ts +5 -0
  321. package/types/mocha.d.ts +1 -1
  322. package/webpack.config.mjs +46 -0
  323. package/lib/cjs/cli.js +0 -5
  324. package/lib/cjs/client/addon/Manager.js +0 -412
  325. package/lib/cjs/client/addon/components/Addon.js +0 -76
  326. package/lib/cjs/client/addon/components/Icons.js +0 -42
  327. package/lib/cjs/client/addon/components/Panel.js +0 -68
  328. package/lib/cjs/client/addon/components/TestSelect.js +0 -63
  329. package/lib/cjs/client/addon/components/Tools.js +0 -114
  330. package/lib/cjs/client/addon/decorator.js +0 -11
  331. package/lib/cjs/client/addon/preset.js +0 -81
  332. package/lib/cjs/client/addon/readyForCapture.js +0 -12
  333. package/lib/cjs/client/addon/register.js +0 -96
  334. package/lib/cjs/client/addon/utils.js +0 -38
  335. package/lib/cjs/client/addon/withCreevey.js +0 -531
  336. package/lib/cjs/client/shared/components/ImagesView/BlendView.js +0 -85
  337. package/lib/cjs/client/shared/components/ImagesView/ImagesView.js +0 -88
  338. package/lib/cjs/client/shared/components/ImagesView/SideBySideView.js +0 -176
  339. package/lib/cjs/client/shared/components/ImagesView/SlideView.js +0 -179
  340. package/lib/cjs/client/shared/components/ImagesView/SwapView.js +0 -110
  341. package/lib/cjs/client/shared/components/ImagesView/index.js +0 -45
  342. package/lib/cjs/client/shared/components/PageFooter/PageFooter.js +0 -46
  343. package/lib/cjs/client/shared/components/PageFooter/Paging.js +0 -98
  344. package/lib/cjs/client/shared/components/PageHeader/ImagePreview.js +0 -78
  345. package/lib/cjs/client/shared/components/PageHeader/PageHeader.js +0 -144
  346. package/lib/cjs/client/shared/components/ResultsPage.js +0 -173
  347. package/lib/cjs/client/shared/creeveyClientApi.js +0 -103
  348. package/lib/cjs/client/shared/helpers.js +0 -482
  349. package/lib/cjs/client/shared/viewMode.js +0 -17
  350. package/lib/cjs/client/web/1.js +0 -13
  351. package/lib/cjs/client/web/2.js +0 -1
  352. package/lib/cjs/client/web/main.js +0 -38
  353. package/lib/cjs/creevey.js +0 -71
  354. package/lib/cjs/index.js +0 -62
  355. package/lib/cjs/server/config.js +0 -96
  356. package/lib/cjs/server/docker.js +0 -150
  357. package/lib/cjs/server/extract.js +0 -50
  358. package/lib/cjs/server/index.js +0 -83
  359. package/lib/cjs/server/loaders/babel/creevey-plugin.js +0 -88
  360. package/lib/cjs/server/loaders/babel/helpers.js +0 -479
  361. package/lib/cjs/server/loaders/babel/register.js +0 -126
  362. package/lib/cjs/server/loaders/hooks/mdx.js +0 -30
  363. package/lib/cjs/server/loaders/hooks/svelte.js +0 -65
  364. package/lib/cjs/server/loaders/webpack/compile.js +0 -286
  365. package/lib/cjs/server/loaders/webpack/creevey-loader.js +0 -174
  366. package/lib/cjs/server/loaders/webpack/dummy-hmr.js +0 -44
  367. package/lib/cjs/server/loaders/webpack/mdx-loader.js +0 -72
  368. package/lib/cjs/server/loaders/webpack/start.js +0 -41
  369. package/lib/cjs/server/logger.js +0 -47
  370. package/lib/cjs/server/master/api.js +0 -71
  371. package/lib/cjs/server/master/index.js +0 -146
  372. package/lib/cjs/server/master/master.js +0 -57
  373. package/lib/cjs/server/master/pool.js +0 -206
  374. package/lib/cjs/server/master/runner.js +0 -294
  375. package/lib/cjs/server/master/server.js +0 -129
  376. package/lib/cjs/server/messages.js +0 -266
  377. package/lib/cjs/server/selenium/browser.js +0 -680
  378. package/lib/cjs/server/selenium/index.js +0 -31
  379. package/lib/cjs/server/selenium/selenoid.js +0 -174
  380. package/lib/cjs/server/stories.js +0 -170
  381. package/lib/cjs/server/storybook/entry.js +0 -68
  382. package/lib/cjs/server/storybook/helpers.js +0 -165
  383. package/lib/cjs/server/storybook/providers/browser.js +0 -78
  384. package/lib/cjs/server/storybook/providers/hybrid.js +0 -84
  385. package/lib/cjs/server/storybook/providers/nodejs.js +0 -239
  386. package/lib/cjs/server/testsFiles/parser.js +0 -72
  387. package/lib/cjs/server/testsFiles/register.js +0 -48
  388. package/lib/cjs/server/update.js +0 -83
  389. package/lib/cjs/server/utils.js +0 -185
  390. package/lib/cjs/server/worker/chai-image.js +0 -142
  391. package/lib/cjs/server/worker/helpers.js +0 -69
  392. package/lib/cjs/server/worker/index.js +0 -15
  393. package/lib/cjs/server/worker/reporter.js +0 -120
  394. package/lib/cjs/server/worker/worker.js +0 -278
  395. package/lib/cjs/shared.js +0 -124
  396. package/lib/cjs/types.js +0 -74
  397. package/lib/esm/cli.js +0 -4
  398. package/lib/esm/client/addon/Manager.js +0 -396
  399. package/lib/esm/client/addon/components/Addon.js +0 -58
  400. package/lib/esm/client/addon/components/Icons.js +0 -27
  401. package/lib/esm/client/addon/components/Panel.js +0 -49
  402. package/lib/esm/client/addon/components/TestSelect.js +0 -49
  403. package/lib/esm/client/addon/components/Tools.js +0 -91
  404. package/lib/esm/client/addon/decorator.js +0 -2
  405. package/lib/esm/client/addon/preset.js +0 -56
  406. package/lib/esm/client/addon/readyForCapture.js +0 -5
  407. package/lib/esm/client/addon/register.js +0 -75
  408. package/lib/esm/client/addon/utils.js +0 -31
  409. package/lib/esm/client/addon/withCreevey.js +0 -509
  410. package/lib/esm/client/shared/components/ImagesView/BlendView.js +0 -63
  411. package/lib/esm/client/shared/components/ImagesView/ImagesView.js +0 -65
  412. package/lib/esm/client/shared/components/ImagesView/SideBySideView.js +0 -151
  413. package/lib/esm/client/shared/components/ImagesView/SlideView.js +0 -154
  414. package/lib/esm/client/shared/components/ImagesView/SwapView.js +0 -88
  415. package/lib/esm/client/shared/components/ImagesView/index.js +0 -5
  416. package/lib/esm/client/shared/components/PageFooter/PageFooter.js +0 -32
  417. package/lib/esm/client/shared/components/PageFooter/Paging.js +0 -84
  418. package/lib/esm/client/shared/components/PageHeader/ImagePreview.js +0 -64
  419. package/lib/esm/client/shared/components/PageHeader/PageHeader.js +0 -120
  420. package/lib/esm/client/shared/components/ResultsPage.js +0 -143
  421. package/lib/esm/client/shared/creeveyClientApi.js +0 -94
  422. package/lib/esm/client/shared/helpers.js +0 -424
  423. package/lib/esm/client/shared/viewMode.js +0 -6
  424. package/lib/esm/creevey.js +0 -56
  425. package/lib/esm/index.js +0 -7
  426. package/lib/esm/server/config.js +0 -73
  427. package/lib/esm/server/docker.js +0 -123
  428. package/lib/esm/server/extract.js +0 -34
  429. package/lib/esm/server/index.js +0 -64
  430. package/lib/esm/server/loaders/babel/creevey-plugin.js +0 -74
  431. package/lib/esm/server/loaders/babel/helpers.js +0 -462
  432. package/lib/esm/server/loaders/babel/register.js +0 -105
  433. package/lib/esm/server/loaders/hooks/mdx.js +0 -15
  434. package/lib/esm/server/loaders/hooks/svelte.js +0 -49
  435. package/lib/esm/server/loaders/webpack/compile.js +0 -263
  436. package/lib/esm/server/loaders/webpack/creevey-loader.js +0 -153
  437. package/lib/esm/server/loaders/webpack/dummy-hmr.js +0 -36
  438. package/lib/esm/server/loaders/webpack/mdx-loader.js +0 -58
  439. package/lib/esm/server/loaders/webpack/start.js +0 -27
  440. package/lib/esm/server/master/api.js +0 -60
  441. package/lib/esm/server/master/index.js +0 -125
  442. package/lib/esm/server/master/master.js +0 -38
  443. package/lib/esm/server/master/pool.js +0 -187
  444. package/lib/esm/server/master/runner.js +0 -272
  445. package/lib/esm/server/master/server.js +0 -105
  446. package/lib/esm/server/messages.js +0 -234
  447. package/lib/esm/server/selenium/browser.js +0 -647
  448. package/lib/esm/server/selenium/index.js +0 -2
  449. package/lib/esm/server/selenium/selenoid.js +0 -151
  450. package/lib/esm/server/stories.js +0 -151
  451. package/lib/esm/server/storybook/entry.js +0 -44
  452. package/lib/esm/server/storybook/helpers.js +0 -106
  453. package/lib/esm/server/storybook/providers/browser.js +0 -61
  454. package/lib/esm/server/storybook/providers/hybrid.js +0 -64
  455. package/lib/esm/server/storybook/providers/nodejs.js +0 -217
  456. package/lib/esm/server/testsFiles/parser.js +0 -50
  457. package/lib/esm/server/testsFiles/register.js +0 -35
  458. package/lib/esm/server/update.js +0 -65
  459. package/lib/esm/server/utils.js +0 -146
  460. package/lib/esm/server/worker/chai-image.js +0 -130
  461. package/lib/esm/server/worker/helpers.js +0 -60
  462. package/lib/esm/server/worker/index.js +0 -1
  463. package/lib/esm/server/worker/reporter.js +0 -98
  464. package/lib/esm/server/worker/worker.js +0 -248
  465. package/lib/esm/shared.js +0 -93
  466. package/lib/esm/types.js +0 -43
  467. package/lib/types/cli.d.ts +0 -1
  468. package/lib/types/client/addon/components/Addon.d.ts +0 -8
  469. package/lib/types/client/addon/components/Tools.d.ts +0 -6
  470. package/lib/types/client/addon/decorator.d.ts +0 -1
  471. package/lib/types/client/addon/preset.d.ts +0 -24
  472. package/lib/types/client/addon/register.d.ts +0 -3
  473. package/lib/types/client/shared/components/ImagesView/BlendView.d.ts +0 -3
  474. package/lib/types/client/shared/components/ImagesView/SideBySideView.d.ts +0 -3
  475. package/lib/types/client/shared/components/ImagesView/SlideView.d.ts +0 -3
  476. package/lib/types/client/shared/components/ImagesView/SwapView.d.ts +0 -3
  477. package/lib/types/client/shared/components/ImagesView/index.d.ts +0 -5
  478. package/lib/types/client/web/CreeveyLoader.d.ts +0 -3
  479. package/lib/types/client/web/CreeveyView/SideBar/SuiteLink.d.ts +0 -33
  480. package/lib/types/client/web/CreeveyView/SideBar/TestsStatus.d.ts +0 -9
  481. package/lib/types/client/web/CreeveyView/SideBar/index.d.ts +0 -1
  482. package/lib/types/index.d.ts +0 -3
  483. package/lib/types/server/extract.d.ts +0 -2
  484. package/lib/types/server/loaders/babel/creevey-plugin.d.ts +0 -1
  485. package/lib/types/server/loaders/babel/helpers.d.ts +0 -19
  486. package/lib/types/server/loaders/babel/register.d.ts +0 -5
  487. package/lib/types/server/loaders/hooks/mdx.d.ts +0 -1
  488. package/lib/types/server/loaders/hooks/svelte.d.ts +0 -1
  489. package/lib/types/server/loaders/webpack/compile.d.ts +0 -2
  490. package/lib/types/server/loaders/webpack/creevey-loader.d.ts +0 -2
  491. package/lib/types/server/loaders/webpack/dummy-hmr.d.ts +0 -10
  492. package/lib/types/server/loaders/webpack/mdx-loader.d.ts +0 -6
  493. package/lib/types/server/loaders/webpack/start.d.ts +0 -1
  494. package/lib/types/server/logger.d.ts +0 -6
  495. package/lib/types/server/master/index.d.ts +0 -3
  496. package/lib/types/server/master/server.d.ts +0 -2
  497. package/lib/types/server/selenium/index.d.ts +0 -2
  498. package/lib/types/server/storybook/entry.d.ts +0 -18
  499. package/lib/types/server/storybook/helpers.d.ts +0 -24
  500. package/lib/types/server/storybook/providers/browser.d.ts +0 -4
  501. package/lib/types/server/storybook/providers/hybrid.d.ts +0 -4
  502. package/lib/types/server/storybook/providers/nodejs.d.ts +0 -9
  503. package/lib/types/server/testsFiles/register.d.ts +0 -2
  504. package/lib/types/server/update.d.ts +0 -2
  505. package/lib/types/server/worker/index.d.ts +0 -1
  506. package/lib/types/server/worker/worker.d.ts +0 -4
  507. package/lib/types/shared.d.ts +0 -16
  508. package/preset.js +0 -9
  509. package/storybook-static/stories.json +0 -21
  510. package/types/babel__register.d.ts +0 -1
  511. package/types/event-source-polyfill.d.ts +0 -6
  512. package/types/mdx.d.ts +0 -6
  513. /package/{lib/types → dist}/client/addon/components/Icons.d.ts +0 -0
  514. /package/{lib/types/creevey.d.ts → dist/client/addon/manager.d.ts} +0 -0
  515. /package/{lib/types → dist}/client/addon/readyForCapture.d.ts +0 -0
  516. /package/{lib/types → dist}/client/web/CreeveyView/SideBar/Search.d.ts +0 -0
  517. /package/{lib/types → dist}/client/web/CreeveyView/SideBar/Toggle.d.ts +0 -0
  518. /package/{lib/types → dist}/server/worker/reporter.d.ts +0 -0
@@ -1,60 +0,0 @@
1
- import { Suite, Test } from 'mocha';
2
- import { isDefined } from '../../types';
3
- import { loadTestsFromStories } from '../stories';
4
-
5
- function findOrCreateSuite(name, parent) {
6
- const suite = parent.suites.find(({
7
- title
8
- }) => title == name) || new Suite(name, parent.ctx);
9
-
10
- if (!suite.parent) {
11
- suite.parent = parent;
12
- parent.addSuite(suite);
13
- }
14
-
15
- return suite;
16
- }
17
-
18
- function createTest(name, fn, skip = false) {
19
- const test = new Test(name, skip ? undefined : fn);
20
- test.pending = Boolean(skip); // NOTE Can't define skip reason in mocha https://github.com/mochajs/mocha/issues/2026
21
-
22
- test.skipReason = skip;
23
- return test;
24
- }
25
-
26
- function addTest(rootSuite, test) {
27
- const [testName, ...suitePath] = [...test.storyPath, test.testName].reverse().filter(isDefined);
28
- const suite = suitePath.reduceRight((subSuite, suiteName) => findOrCreateSuite(suiteName, subSuite), rootSuite);
29
- const mochaTest = createTest(testName, test.fn, test.skip);
30
- suite.addTest(mochaTest);
31
- mochaTest.ctx = Object.setPrototypeOf({
32
- id: test.id,
33
- story: test.story
34
- }, suite.ctx);
35
- return mochaTest;
36
- }
37
-
38
- function removeTestOrSuite(testOrSuite) {
39
- const {
40
- parent
41
- } = testOrSuite;
42
- if (!parent) return;
43
- if (testOrSuite instanceof Test) parent.tests = parent.tests.filter(test => test != testOrSuite);
44
- if (testOrSuite instanceof Suite) parent.suites = parent.suites.filter(suite => suite != testOrSuite);
45
- if (parent.tests.length == 0 && parent.suites.length == 0) removeTestOrSuite(parent);
46
- }
47
-
48
- export async function addTestsFromStories(rootSuite, config, {
49
- browser,
50
- ...options
51
- }) {
52
- const mochaTestsById = new Map();
53
- const tests = await loadTestsFromStories([browser], listener => config.storiesProvider(config, options, listener), testsDiff => Object.entries(testsDiff).forEach(([id, newTest]) => {
54
- const oldTest = mochaTestsById.get(id);
55
- mochaTestsById.delete(id);
56
- if (oldTest) removeTestOrSuite(oldTest);
57
- if (newTest) mochaTestsById.set(id, addTest(rootSuite, newTest));
58
- }));
59
- Object.values(tests).filter(isDefined).forEach(test => mochaTestsById.set(test.id, addTest(rootSuite, test)));
60
- }
@@ -1 +0,0 @@
1
- export { default } from './worker';
@@ -1,98 +0,0 @@
1
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
3
- import chalk from 'chalk';
4
- import { reporters } from 'mocha';
5
- import prefix from 'loglevel-plugin-prefix';
6
- import { isDefined, isImageError } from '../../types';
7
- import { getLogger } from '../logger';
8
- const testLevels = {
9
- INFO: chalk.green('PASS'),
10
- WARN: chalk.yellow('START'),
11
- ERROR: chalk.red('FAIL')
12
- };
13
- export class CreeveyReporter extends reporters.Base {
14
- constructor(runner, options) {
15
- super(runner);
16
- const {
17
- sessionId,
18
- topLevelSuite
19
- } = options.reporterOptions;
20
- const testLogger = getLogger(topLevelSuite);
21
- prefix.apply(testLogger, {
22
- format(level) {
23
- return `${testLevels[level]} => (${topLevelSuite}:${chalk.gray(sessionId)})`;
24
- }
25
-
26
- });
27
- runner.on('test', test => testLogger.warn(chalk.cyan(test.titlePath().join('/'))));
28
- runner.on('pass', test => testLogger.info(chalk.cyan(test.titlePath().join('/'))));
29
- runner.on('fail', (test, error) => testLogger.error(chalk.cyan(test.titlePath().join('/')), '\n ', getErrors(error, (error, imageName) => `${chalk.bold(imageName !== null && imageName !== void 0 ? imageName : topLevelSuite)}:${error}`, error => {
30
- var _error$stack;
31
-
32
- return `${(_error$stack = error.stack) !== null && _error$stack !== void 0 ? _error$stack : error.message}`;
33
- }).join('\n ')));
34
- }
35
-
36
- }
37
- export class TeamcityReporter extends reporters.Base {
38
- constructor(runner, options) {
39
- super(runner);
40
-
41
- _defineProperty(this, "escape", str => {
42
- if (!str) return '';
43
- return str.toString() // eslint-disable-next-line no-control-regex
44
- .replace(/\x1B.*?m/g, '').replace(/\|/g, '||').replace(/\n/g, '|n').replace(/\r/g, '|r').replace(/\[/g, '|[').replace(/\]/g, '|]').replace(/\u0085/g, '|x').replace(/\u2028/g, '|l').replace(/\u2029/g, '|p').replace(/'/g, "|'");
45
- });
46
-
47
- const topLevelSuite = this.escape(options.reporterOptions.topLevelSuite);
48
- const reporterOptions = options.reporterOptions;
49
- runner.on('suite', suite => suite.root ? console.log(`##teamcity[testSuiteStarted name='${topLevelSuite}' flowId='${process.pid}']`) : console.log(`##teamcity[testSuiteStarted name='${this.escape(suite.title)}' flowId='${process.pid}']`));
50
- runner.on('test', test => console.log(`##teamcity[testStarted name='${this.escape(test.title)}' flowId='${process.pid}']`));
51
- runner.on('fail', (test, error) => {
52
- var _error$stack2;
53
-
54
- Object.entries(reporterOptions.images).forEach(([name, image]) => {
55
- if (!image) return;
56
- const filePath = test.titlePath().concat(name == topLevelSuite ? [] : [topLevelSuite]).map(this.escape).join('/'); // eslint-disable-next-line @typescript-eslint/no-unused-vars
57
-
58
- const {
59
- error,
60
- ...rest
61
- } = image;
62
- Object.values(rest).filter(isDefined).forEach(fileName => {
63
- console.log(`##teamcity[publishArtifacts '${reporterOptions.reportDir}/${filePath}/${fileName} => report/${filePath}']`);
64
- console.log(`##teamcity[testMetadata testName='${this.escape(test.title)}' type='image' value='report/${filePath}/${fileName}' flowId='${process.pid}']`);
65
- });
66
- }); // Output failed test as passed due TC don't support retry mechanic
67
- // https://teamcity-support.jetbrains.com/hc/en-us/community/posts/207216829-Count-test-as-successful-if-at-least-one-try-is-successful?page=1#community_comment_207394125
68
-
69
- reporterOptions.willRetry ? console.log(`##teamcity[testFinished name='${this.escape(test.title)}' flowId='${process.pid}']`) : console.log(`##teamcity[testFailed name='${this.escape(test.title)}' message='${this.escape(error.message)}' details='${this.escape((_error$stack2 = error.stack) !== null && _error$stack2 !== void 0 ? _error$stack2 : '')}' flowId='${process.pid}']`);
70
- });
71
- runner.on('pending', test => console.log(`##teamcity[testIgnored name='${this.escape(test.title)}' message='${this.escape(typeof test.skipReason == 'boolean' ? test.title : test.skipReason)}' flowId='${process.pid}']`));
72
- runner.on('test end', test => console.log(`##teamcity[testFinished name='${this.escape(test.title)}' flowId='${process.pid}']`));
73
- runner.on('suite end', suite => suite.root || console.log(`##teamcity[testSuiteFinished name='${this.escape(suite.title)}' flowId='${process.pid}']`));
74
- runner.on('end', () => console.log(`##teamcity[testSuiteFinished name='${topLevelSuite}' flowId='${process.pid}']`));
75
- }
76
-
77
- }
78
-
79
- function getErrors(error, imageErrorToString, errorToString) {
80
- const errors = [];
81
-
82
- if (!(error instanceof Error)) {
83
- errors.push(error);
84
- } else if (!isImageError(error)) {
85
- errors.push(errorToString(error));
86
- } else if (typeof error.images == 'string') {
87
- errors.push(imageErrorToString(error.images));
88
- } else {
89
- const imageErrors = error.images;
90
- Object.keys(imageErrors).forEach(imageName => {
91
- var _imageErrors$imageNam;
92
-
93
- errors.push(imageErrorToString((_imageErrors$imageNam = imageErrors[imageName]) !== null && _imageErrors$imageNam !== void 0 ? _imageErrors$imageNam : '', imageName));
94
- });
95
- }
96
-
97
- return errors;
98
- }
@@ -1,248 +0,0 @@
1
- import { promisify } from 'util';
2
- import fs from 'fs';
3
- import path from 'path';
4
- import chai from 'chai';
5
- import chalk from 'chalk';
6
- import Mocha from 'mocha';
7
- import { Key, until } from 'selenium-webdriver';
8
- import { isImageError } from '../../types';
9
- import { subscribeOn, emitTestMessage, emitWorkerMessage } from '../messages';
10
- import chaiImage from './chai-image';
11
- import { closeBrowser, getBrowser, switchStory } from '../selenium';
12
- import { CreeveyReporter, TeamcityReporter } from './reporter';
13
- import { addTestsFromStories } from './helpers';
14
- import { logger } from '../logger';
15
- const statAsync = promisify(fs.stat);
16
- const readdirAsync = promisify(fs.readdir);
17
- const readFileAsync = promisify(fs.readFile);
18
- const writeFileAsync = promisify(fs.writeFile);
19
- const mkdirAsync = promisify(fs.mkdir);
20
-
21
- async function getStat(filePath) {
22
- try {
23
- return await statAsync(filePath);
24
- } catch (error) {
25
- if (typeof error == 'object' && error && error.code === 'ENOENT') {
26
- return null;
27
- }
28
-
29
- throw error;
30
- }
31
- }
32
-
33
- async function getLastImageNumber(imageDir, imageName) {
34
- const actualImagesRegexp = new RegExp(`${imageName}-actual-(\\d+)\\.png`);
35
-
36
- try {
37
- var _await$readdirAsync$m;
38
-
39
- return (_await$readdirAsync$m = (await readdirAsync(imageDir)).map(filename => filename.replace(actualImagesRegexp, '$1')).map(Number).filter(x => !isNaN(x)).sort((a, b) => b - a)[0]) !== null && _await$readdirAsync$m !== void 0 ? _await$readdirAsync$m : 0;
40
- } catch (_error) {
41
- return 0;
42
- }
43
- } // FIXME browser options hotfix
44
-
45
-
46
- export default async function worker(config, options) {
47
- var _await$browser$getSes;
48
-
49
- let retries = 0;
50
- let images = {};
51
- let error = undefined;
52
- const screenshots = [];
53
- const testScope = [];
54
-
55
- function runHandler(failures) {
56
- if (failures > 0 && (error || Object.values(images).some(image => (image === null || image === void 0 ? void 0 : image.error) != null))) {
57
- var _error2;
58
-
59
- const isTimeout = hasTimeout(error) || Object.values(images).some(image => hasTimeout(image === null || image === void 0 ? void 0 : image.error));
60
- const payload = {
61
- status: 'failed',
62
- images,
63
- error
64
- };
65
- isTimeout ? emitWorkerMessage({
66
- type: 'error',
67
- payload: {
68
- error: (_error2 = error) !== null && _error2 !== void 0 ? _error2 : 'Unknown error'
69
- }
70
- }) : emitTestMessage({
71
- type: 'end',
72
- payload
73
- });
74
- } else {
75
- emitTestMessage({
76
- type: 'end',
77
- payload: {
78
- status: 'success',
79
- images
80
- }
81
- });
82
- }
83
- }
84
-
85
- async function saveImages(imageDir, images) {
86
- await mkdirAsync(imageDir, {
87
- recursive: true
88
- });
89
-
90
- for (const {
91
- name,
92
- data
93
- } of images) {
94
- await writeFileAsync(path.join(imageDir, name), data);
95
- }
96
- }
97
-
98
- async function getExpected(assertImageName) {
99
- var _images$imageName;
100
-
101
- // context => [kind, story, test, browser]
102
- // rootSuite -> kindSuite -> storyTest -> [browsers.png]
103
- // rootSuite -> kindSuite -> storySuite -> test -> [browsers.png]
104
- const testPath = [...testScope];
105
- const imageName = assertImageName !== null && assertImageName !== void 0 ? assertImageName : testPath.pop();
106
- const imagesMeta = [];
107
- const reportImageDir = path.join(config.reportDir, ...testPath);
108
- const imageNumber = (await getLastImageNumber(reportImageDir, imageName)) + 1;
109
- const actualImageName = `${imageName}-actual-${imageNumber}.png`;
110
- const image = images[imageName] = (_images$imageName = images[imageName]) !== null && _images$imageName !== void 0 ? _images$imageName : {
111
- actual: actualImageName
112
- };
113
-
114
- const onCompare = async (actual, expect, diff) => {
115
- imagesMeta.push({
116
- name: image.actual,
117
- data: actual
118
- });
119
-
120
- if (diff && expect) {
121
- image.expect = `${imageName}-expect-${imageNumber}.png`;
122
- image.diff = `${imageName}-diff-${imageNumber}.png`;
123
- imagesMeta.push({
124
- name: image.expect,
125
- data: expect
126
- });
127
- imagesMeta.push({
128
- name: image.diff,
129
- data: diff
130
- });
131
- }
132
-
133
- if (options.saveReport) {
134
- await saveImages(reportImageDir, imagesMeta);
135
- }
136
- };
137
-
138
- const expectImageDir = path.join(config.screenDir, ...testPath);
139
- const expectImageStat = await getStat(path.join(expectImageDir, `${imageName}.png`));
140
- if (!expectImageStat) return {
141
- expected: null,
142
- onCompare
143
- };
144
- const expected = await readFileAsync(path.join(expectImageDir, `${imageName}.png`));
145
- return {
146
- expected,
147
- onCompare
148
- };
149
- }
150
-
151
- const mochaOptions = {
152
- timeout: 30000,
153
- reporter: process.env.TEAMCITY_VERSION ? TeamcityReporter : options.reporter || CreeveyReporter,
154
- reporterOptions: {
155
- reportDir: config.reportDir,
156
- topLevelSuite: options.browser,
157
-
158
- get willRetry() {
159
- return retries < config.maxRetries;
160
- },
161
-
162
- get images() {
163
- return images;
164
- },
165
-
166
- get sessionId() {
167
- return sessionId;
168
- }
169
-
170
- }
171
- };
172
- const mocha = new Mocha(mochaOptions); // @ts-expect-error: @types/mocha has out-dated types
173
- // eslint-disable-next-line @typescript-eslint/no-unsafe-call
174
-
175
- mocha.cleanReferencesAfterRun(false);
176
- chai.use(chaiImage(getExpected, config.diffOptions));
177
- if ((await getBrowser(config, options.browser)) == null) return;
178
- await addTestsFromStories(mocha.suite, config, {
179
- browser: options.browser,
180
- watch: options.ui,
181
- debug: options.debug,
182
- port: options.port
183
- });
184
-
185
- try {
186
- var _await$getBrowser;
187
-
188
- await ((_await$getBrowser = await getBrowser(config, options.browser)) === null || _await$getBrowser === void 0 ? void 0 : _await$getBrowser.getCurrentUrl());
189
- } catch (_) {
190
- await closeBrowser();
191
- }
192
-
193
- const browser = await getBrowser(config, options.browser);
194
- const sessionId = (_await$browser$getSes = await (browser === null || browser === void 0 ? void 0 : browser.getSession())) === null || _await$browser$getSes === void 0 ? void 0 : _await$browser$getSes.getId();
195
- if (browser == null) return;
196
- const interval = setInterval(() => void browser.getCurrentUrl().then(url => {
197
- if (options.debug) logger.debug(`${options.browser}:${chalk.gray(sessionId)}`, 'current url', chalk.magenta(url));
198
- }), 10 * 1000);
199
- subscribeOn('shutdown', () => clearInterval(interval));
200
- mocha.suite.beforeAll(function () {
201
- this.config = config;
202
- this.browser = browser;
203
- this.until = until;
204
- this.keys = Key;
205
- this.expect = chai.expect;
206
- this.browserName = options.browser;
207
- this.testScope = testScope;
208
- this.screenshots = screenshots;
209
- });
210
- mocha.suite.beforeEach(switchStory);
211
- subscribeOn('test', message => {
212
- if (message.type != 'start') return;
213
- const test = message.payload;
214
- const testPath = test.path.join(' ').replace(/[|\\{}()[\]^$+*?.-]/g, '\\$&');
215
- images = {};
216
- error = undefined;
217
- retries = test.retries;
218
- mocha.grep(new RegExp(`^${testPath}$`));
219
- const runner = mocha.run(runHandler); // TODO How handle browser corruption?
220
-
221
- runner.on('fail', (_test, reason) => {
222
- if (!(reason instanceof Error)) {
223
- error = reason;
224
- } else if (!isImageError(reason)) {
225
- var _reason$stack;
226
-
227
- error = (_reason$stack = reason.stack) !== null && _reason$stack !== void 0 ? _reason$stack : reason.message;
228
- } else if (typeof reason.images == 'string') {
229
- const image = images[testScope.slice(-1)[0]];
230
- if (image) image.error = reason.images;
231
- } else {
232
- const imageErrors = reason.images;
233
- Object.keys(imageErrors).forEach(imageName => {
234
- const image = images[imageName];
235
- if (image) image.error = imageErrors[imageName];
236
- });
237
- }
238
- });
239
- });
240
- logger.info(`${options.browser}:${chalk.gray(sessionId)} is ready`);
241
- emitWorkerMessage({
242
- type: 'ready'
243
- });
244
- }
245
-
246
- function hasTimeout(str) {
247
- return str != null && str.toLowerCase().includes('timeout');
248
- }
package/lib/esm/shared.js DELETED
@@ -1,93 +0,0 @@
1
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
2
-
3
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
4
-
5
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
-
7
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
8
-
9
- import { mapValues, mergeWith, cloneDeepWith } from 'lodash';
10
- // NOTE: Copy-paste from storybook/api
11
- export var combineParameters = function combineParameters() {
12
- for (var _len = arguments.length, parameterSets = new Array(_len), _key = 0; _key < _len; _key++) {
13
- parameterSets[_key] = arguments[_key];
14
- }
15
-
16
- return (// eslint-disable-next-line @typescript-eslint/no-unsafe-return
17
- mergeWith.apply(void 0, [{}].concat(parameterSets, [function (_, srcValue) {
18
- // Treat arrays as scalars:
19
- if (Array.isArray(srcValue)) return srcValue;
20
- return undefined;
21
- }]))
22
- );
23
- }; // NOTE: Copy-paste from storybook/api
24
-
25
- export var denormalizeStoryParameters = function denormalizeStoryParameters(_ref) {
26
- var globalParameters = _ref.globalParameters,
27
- kindParameters = _ref.kindParameters,
28
- stories = _ref.stories;
29
- return mapValues(stories, function (storyData) {
30
- var _globalParameters$cre, _kindParameters$story, _kindParameters$story2;
31
-
32
- storyData.parameters.creevey = combineParameters((_globalParameters$cre = globalParameters.creevey) !== null && _globalParameters$cre !== void 0 ? _globalParameters$cre : {}, (_kindParameters$story = (_kindParameters$story2 = kindParameters[storyData.kind]) === null || _kindParameters$story2 === void 0 ? void 0 : _kindParameters$story2.creevey) !== null && _kindParameters$story !== void 0 ? _kindParameters$story : {}, storyData.parameters.creevey);
33
- return storyData;
34
- });
35
- };
36
- export var isSerializedRegExp = function isSerializedRegExp(exp) {
37
- return _typeof(exp) === 'object' && exp !== null && Reflect.get(exp, '__regexp') === true;
38
- };
39
- export var serializeRegExp = function serializeRegExp(exp) {
40
- var source = exp.source,
41
- flags = exp.flags;
42
- return {
43
- __regexp: true,
44
- source: source,
45
- flags: flags
46
- };
47
- };
48
- export var deserializeRegExp = function deserializeRegExp(_ref2) {
49
- var source = _ref2.source,
50
- flags = _ref2.flags;
51
- return new RegExp(source, flags);
52
- };
53
- export var serializeRawStories = function serializeRawStories(stories) {
54
- return mapValues(stories, function (storyData) {
55
- var creevey = storyData.parameters.creevey;
56
-
57
- if (creevey !== null && creevey !== void 0 && creevey.skip) {
58
- creevey.skip = cloneDeepWith(creevey.skip, function (value) {
59
- if (value instanceof RegExp) {
60
- return serializeRegExp(value);
61
- }
62
-
63
- return undefined;
64
- });
65
- }
66
-
67
- return storyData;
68
- });
69
- };
70
- export var deserializeRawStories = function deserializeRawStories(stories) {
71
- return mapValues(stories, deserializeStory);
72
- };
73
- export var deserializeStory = function deserializeStory(story) {
74
- var creevey = story.parameters.creevey;
75
-
76
- if (creevey !== null && creevey !== void 0 && creevey.skip) {
77
- return _objectSpread(_objectSpread({}, story), {}, {
78
- parameters: _objectSpread(_objectSpread({}, story.parameters), {}, {
79
- creevey: _objectSpread(_objectSpread({}, creevey), {}, {
80
- skip: cloneDeepWith(creevey.skip, function (value) {
81
- if (isSerializedRegExp(value)) {
82
- return deserializeRegExp(value);
83
- }
84
-
85
- return undefined;
86
- })
87
- })
88
- })
89
- });
90
- }
91
-
92
- return story;
93
- };
package/lib/esm/types.js DELETED
@@ -1,43 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
-
3
- /* eslint-enable @typescript-eslint/no-explicit-any */
4
- export function noop() {
5
- /* noop */
6
- }
7
- export function isDefined(value) {
8
- return value !== null && value !== undefined;
9
- }
10
- export function isTest(x) {
11
- return isDefined(x) && 'id' in x && 'storyId' in x && typeof x.id == 'string' && typeof x.storyId == 'string';
12
- }
13
- export function isObject(x) {
14
- return typeof x == 'object' && x != null;
15
- }
16
- export function isString(x) {
17
- return typeof x == 'string';
18
- } // eslint-disable-next-line @typescript-eslint/no-explicit-any
19
-
20
- export function isFunction(x) {
21
- return typeof x == 'function';
22
- }
23
- export function isImageError(error) {
24
- return error instanceof Error && 'images' in error;
25
- }
26
- export function isProcessMessage(message) {
27
- return isObject(message) && 'scope' in message;
28
- }
29
- export function isWorkerMessage(message) {
30
- return isProcessMessage(message) && message.scope == 'worker';
31
- }
32
- export function isStoriesMessage(message) {
33
- return isProcessMessage(message) && message.scope == 'stories';
34
- }
35
- export function isTestMessage(message) {
36
- return isProcessMessage(message) && message.scope == 'test';
37
- }
38
- export function isWebpackMessage(message) {
39
- return isProcessMessage(message) && message.scope == 'webpack';
40
- }
41
- export function isDockerMessage(message) {
42
- return isProcessMessage(message) && message.scope == 'docker';
43
- }
@@ -1 +0,0 @@
1
- #!/usr/bin/env node
@@ -1,8 +0,0 @@
1
- import { CreeveyManager } from '../Manager';
2
- interface AddonProps {
3
- active?: boolean;
4
- browser: string;
5
- manager: CreeveyManager;
6
- }
7
- export declare const Addon: ({ active, browser, manager }: AddonProps) => JSX.Element | null;
8
- export {};
@@ -1,6 +0,0 @@
1
- import { CreeveyManager } from '../Manager';
2
- interface ToolsProps {
3
- manager: CreeveyManager;
4
- }
5
- export declare const Tools: ({ manager }: ToolsProps) => JSX.Element | null;
6
- export {};
@@ -1 +0,0 @@
1
- export declare const decorators: import("@storybook/addons").MakeDecoratorResult[];
@@ -1,24 +0,0 @@
1
- /// <reference types="webpack-dev-server" />
2
- import { Configuration } from 'webpack';
3
- export declare function config(entry?: string[]): string[];
4
- export declare function managerEntries(entry?: string[]): string[];
5
- declare global {
6
- const __CREEVEY_SERVER_HOST__: string;
7
- const __CREEVEY_SERVER_PORT__: number;
8
- const __CREEVEY_CLIENT_PORT__: number | null;
9
- }
10
- export interface CreeveyAddonOptions {
11
- creeveyConfigPath?: string;
12
- creeveyPreExtract?: string;
13
- creeveyHost?: string;
14
- creeveyPort?: number;
15
- clientPort?: number;
16
- configType: string;
17
- configDir: string;
18
- outputDir: string;
19
- skipExtract?: boolean;
20
- presets?: {
21
- apply: <T>(preset: string) => Promise<T | undefined>;
22
- };
23
- }
24
- export declare function managerWebpack(config: Configuration, options: CreeveyAddonOptions): Promise<Configuration>;
@@ -1,3 +0,0 @@
1
- import { API } from '@storybook/api';
2
- export declare const ADDON_ID = "creevey";
3
- export declare function registerCreeveyPanels(storybookApi: API): Promise<void>;
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- import { ViewPropsWithTheme } from './ImagesView';
3
- export declare const BlendView: React.SFC<import("emotion-theming/types/helper").AddOptionalTo<ViewPropsWithTheme, "theme">>;
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- import { ViewPropsWithTheme } from './ImagesView';
3
- export declare const SideBySideView: React.SFC<import("emotion-theming/types/helper").AddOptionalTo<ViewPropsWithTheme, "theme">>;
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- import { ViewPropsWithTheme } from './ImagesView';
3
- export declare const SlideView: React.SFC<import("emotion-theming/types/helper").AddOptionalTo<ViewPropsWithTheme, "theme">>;
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- import { ViewPropsWithTheme } from './ImagesView';
3
- export declare const SwapView: React.SFC<import("emotion-theming/types/helper").AddOptionalTo<ViewPropsWithTheme, "theme">>;
@@ -1,5 +0,0 @@
1
- export { ImagesView } from './ImagesView';
2
- export { BlendView } from './BlendView';
3
- export { SideBySideView } from './SideBySideView';
4
- export { SlideView } from './SlideView';
5
- export { SwapView } from './SwapView';
@@ -1,3 +0,0 @@
1
- /// <reference types="react" />
2
- export declare const rotate360: import("@emotion/serialize").Keyframes;
3
- export declare function CreeveyLoader(): JSX.Element;
@@ -1,33 +0,0 @@
1
- import React from 'react';
2
- import { CreeveySuite } from '../../../../types';
3
- import { Theme } from '@storybook/theming';
4
- export interface SuiteLinkProps {
5
- title: string;
6
- suite: CreeveySuite;
7
- 'data-testid'?: string;
8
- }
9
- export declare const Container: React.SFC<import("emotion-theming/types/helper").AddOptionalTo<Pick<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & Pick<{
10
- theme: Theme;
11
- disabled?: boolean | undefined;
12
- }, "disabled"> & {
13
- theme?: Theme | undefined;
14
- } & {
15
- children?: React.ReactNode;
16
- }, "key" | "theme" | keyof React.HTMLAttributes<HTMLDivElement> | "disabled"> & {
17
- ref?: React.RefObject<HTMLDivElement> | ((instance: HTMLDivElement | null) => void) | null | undefined;
18
- }, "theme">>;
19
- export declare const Button: React.SFC<import("emotion-theming/types/helper").AddOptionalTo<Pick<React.ClassAttributes<HTMLButtonElement> & React.ButtonHTMLAttributes<HTMLButtonElement> & Pick<{
20
- theme: Theme;
21
- active?: boolean | undefined;
22
- focused?: boolean | undefined;
23
- }, "active" | "focused"> & {
24
- theme?: Theme | undefined;
25
- } & {
26
- children?: React.ReactNode;
27
- }, "key" | "theme" | "active" | keyof React.ButtonHTMLAttributes<HTMLButtonElement> | "focused"> & {
28
- ref?: ((instance: HTMLButtonElement | null) => void) | React.RefObject<HTMLButtonElement> | null | undefined;
29
- }, "theme">>;
30
- export declare const SuiteContainer: import("@emotion/styled-base").StyledComponent<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {
31
- padding: number;
32
- }, Theme>;
33
- export declare function SuiteLink({ title, suite, 'data-testid': dataTid }: SuiteLinkProps): JSX.Element;