creevey 0.9.0-non-webpack.2.fix-capture-element → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (535) hide show
  1. package/.yarnrc.yml +1 -0
  2. package/CHANGELOG.md +51 -0
  3. package/README.md +4 -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/{lib/types → dist}/client/addon/components/Icons.d.ts +7 -7
  11. package/dist/client/addon/components/Icons.js +18 -0
  12. package/dist/client/addon/components/Icons.js.map +1 -0
  13. package/{lib/types → dist}/client/addon/components/Panel.d.ts +9 -9
  14. package/dist/client/addon/components/Panel.js +35 -0
  15. package/dist/client/addon/components/Panel.js.map +1 -0
  16. package/{lib/types → dist}/client/addon/components/TestSelect.d.ts +8 -8
  17. package/dist/client/addon/components/TestSelect.js +33 -0
  18. package/dist/client/addon/components/TestSelect.js.map +1 -0
  19. package/dist/client/addon/components/Tools.d.ts +6 -0
  20. package/dist/client/addon/components/Tools.js +89 -0
  21. package/dist/client/addon/components/Tools.js.map +1 -0
  22. package/{lib/types/client/addon/Manager.d.ts → dist/client/addon/controller.d.ts} +38 -37
  23. package/dist/client/addon/controller.js +208 -0
  24. package/dist/client/addon/controller.js.map +1 -0
  25. package/dist/client/addon/decorator.d.ts +1 -0
  26. package/dist/client/addon/decorator.js +6 -0
  27. package/dist/client/addon/decorator.js.map +1 -0
  28. package/dist/client/addon/index.d.ts +2 -0
  29. package/dist/client/addon/index.js +19 -0
  30. package/dist/client/addon/index.js.map +1 -0
  31. package/dist/client/addon/manager.d.ts +1 -0
  32. package/dist/client/addon/manager.js +41 -0
  33. package/dist/client/addon/manager.js.map +1 -0
  34. package/dist/client/addon/preset.d.ts +2 -0
  35. package/dist/client/addon/preset.js +6 -0
  36. package/dist/client/addon/preset.js.map +1 -0
  37. package/dist/client/addon/preview.d.ts +4 -0
  38. package/dist/client/addon/preview.js +8 -0
  39. package/dist/client/addon/preview.js.map +1 -0
  40. package/{lib/types → dist}/client/addon/readyForCapture.d.ts +6 -6
  41. package/dist/client/addon/readyForCapture.js +7 -0
  42. package/dist/client/addon/readyForCapture.js.map +1 -0
  43. package/{lib/types → dist}/client/addon/utils.d.ts +3 -2
  44. package/dist/client/addon/utils.js +27 -0
  45. package/dist/client/addon/utils.js.map +1 -0
  46. package/{lib/types → dist}/client/addon/withCreevey.d.ts +25 -24
  47. package/dist/client/addon/withCreevey.js +286 -0
  48. package/dist/client/addon/withCreevey.js.map +1 -0
  49. package/dist/client/shared/components/ImagesView/BlendView.d.ts +5 -0
  50. package/dist/client/shared/components/ImagesView/BlendView.js +74 -0
  51. package/dist/client/shared/components/ImagesView/BlendView.js.map +1 -0
  52. package/dist/client/shared/components/ImagesView/ImagesView.d.ts +9 -0
  53. package/dist/client/shared/components/ImagesView/ImagesView.js +46 -0
  54. package/dist/client/shared/components/ImagesView/ImagesView.js.map +1 -0
  55. package/dist/client/shared/components/ImagesView/SideBySideView.d.ts +5 -0
  56. package/dist/client/shared/components/ImagesView/SideBySideView.js +121 -0
  57. package/dist/client/shared/components/ImagesView/SideBySideView.js.map +1 -0
  58. package/dist/client/shared/components/ImagesView/SlideView.d.ts +5 -0
  59. package/dist/client/shared/components/ImagesView/SlideView.js +136 -0
  60. package/dist/client/shared/components/ImagesView/SlideView.js.map +1 -0
  61. package/dist/client/shared/components/ImagesView/SwapView.d.ts +5 -0
  62. package/dist/client/shared/components/ImagesView/SwapView.js +72 -0
  63. package/dist/client/shared/components/ImagesView/SwapView.js.map +1 -0
  64. package/{lib/types/client/shared/components/ImagesView/ImagesView.d.ts → dist/client/shared/components/ImagesView/common.d.ts} +15 -24
  65. package/dist/client/shared/components/ImagesView/common.js +14 -0
  66. package/dist/client/shared/components/ImagesView/common.js.map +1 -0
  67. package/dist/client/shared/components/ImagesView/index.d.ts +5 -0
  68. package/dist/client/shared/components/ImagesView/index.js +14 -0
  69. package/dist/client/shared/components/ImagesView/index.js.map +1 -0
  70. package/dist/client/shared/components/PageFooter/PageFooter.d.ts +6 -0
  71. package/dist/client/shared/components/PageFooter/PageFooter.js +20 -0
  72. package/dist/client/shared/components/PageFooter/PageFooter.js.map +1 -0
  73. package/{lib/types → dist}/client/shared/components/PageFooter/Paging.d.ts +7 -7
  74. package/dist/client/shared/components/PageFooter/Paging.js +51 -0
  75. package/dist/client/shared/components/PageFooter/Paging.js.map +1 -0
  76. package/{lib/types → dist}/client/shared/components/PageHeader/ImagePreview.d.ts +14 -12
  77. package/dist/client/shared/components/PageHeader/ImagePreview.js +61 -0
  78. package/dist/client/shared/components/PageHeader/ImagePreview.js.map +1 -0
  79. package/{lib/types → dist}/client/shared/components/PageHeader/PageHeader.d.ts +14 -16
  80. package/dist/client/shared/components/PageHeader/PageHeader.js +93 -0
  81. package/dist/client/shared/components/PageHeader/PageHeader.js.map +1 -0
  82. package/dist/client/shared/components/ResultsPage.d.ts +20 -0
  83. package/dist/client/shared/components/ResultsPage.js +87 -0
  84. package/dist/client/shared/components/ResultsPage.js.map +1 -0
  85. package/{lib/types → dist}/client/shared/creeveyClientApi.d.ts +10 -9
  86. package/dist/client/shared/creeveyClientApi.js +56 -0
  87. package/dist/client/shared/creeveyClientApi.js.map +1 -0
  88. package/{lib/types → dist}/client/shared/helpers.d.ts +47 -46
  89. package/dist/client/shared/helpers.js +396 -0
  90. package/dist/client/shared/helpers.js.map +1 -0
  91. package/{lib/types → dist}/client/shared/viewMode.d.ts +4 -4
  92. package/dist/client/shared/viewMode.js +11 -0
  93. package/dist/client/shared/viewMode.js.map +1 -0
  94. package/dist/client/web/202.js +1 -0
  95. package/dist/client/web/270.js +43 -0
  96. package/dist/client/web/752.js +1 -0
  97. package/{lib/types → dist}/client/web/CreeveyApp.d.ts +11 -11
  98. package/dist/client/web/CreeveyApp.js +167 -0
  99. package/dist/client/web/CreeveyApp.js.map +1 -0
  100. package/{lib/types → dist}/client/web/CreeveyContext.d.ts +14 -11
  101. package/dist/client/web/CreeveyContext.js +41 -0
  102. package/dist/client/web/CreeveyContext.js.map +1 -0
  103. package/dist/client/web/CreeveyLoader.d.ts +3 -0
  104. package/dist/client/web/CreeveyLoader.js +52 -0
  105. package/dist/client/web/CreeveyLoader.js.map +1 -0
  106. package/{lib/types → dist}/client/web/CreeveyView/SideBar/Checkbox.d.ts +22 -19
  107. package/dist/client/web/CreeveyView/SideBar/Checkbox.js +86 -0
  108. package/dist/client/web/CreeveyView/SideBar/Checkbox.js.map +1 -0
  109. package/{lib/types → dist}/client/web/CreeveyView/SideBar/Search.d.ts +6 -6
  110. package/dist/client/web/CreeveyView/SideBar/Search.js +125 -0
  111. package/dist/client/web/CreeveyView/SideBar/Search.js.map +1 -0
  112. package/{lib/types → dist}/client/web/CreeveyView/SideBar/SideBar.d.ts +14 -14
  113. package/dist/client/web/CreeveyView/SideBar/SideBar.js +111 -0
  114. package/dist/client/web/CreeveyView/SideBar/SideBar.js.map +1 -0
  115. package/dist/client/web/CreeveyView/SideBar/SideBarFooter.d.ts +1 -0
  116. package/dist/client/web/CreeveyView/SideBar/SideBarFooter.js +32 -0
  117. package/dist/client/web/CreeveyView/SideBar/SideBarFooter.js.map +1 -0
  118. package/{lib/types → dist}/client/web/CreeveyView/SideBar/SideBarHeader.d.ts +12 -12
  119. package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js +113 -0
  120. package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js.map +1 -0
  121. package/dist/client/web/CreeveyView/SideBar/SuiteLink.d.ts +43 -0
  122. package/dist/client/web/CreeveyView/SideBar/SuiteLink.js +123 -0
  123. package/dist/client/web/CreeveyView/SideBar/SuiteLink.js.map +1 -0
  124. package/{lib/types → dist}/client/web/CreeveyView/SideBar/TestLink.d.ts +7 -7
  125. package/dist/client/web/CreeveyView/SideBar/TestLink.js +64 -0
  126. package/dist/client/web/CreeveyView/SideBar/TestLink.js.map +1 -0
  127. package/{lib/types → dist}/client/web/CreeveyView/SideBar/TestStatusIcon.d.ts +12 -10
  128. package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.js +59 -0
  129. package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.js.map +1 -0
  130. package/dist/client/web/CreeveyView/SideBar/TestsStatus.d.ts +11 -0
  131. package/dist/client/web/CreeveyView/SideBar/TestsStatus.js +76 -0
  132. package/dist/client/web/CreeveyView/SideBar/TestsStatus.js.map +1 -0
  133. package/{lib/types → dist}/client/web/CreeveyView/SideBar/Toggle.d.ts +6 -6
  134. package/dist/client/web/CreeveyView/SideBar/Toggle.js +69 -0
  135. package/dist/client/web/CreeveyView/SideBar/Toggle.js.map +1 -0
  136. package/dist/client/web/CreeveyView/SideBar/index.d.ts +1 -0
  137. package/dist/client/web/CreeveyView/SideBar/index.js +6 -0
  138. package/dist/client/web/CreeveyView/SideBar/index.js.map +1 -0
  139. package/{lib/types → dist}/client/web/KeyboardEventsContext.d.ts +15 -13
  140. package/dist/client/web/KeyboardEventsContext.js +116 -0
  141. package/dist/client/web/KeyboardEventsContext.js.map +1 -0
  142. package/{lib/types → dist}/client/web/index.d.ts +4 -4
  143. package/{lib/cjs → dist}/client/web/index.html +12 -3
  144. package/dist/client/web/index.js +75 -0
  145. package/dist/client/web/index.js.map +1 -0
  146. package/dist/client/web/main.js +79 -0
  147. package/{lib/cjs → dist}/client/web/main.js.LICENSE.txt +0 -15
  148. package/{lib/types → dist}/creevey.d.ts +1 -1
  149. package/dist/creevey.js +52 -0
  150. package/dist/creevey.js.map +1 -0
  151. package/dist/index.d.ts +5 -0
  152. package/dist/index.js +24 -0
  153. package/dist/index.js.map +1 -0
  154. package/{lib/types → dist}/server/config.d.ts +4 -4
  155. package/dist/server/config.js +86 -0
  156. package/dist/server/config.js.map +1 -0
  157. package/{lib/types → dist}/server/docker.d.ts +7 -7
  158. package/dist/server/docker.js +122 -0
  159. package/dist/server/docker.js.map +1 -0
  160. package/{lib/types → dist}/server/index.d.ts +2 -2
  161. package/dist/server/index.js +47 -0
  162. package/dist/server/index.js.map +1 -0
  163. package/{lib/types → dist}/server/logger.d.ts +10 -10
  164. package/dist/server/logger.js +25 -0
  165. package/dist/server/logger.js.map +1 -0
  166. package/{lib/types → dist}/server/master/api.d.ts +7 -7
  167. package/dist/server/master/api.js +54 -0
  168. package/dist/server/master/api.js.map +1 -0
  169. package/dist/server/master/index.d.ts +3 -0
  170. package/dist/server/master/index.js +110 -0
  171. package/dist/server/master/index.js.map +1 -0
  172. package/{lib/types → dist}/server/master/master.d.ts +7 -7
  173. package/dist/server/master/master.js +40 -0
  174. package/dist/server/master/master.js.map +1 -0
  175. package/{lib/types → dist}/server/master/pool.d.ts +30 -31
  176. package/dist/server/master/pool.js +186 -0
  177. package/dist/server/master/pool.js.map +1 -0
  178. package/{lib/types → dist}/server/master/runner.d.ts +23 -26
  179. package/dist/server/master/runner.js +222 -0
  180. package/dist/server/master/runner.js.map +1 -0
  181. package/dist/server/master/server.d.ts +2 -0
  182. package/dist/server/master/server.js +114 -0
  183. package/dist/server/master/server.js.map +1 -0
  184. package/{lib/types → dist}/server/messages.d.ts +26 -27
  185. package/dist/server/messages.js +222 -0
  186. package/dist/server/messages.js.map +1 -0
  187. package/{lib/types → dist}/server/selenium/browser.d.ts +19 -17
  188. package/dist/server/selenium/browser.js +640 -0
  189. package/dist/server/selenium/browser.js.map +1 -0
  190. package/dist/server/selenium/index.d.ts +2 -0
  191. package/dist/server/selenium/index.js +19 -0
  192. package/dist/server/selenium/index.js.map +1 -0
  193. package/{lib/types → dist}/server/selenium/selenoid.d.ts +3 -3
  194. package/dist/server/selenium/selenoid.js +120 -0
  195. package/dist/server/selenium/selenoid.js.map +1 -0
  196. package/dist/server/stories.d.ts +3 -0
  197. package/dist/server/stories.js +92 -0
  198. package/dist/server/stories.js.map +1 -0
  199. package/dist/server/storybook/providers/browser.d.ts +2 -0
  200. package/dist/server/storybook/providers/browser.js +60 -0
  201. package/dist/server/storybook/providers/browser.js.map +1 -0
  202. package/dist/server/storybook/providers/hybrid.d.ts +2 -0
  203. package/dist/server/storybook/providers/hybrid.js +59 -0
  204. package/dist/server/storybook/providers/hybrid.js.map +1 -0
  205. package/dist/server/telemetry.d.ts +2 -0
  206. package/dist/server/telemetry.js +196 -0
  207. package/dist/server/telemetry.js.map +1 -0
  208. package/{lib/types → dist}/server/testsFiles/parser.d.ts +8 -12
  209. package/dist/server/testsFiles/parser.js +50 -0
  210. package/dist/server/testsFiles/parser.js.map +1 -0
  211. package/dist/server/update.d.ts +2 -0
  212. package/dist/server/update.js +53 -0
  213. package/dist/server/update.js.map +1 -0
  214. package/dist/server/utils.d.ts +25 -0
  215. package/dist/server/utils.js +157 -0
  216. package/dist/server/utils.js.map +1 -0
  217. package/{lib/types → dist}/server/worker/chai-image.d.ts +5 -6
  218. package/dist/server/worker/chai-image.js +113 -0
  219. package/dist/server/worker/chai-image.js.map +1 -0
  220. package/{lib/types → dist}/server/worker/helpers.d.ts +8 -8
  221. package/dist/server/worker/helpers.js +57 -0
  222. package/dist/server/worker/helpers.js.map +1 -0
  223. package/dist/server/worker/index.d.ts +1 -0
  224. package/dist/server/worker/index.js +6 -0
  225. package/dist/server/worker/index.js.map +1 -0
  226. package/{lib/types → dist}/server/worker/reporter.d.ts +8 -8
  227. package/dist/server/worker/reporter.js +130 -0
  228. package/dist/server/worker/reporter.js.map +1 -0
  229. package/dist/server/worker/worker.d.ts +4 -0
  230. package/dist/server/worker/worker.js +212 -0
  231. package/dist/server/worker/worker.js.map +1 -0
  232. package/{lib/types → dist}/shared/index.d.ts +7 -7
  233. package/dist/shared/index.js +77 -0
  234. package/dist/shared/index.js.map +1 -0
  235. package/{lib/types → dist}/shared/serializeRegExp.d.ts +9 -9
  236. package/dist/shared/serializeRegExp.js +25 -0
  237. package/dist/shared/serializeRegExp.js.map +1 -0
  238. package/{lib/types → dist}/types.d.ts +461 -490
  239. package/dist/types.js +61 -0
  240. package/dist/types.js.map +1 -0
  241. package/docs/config.md +30 -30
  242. package/docs/tests.md +3 -3
  243. package/manager/package.json +3 -0
  244. package/package.json +116 -156
  245. package/preset/README.md +3 -0
  246. package/preset/package.json +3 -0
  247. package/preview/README.md +3 -0
  248. package/preview/package.json +3 -0
  249. package/src/cli.ts +3 -0
  250. package/src/client/addon/components/Addon.tsx +53 -0
  251. package/src/client/addon/components/Icons.tsx +28 -0
  252. package/src/client/addon/components/Panel.tsx +57 -0
  253. package/src/client/addon/components/TestSelect.tsx +48 -0
  254. package/src/client/addon/components/Tools.tsx +93 -0
  255. package/src/client/addon/controller.ts +224 -0
  256. package/src/client/addon/decorator.ts +3 -0
  257. package/src/client/addon/index.ts +2 -0
  258. package/src/client/addon/manager.ts +44 -0
  259. package/src/client/addon/preset.ts +3 -0
  260. package/src/client/addon/preview.ts +7 -0
  261. package/src/client/addon/readyForCapture.ts +9 -0
  262. package/src/client/addon/utils.tsx +24 -0
  263. package/src/client/addon/withCreevey.ts +326 -0
  264. package/src/client/shared/components/ImagesView/BlendView.tsx +71 -0
  265. package/src/client/shared/components/ImagesView/ImagesView.tsx +70 -0
  266. package/src/client/shared/components/ImagesView/SideBySideView.tsx +139 -0
  267. package/src/client/shared/components/ImagesView/SlideView.tsx +146 -0
  268. package/src/client/shared/components/ImagesView/SwapView.tsx +81 -0
  269. package/src/client/shared/components/ImagesView/common.ts +23 -0
  270. package/src/client/shared/components/ImagesView/index.ts +5 -0
  271. package/src/client/shared/components/PageFooter/PageFooter.tsx +26 -0
  272. package/src/client/shared/components/PageFooter/Paging.tsx +90 -0
  273. package/src/client/shared/components/PageHeader/ImagePreview.tsx +82 -0
  274. package/src/client/shared/components/PageHeader/PageHeader.tsx +129 -0
  275. package/src/client/shared/components/ResultsPage.tsx +122 -0
  276. package/src/client/shared/creeveyClientApi.ts +68 -0
  277. package/src/client/shared/helpers.ts +436 -0
  278. package/src/client/shared/viewMode.ts +10 -0
  279. package/src/client/web/CreeveyApp.tsx +230 -0
  280. package/src/client/web/CreeveyContext.tsx +26 -0
  281. package/src/client/web/CreeveyLoader.tsx +56 -0
  282. package/src/client/web/CreeveyView/SideBar/Checkbox.tsx +118 -0
  283. package/src/client/web/CreeveyView/SideBar/Search.tsx +140 -0
  284. package/src/client/web/CreeveyView/SideBar/SideBar.tsx +136 -0
  285. package/src/client/web/CreeveyView/SideBar/SideBarFooter.tsx +38 -0
  286. package/src/client/web/CreeveyView/SideBar/SideBarHeader.tsx +138 -0
  287. package/src/client/web/CreeveyView/SideBar/SuiteLink.tsx +137 -0
  288. package/src/client/web/CreeveyView/SideBar/TestLink.tsx +69 -0
  289. package/src/client/web/CreeveyView/SideBar/TestStatusIcon.tsx +64 -0
  290. package/src/client/web/CreeveyView/SideBar/TestsStatus.tsx +109 -0
  291. package/src/client/web/CreeveyView/SideBar/Toggle.tsx +85 -0
  292. package/src/client/web/CreeveyView/SideBar/index.ts +1 -0
  293. package/src/client/web/KeyboardEventsContext.tsx +121 -0
  294. package/src/client/web/index.html +28 -0
  295. package/src/client/web/index.tsx +63 -0
  296. package/src/creevey.ts +47 -0
  297. package/src/index.ts +4 -0
  298. package/src/server/config.ts +83 -0
  299. package/src/server/docker.ts +136 -0
  300. package/src/server/index.ts +51 -0
  301. package/{lib/esm/server/logger.js → src/server/logger.ts} +8 -7
  302. package/src/server/master/api.ts +59 -0
  303. package/src/server/master/index.ts +111 -0
  304. package/src/server/master/master.ts +47 -0
  305. package/src/server/master/pool.ts +203 -0
  306. package/src/server/master/runner.ts +245 -0
  307. package/src/server/master/server.ts +124 -0
  308. package/src/server/messages.ts +273 -0
  309. package/src/server/selenium/browser.ts +840 -0
  310. package/src/server/selenium/index.ts +2 -0
  311. package/src/server/selenium/selenoid.ts +154 -0
  312. package/src/server/stories.ts +133 -0
  313. package/src/server/storybook/providers/browser.ts +58 -0
  314. package/src/server/storybook/providers/hybrid.ts +70 -0
  315. package/src/server/telemetry.ts +212 -0
  316. package/src/server/testsFiles/parser.ts +62 -0
  317. package/src/server/update.ts +74 -0
  318. package/src/server/utils.ts +206 -0
  319. package/src/server/worker/chai-image.ts +147 -0
  320. package/src/server/worker/helpers.ts +61 -0
  321. package/src/server/worker/index.ts +1 -0
  322. package/src/server/worker/reporter.ts +170 -0
  323. package/src/server/worker/worker.ts +240 -0
  324. package/src/shared/index.ts +76 -0
  325. package/src/shared/serializeRegExp.ts +26 -0
  326. package/src/types.ts +501 -0
  327. package/types/chai.d.ts +0 -1
  328. package/types/global.d.ts +5 -0
  329. package/types/mocha.d.ts +1 -1
  330. package/addon/package.json +0 -4
  331. package/jest.config.js +0 -6
  332. package/lib/cjs/cli.js +0 -5
  333. package/lib/cjs/client/addon/Manager.js +0 -264
  334. package/lib/cjs/client/addon/components/Addon.js +0 -55
  335. package/lib/cjs/client/addon/components/Icons.js +0 -46
  336. package/lib/cjs/client/addon/components/Panel.js +0 -72
  337. package/lib/cjs/client/addon/components/TestSelect.js +0 -65
  338. package/lib/cjs/client/addon/components/Tools.js +0 -95
  339. package/lib/cjs/client/addon/decorator.js +0 -11
  340. package/lib/cjs/client/addon/index.js +0 -31
  341. package/lib/cjs/client/addon/preset.js +0 -62
  342. package/lib/cjs/client/addon/readyForCapture.js +0 -12
  343. package/lib/cjs/client/addon/register.js +0 -72
  344. package/lib/cjs/client/addon/utils.js +0 -38
  345. package/lib/cjs/client/addon/withCreevey.js +0 -346
  346. package/lib/cjs/client/shared/components/ImagesView/BlendView.js +0 -87
  347. package/lib/cjs/client/shared/components/ImagesView/ImagesView.js +0 -92
  348. package/lib/cjs/client/shared/components/ImagesView/SideBySideView.js +0 -154
  349. package/lib/cjs/client/shared/components/ImagesView/SlideView.js +0 -166
  350. package/lib/cjs/client/shared/components/ImagesView/SwapView.js +0 -91
  351. package/lib/cjs/client/shared/components/ImagesView/index.js +0 -45
  352. package/lib/cjs/client/shared/components/PageFooter/PageFooter.js +0 -50
  353. package/lib/cjs/client/shared/components/PageFooter/Paging.js +0 -94
  354. package/lib/cjs/client/shared/components/PageHeader/ImagePreview.js +0 -82
  355. package/lib/cjs/client/shared/components/PageHeader/PageHeader.js +0 -119
  356. package/lib/cjs/client/shared/components/ResultsPage.js +0 -143
  357. package/lib/cjs/client/shared/creeveyClientApi.js +0 -76
  358. package/lib/cjs/client/shared/helpers.js +0 -411
  359. package/lib/cjs/client/shared/viewMode.js +0 -17
  360. package/lib/cjs/client/web/142.js +0 -2
  361. package/lib/cjs/client/web/142.js.LICENSE.txt +0 -12
  362. package/lib/cjs/client/web/32.js +0 -1
  363. package/lib/cjs/client/web/551.js +0 -1
  364. package/lib/cjs/client/web/566.js +0 -2
  365. package/lib/cjs/client/web/566.js.LICENSE.txt +0 -31
  366. package/lib/cjs/client/web/691.js +0 -2
  367. package/lib/cjs/client/web/691.js.LICENSE.txt +0 -8
  368. package/lib/cjs/client/web/725.js +0 -1
  369. package/lib/cjs/client/web/main.js +0 -2
  370. package/lib/cjs/creevey.js +0 -69
  371. package/lib/cjs/index.js +0 -62
  372. package/lib/cjs/server/config.js +0 -96
  373. package/lib/cjs/server/docker.js +0 -146
  374. package/lib/cjs/server/extract.js +0 -50
  375. package/lib/cjs/server/index.js +0 -83
  376. package/lib/cjs/server/loaders/babel/creevey-plugin.js +0 -86
  377. package/lib/cjs/server/loaders/babel/helpers.js +0 -469
  378. package/lib/cjs/server/loaders/babel/register.js +0 -124
  379. package/lib/cjs/server/loaders/hooks/mdx.js +0 -30
  380. package/lib/cjs/server/loaders/hooks/svelte.js +0 -65
  381. package/lib/cjs/server/loaders/webpack/compile.js +0 -293
  382. package/lib/cjs/server/loaders/webpack/creevey-loader.js +0 -179
  383. package/lib/cjs/server/loaders/webpack/dummy-hmr.js +0 -39
  384. package/lib/cjs/server/loaders/webpack/mdx-loader.js +0 -72
  385. package/lib/cjs/server/loaders/webpack/start.js +0 -41
  386. package/lib/cjs/server/logger.js +0 -48
  387. package/lib/cjs/server/master/api.js +0 -75
  388. package/lib/cjs/server/master/index.js +0 -146
  389. package/lib/cjs/server/master/master.js +0 -57
  390. package/lib/cjs/server/master/pool.js +0 -197
  391. package/lib/cjs/server/master/runner.js +0 -281
  392. package/lib/cjs/server/master/server.js +0 -129
  393. package/lib/cjs/server/messages.js +0 -264
  394. package/lib/cjs/server/selenium/browser.js +0 -672
  395. package/lib/cjs/server/selenium/index.js +0 -31
  396. package/lib/cjs/server/selenium/selenoid.js +0 -172
  397. package/lib/cjs/server/stories.js +0 -159
  398. package/lib/cjs/server/storybook/entry.js +0 -70
  399. package/lib/cjs/server/storybook/helpers.js +0 -159
  400. package/lib/cjs/server/storybook/providers/browser.js +0 -74
  401. package/lib/cjs/server/storybook/providers/hybrid.js +0 -84
  402. package/lib/cjs/server/storybook/providers/nodejs.js +0 -239
  403. package/lib/cjs/server/testsFiles/parser.js +0 -72
  404. package/lib/cjs/server/testsFiles/register.js +0 -48
  405. package/lib/cjs/server/update.js +0 -79
  406. package/lib/cjs/server/utils.js +0 -183
  407. package/lib/cjs/server/worker/chai-image.js +0 -142
  408. package/lib/cjs/server/worker/helpers.js +0 -69
  409. package/lib/cjs/server/worker/index.js +0 -15
  410. package/lib/cjs/server/worker/reporter.js +0 -108
  411. package/lib/cjs/server/worker/worker.js +0 -268
  412. package/lib/cjs/shared/index.js +0 -101
  413. package/lib/cjs/shared/serializeRegExp.js +0 -42
  414. package/lib/cjs/types.js +0 -74
  415. package/lib/esm/cli.js +0 -4
  416. package/lib/esm/client/addon/Manager.js +0 -248
  417. package/lib/esm/client/addon/components/Addon.js +0 -39
  418. package/lib/esm/client/addon/components/Icons.js +0 -31
  419. package/lib/esm/client/addon/components/Panel.js +0 -53
  420. package/lib/esm/client/addon/components/TestSelect.js +0 -51
  421. package/lib/esm/client/addon/components/Tools.js +0 -74
  422. package/lib/esm/client/addon/decorator.js +0 -2
  423. package/lib/esm/client/addon/index.js +0 -2
  424. package/lib/esm/client/addon/preset.js +0 -41
  425. package/lib/esm/client/addon/readyForCapture.js +0 -5
  426. package/lib/esm/client/addon/register.js +0 -51
  427. package/lib/esm/client/addon/utils.js +0 -31
  428. package/lib/esm/client/addon/withCreevey.js +0 -322
  429. package/lib/esm/client/shared/components/ImagesView/BlendView.js +0 -67
  430. package/lib/esm/client/shared/components/ImagesView/ImagesView.js +0 -69
  431. package/lib/esm/client/shared/components/ImagesView/SideBySideView.js +0 -131
  432. package/lib/esm/client/shared/components/ImagesView/SlideView.js +0 -143
  433. package/lib/esm/client/shared/components/ImagesView/SwapView.js +0 -71
  434. package/lib/esm/client/shared/components/ImagesView/index.js +0 -5
  435. package/lib/esm/client/shared/components/PageFooter/PageFooter.js +0 -36
  436. package/lib/esm/client/shared/components/PageFooter/Paging.js +0 -80
  437. package/lib/esm/client/shared/components/PageHeader/ImagePreview.js +0 -68
  438. package/lib/esm/client/shared/components/PageHeader/PageHeader.js +0 -97
  439. package/lib/esm/client/shared/components/ResultsPage.js +0 -115
  440. package/lib/esm/client/shared/creeveyClientApi.js +0 -67
  441. package/lib/esm/client/shared/helpers.js +0 -353
  442. package/lib/esm/client/shared/viewMode.js +0 -6
  443. package/lib/esm/creevey.js +0 -54
  444. package/lib/esm/index.js +0 -5
  445. package/lib/esm/server/config.js +0 -73
  446. package/lib/esm/server/docker.js +0 -123
  447. package/lib/esm/server/extract.js +0 -34
  448. package/lib/esm/server/index.js +0 -64
  449. package/lib/esm/server/loaders/babel/creevey-plugin.js +0 -72
  450. package/lib/esm/server/loaders/babel/helpers.js +0 -452
  451. package/lib/esm/server/loaders/babel/register.js +0 -103
  452. package/lib/esm/server/loaders/hooks/mdx.js +0 -15
  453. package/lib/esm/server/loaders/hooks/svelte.js +0 -49
  454. package/lib/esm/server/loaders/webpack/compile.js +0 -270
  455. package/lib/esm/server/loaders/webpack/creevey-loader.js +0 -158
  456. package/lib/esm/server/loaders/webpack/dummy-hmr.js +0 -32
  457. package/lib/esm/server/loaders/webpack/mdx-loader.js +0 -58
  458. package/lib/esm/server/loaders/webpack/start.js +0 -27
  459. package/lib/esm/server/master/api.js +0 -64
  460. package/lib/esm/server/master/index.js +0 -125
  461. package/lib/esm/server/master/master.js +0 -38
  462. package/lib/esm/server/master/pool.js +0 -176
  463. package/lib/esm/server/master/runner.js +0 -259
  464. package/lib/esm/server/master/server.js +0 -105
  465. package/lib/esm/server/messages.js +0 -232
  466. package/lib/esm/server/selenium/browser.js +0 -639
  467. package/lib/esm/server/selenium/index.js +0 -2
  468. package/lib/esm/server/selenium/selenoid.js +0 -149
  469. package/lib/esm/server/stories.js +0 -140
  470. package/lib/esm/server/storybook/entry.js +0 -46
  471. package/lib/esm/server/storybook/helpers.js +0 -98
  472. package/lib/esm/server/storybook/providers/browser.js +0 -60
  473. package/lib/esm/server/storybook/providers/hybrid.js +0 -64
  474. package/lib/esm/server/storybook/providers/nodejs.js +0 -217
  475. package/lib/esm/server/testsFiles/parser.js +0 -50
  476. package/lib/esm/server/testsFiles/register.js +0 -35
  477. package/lib/esm/server/update.js +0 -61
  478. package/lib/esm/server/utils.js +0 -142
  479. package/lib/esm/server/worker/chai-image.js +0 -130
  480. package/lib/esm/server/worker/helpers.js +0 -60
  481. package/lib/esm/server/worker/index.js +0 -1
  482. package/lib/esm/server/worker/reporter.js +0 -86
  483. package/lib/esm/server/worker/worker.js +0 -238
  484. package/lib/esm/shared/index.js +0 -78
  485. package/lib/esm/shared/serializeRegExp.js +0 -24
  486. package/lib/esm/types.js +0 -43
  487. package/lib/types/cli.d.ts +0 -1
  488. package/lib/types/client/addon/components/Addon.d.ts +0 -8
  489. package/lib/types/client/addon/components/Tools.d.ts +0 -6
  490. package/lib/types/client/addon/decorator.d.ts +0 -1
  491. package/lib/types/client/addon/index.d.ts +0 -2
  492. package/lib/types/client/addon/preset.d.ts +0 -23
  493. package/lib/types/client/addon/register.d.ts +0 -3
  494. package/lib/types/client/shared/components/ImagesView/BlendView.d.ts +0 -3
  495. package/lib/types/client/shared/components/ImagesView/SideBySideView.d.ts +0 -3
  496. package/lib/types/client/shared/components/ImagesView/SlideView.d.ts +0 -3
  497. package/lib/types/client/shared/components/ImagesView/SwapView.d.ts +0 -3
  498. package/lib/types/client/shared/components/ImagesView/index.d.ts +0 -5
  499. package/lib/types/client/shared/components/PageFooter/PageFooter.d.ts +0 -8
  500. package/lib/types/client/shared/components/ResultsPage.d.ts +0 -18
  501. package/lib/types/client/web/CreeveyLoader.d.ts +0 -2
  502. package/lib/types/client/web/CreeveyView/SideBar/SuiteLink.d.ts +0 -33
  503. package/lib/types/client/web/CreeveyView/SideBar/TestsStatus.d.ts +0 -9
  504. package/lib/types/client/web/CreeveyView/SideBar/index.d.ts +0 -1
  505. package/lib/types/index.d.ts +0 -2
  506. package/lib/types/server/extract.d.ts +0 -2
  507. package/lib/types/server/loaders/babel/creevey-plugin.d.ts +0 -1
  508. package/lib/types/server/loaders/babel/helpers.d.ts +0 -19
  509. package/lib/types/server/loaders/babel/register.d.ts +0 -5
  510. package/lib/types/server/loaders/hooks/mdx.d.ts +0 -1
  511. package/lib/types/server/loaders/hooks/svelte.d.ts +0 -1
  512. package/lib/types/server/loaders/webpack/compile.d.ts +0 -2
  513. package/lib/types/server/loaders/webpack/creevey-loader.d.ts +0 -4
  514. package/lib/types/server/loaders/webpack/dummy-hmr.d.ts +0 -10
  515. package/lib/types/server/loaders/webpack/mdx-loader.d.ts +0 -6
  516. package/lib/types/server/loaders/webpack/start.d.ts +0 -1
  517. package/lib/types/server/master/index.d.ts +0 -3
  518. package/lib/types/server/master/server.d.ts +0 -2
  519. package/lib/types/server/selenium/index.d.ts +0 -2
  520. package/lib/types/server/stories.d.ts +0 -8
  521. package/lib/types/server/storybook/entry.d.ts +0 -18
  522. package/lib/types/server/storybook/helpers.d.ts +0 -24
  523. package/lib/types/server/storybook/providers/browser.d.ts +0 -4
  524. package/lib/types/server/storybook/providers/hybrid.d.ts +0 -4
  525. package/lib/types/server/storybook/providers/nodejs.d.ts +0 -9
  526. package/lib/types/server/testsFiles/register.d.ts +0 -2
  527. package/lib/types/server/update.d.ts +0 -2
  528. package/lib/types/server/utils.d.ts +0 -20
  529. package/lib/types/server/worker/index.d.ts +0 -1
  530. package/lib/types/server/worker/worker.d.ts +0 -4
  531. package/preset.js +0 -9
  532. package/types/babel__register.d.ts +0 -1
  533. package/types/event-source-polyfill.d.ts +0 -6
  534. package/types/mdx.d.ts +0 -7
  535. /package/{addon → manager}/README.md +0 -0
@@ -1,490 +1,461 @@
1
- /// <reference types="node" />
2
- /// <reference types="chai" />
3
- import type { API as StorybookAPI } from '@storybook/api';
4
- import type { DecoratorFunction } from '@storybook/addons';
5
- import type { IKey } from 'selenium-webdriver/lib/input';
6
- import type { Worker as ClusterWorker } from 'cluster';
7
- import type { until, WebDriver, WebElementPromise } from 'selenium-webdriver';
8
- import type Pixelmatch from 'pixelmatch';
9
- import type { Context } from 'mocha';
10
- export declare type DiffOptions = typeof Pixelmatch extends (x1: any, x2: any, x3: any, x4: any, x5: any, options?: infer T) => void ? T : never;
11
- export declare type SetStoriesData = {
12
- v?: number;
13
- globalParameters: {
14
- creevey?: CreeveyStoryParams;
15
- };
16
- kindParameters: Partial<{
17
- [kind: string]: {
18
- fileName: string;
19
- creevey?: CreeveyStoryParams;
20
- };
21
- }>;
22
- stories: StoriesRaw;
23
- };
24
- export declare type StoriesRaw = StorybookAPI extends {
25
- setStories: (stories: infer SS) => void;
26
- } ? SS : never;
27
- export declare type StoryInput = StoriesRaw extends {
28
- [id: string]: infer S;
29
- } ? S : never;
30
- export interface StoryMeta<StoryFnReturnType = unknown> {
31
- title: string;
32
- component?: unknown;
33
- decorators?: DecoratorFunction<StoryFnReturnType>[];
34
- parameters?: {
35
- creevey?: CreeveyStoryParams;
36
- [name: string]: unknown;
37
- };
38
- }
39
- export interface CreeveyMeta {
40
- parameters?: {
41
- creevey?: CreeveyStoryParams;
42
- [name: string]: unknown;
43
- };
44
- }
45
- export interface CSFStory<StoryFnReturnType = unknown> {
46
- (): StoryFnReturnType;
47
- /**
48
- * @deprecated
49
- * CSF .story annotations deprecated; annotate story functions directly:
50
- * - StoryFn.story.name => StoryFn.storyName
51
- * - StoryFn.story.(parameters|decorators) => StoryFn.(parameters|decorators)
52
- * See https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#hoisted-csf-annotations for details and codemod.
53
- */
54
- story?: {
55
- name?: string;
56
- decorators?: DecoratorFunction<StoryFnReturnType>[];
57
- parameters?: {
58
- creevey?: CreeveyStoryParams;
59
- [name: string]: unknown;
60
- };
61
- };
62
- storyName?: string;
63
- decorators?: DecoratorFunction<StoryFnReturnType>[];
64
- parameters?: {
65
- creevey?: CreeveyStoryParams;
66
- [name: string]: unknown;
67
- };
68
- }
69
- export interface CreeveyStory {
70
- parameters?: {
71
- creevey?: CreeveyStoryParams;
72
- [name: string]: unknown;
73
- };
74
- }
75
- export interface Capabilities {
76
- browserName: string;
77
- version?: string;
78
- [prop: string]: unknown;
79
- }
80
- export declare type BrowserConfig = Capabilities & {
81
- limit?: number;
82
- gridUrl?: string;
83
- storybookUrl?: string;
84
- /**
85
- * Storybook's globals to set in a specific browser
86
- * @see https://github.com/storybookjs/storybook/blob/v6.0.0/docs/essentials/toolbars-and-globals.md
87
- */
88
- _storybookGlobals?: StorybookGlobals;
89
- /**
90
- * Specify custom docker image. Used only with `useDocker == true`
91
- * @default `selenoid/${browserName}:${version ?? 'latest'}`
92
- */
93
- dockerImage?: string;
94
- /**
95
- * Command to start standalone webdriver
96
- * Used only with `useDocker == false`
97
- */
98
- webdriverCommand?: string[];
99
- viewport?: {
100
- width: number;
101
- height: number;
102
- };
103
- };
104
- export interface StorybookGlobals {
105
- [key: string]: unknown;
106
- }
107
- export declare type Browser = boolean | string | BrowserConfig;
108
- export interface HookConfig {
109
- before?: () => unknown;
110
- after?: () => unknown;
111
- }
112
- export interface DockerAuth {
113
- key?: string;
114
- username?: string;
115
- password?: string;
116
- auth?: string;
117
- email?: string;
118
- serveraddress?: string;
119
- }
120
- export interface Config {
121
- /**
122
- * Url to Selenium grid hub or standalone selenium.
123
- * By default creevey will use docker containers
124
- */
125
- gridUrl: string;
126
- /**
127
- * Url where storybook hosted on
128
- * @default 'http://localhost:6006'
129
- */
130
- storybookUrl: string;
131
- /**
132
- * Url where storybook hosted on
133
- */
134
- resolveStorybookUrl?: () => Promise<string>;
135
- /**
136
- * Absolute path to directory with reference images
137
- * @default path.join(process.cwd(), './images')
138
- */
139
- screenDir: string;
140
- /**
141
- * Absolute path where test reports and diff images would be saved
142
- * @default path.join(process.cwd(), './report')
143
- */
144
- reportDir: string;
145
- /**
146
- * Absolute path to storybook config directory
147
- * @default path.join(process.cwd(), './.storybook')
148
- */
149
- storybookDir: string;
150
- /**
151
- * How much test would be retried
152
- * @default 0
153
- */
154
- maxRetries: number;
155
- /**
156
- * Define pixelmatch diff options
157
- * @default { threshold: 0, includeAA: true }
158
- */
159
- diffOptions: DiffOptions;
160
- /**
161
- * Browser capabilities
162
- * @default { chrome: true }
163
- */
164
- browsers: {
165
- [key: string]: Browser;
166
- };
167
- /**
168
- * Hooks that allow run custom script before and after creevey start
169
- */
170
- hooks: HookConfig;
171
- /**
172
- * Creevey automatically download latest selenoid binary. You can define path to different verison.
173
- * Works only with `useDocker == false`
174
- */
175
- selenoidPath?: string;
176
- /**
177
- * Creevey extract tests by using babel transformations
178
- * and load stories to nodejs directly.
179
- * In some edge cases it may fail to load tests.
180
- * In that case you can enable this option.
181
- * Creevey uses Storybook webpack config to build nodejs bundle with tests.
182
- * But it slightly slower and doesn't work if you use custom bundler for Storybook
183
- *
184
- * Affects only for Storybook 6.2+
185
- * @default false
186
- */
187
- useWebpackToExtractTests: boolean;
188
- /**
189
- * Creevey has two built-in stories providers.
190
- *
191
- * `nodejsStoriesProvider` - The first one is used by default except if CSFv3 is enabled in Storybook.
192
- * This provider builds and runs storybook in nodejs env, that allows write interaction tests by using Selenium API.
193
- * The downside is it depends from project build specific and slightly increases init time.
194
- *
195
- * `browserStoriesProvider` - The second one is used by default with CSFv3 storybook feature.
196
- * It load stories from storybook which is running in browser, like storyshots or loki do it.
197
- * The downside of this, you can't use interaction tests in Creevey, unless you use CSFv3.
198
- * Where you can define `play` method for each story
199
- *
200
- * Usage
201
- * ``` typescript
202
- * import { nodejsStoriesProvider as provider } from 'creevey'
203
- * // or
204
- * import { browserStoriesProvider as provider } from 'creevey'
205
- *
206
- * // Creevey config
207
- * module.exports = {
208
- * storiesProvider: provider
209
- * }
210
- * ```
211
- */
212
- storiesProvider: (config: Config, options: {
213
- watch: boolean;
214
- debug: boolean;
215
- port: number;
216
- }, storiesListener: (stories: Map<string, StoryInput[]>) => void) => Promise<StoriesRaw>;
217
- /**
218
- * Define custom babel options for load stories transformation
219
- */
220
- babelOptions: (options: Record<string, unknown>) => Record<string, unknown>;
221
- /**
222
- * Allows you to start selenoid without docker
223
- * and use standalone browsers
224
- * @default true
225
- */
226
- useDocker: boolean;
227
- /**
228
- * Custom selenoid docker image
229
- * @default 'aerokube/selenoid:latest-release'
230
- */
231
- dockerImage: string;
232
- /**
233
- * Should Creevey pull docker images or use local ones
234
- * @default true
235
- */
236
- pullImages: boolean;
237
- /**
238
- * Define auth config for private docker registry
239
- */
240
- dockerAuth?: DockerAuth;
241
- /**
242
- * Enable to stop tests running right after the first failed test.
243
- * The `--ui` CLI option ignores this option
244
- */
245
- failFast: boolean;
246
- /**
247
- * Specify platform for docker images
248
- */
249
- dockerImagePlatform: string;
250
- testsRegex?: RegExp;
251
- testsDir?: string;
252
- tsConfig?: string;
253
- }
254
- export declare type CreeveyConfig = Partial<Config>;
255
- export interface Options {
256
- config?: string;
257
- port: number;
258
- ui: boolean;
259
- update: boolean | string;
260
- webpack: boolean;
261
- debug: boolean;
262
- extract: boolean | string;
263
- tests: boolean;
264
- browser?: string;
265
- reporter?: string;
266
- screenDir?: string;
267
- reportDir?: string;
268
- saveReport: boolean;
269
- failFast?: boolean;
270
- }
271
- export declare type WorkerMessage = {
272
- type: 'ready';
273
- payload?: never;
274
- } | {
275
- type: 'error';
276
- payload: {
277
- error: string;
278
- };
279
- };
280
- export declare type StoriesMessage = {
281
- type: 'get';
282
- payload?: never;
283
- } | {
284
- type: 'set';
285
- payload: {
286
- stories: StoriesRaw;
287
- oldTests: string[];
288
- };
289
- } | {
290
- type: 'update';
291
- payload: [string, StoryInput[]][];
292
- } | {
293
- type: 'capture';
294
- payload?: CaptureOptions;
295
- };
296
- export declare type TestMessage = {
297
- type: 'start';
298
- payload: {
299
- id: string;
300
- path: string[];
301
- retries: number;
302
- };
303
- } | {
304
- type: 'end';
305
- payload: TestResult;
306
- };
307
- export declare type WebpackMessage = {
308
- type: 'success';
309
- payload?: never;
310
- } | {
311
- type: 'fail';
312
- payload?: never;
313
- } | {
314
- type: 'rebuild succeeded';
315
- payload?: never;
316
- } | {
317
- type: 'rebuild failed';
318
- payload?: never;
319
- };
320
- export declare type DockerMessage = {
321
- type: 'start';
322
- payload?: never;
323
- } | {
324
- type: 'success';
325
- payload: {
326
- gridUrl: string;
327
- };
328
- };
329
- export declare type ShutdownMessage = unknown;
330
- export declare type ProcessMessage = (WorkerMessage & {
331
- scope: 'worker';
332
- }) | (StoriesMessage & {
333
- scope: 'stories';
334
- }) | (TestMessage & {
335
- scope: 'test';
336
- }) | (WebpackMessage & {
337
- scope: 'webpack';
338
- }) | (DockerMessage & {
339
- scope: 'docker';
340
- }) | (ShutdownMessage & {
341
- scope: 'shutdown';
342
- });
343
- export declare type WorkerHandler = (message: WorkerMessage) => void;
344
- export declare type StoriesHandler = (message: StoriesMessage) => void;
345
- export declare type TestHandler = (message: TestMessage) => void;
346
- export declare type WebpackHandler = (message: WebpackMessage) => void;
347
- export declare type DockerHandler = (message: DockerMessage) => void;
348
- export declare type ShutdownHandler = (message: ShutdownMessage) => void;
349
- export interface Worker extends ClusterWorker {
350
- isRunning?: boolean;
351
- }
352
- export interface Images {
353
- actual: string;
354
- expect?: string;
355
- diff?: string;
356
- error?: string;
357
- }
358
- export declare type TestStatus = 'unknown' | 'pending' | 'running' | 'failed' | 'success' | 'retrying';
359
- export interface TestResult {
360
- status: 'failed' | 'success';
361
- images?: Partial<{
362
- [name: string]: Images;
363
- }>;
364
- error?: string;
365
- }
366
- export interface ImagesError extends Error {
367
- images: string | Partial<{
368
- [name: string]: string;
369
- }>;
370
- }
371
- export interface TestMeta {
372
- id: string;
373
- storyPath: string[];
374
- browser: string;
375
- testName?: string;
376
- storyId: string;
377
- }
378
- export interface TestData extends TestMeta {
379
- skip?: boolean | string;
380
- retries?: number;
381
- status?: TestStatus;
382
- results?: TestResult[];
383
- approved?: Partial<{
384
- [image: string]: number;
385
- }>;
386
- }
387
- export interface ServerTest extends TestData {
388
- story: StoryInput;
389
- fn: (this: Context) => Promise<void>;
390
- }
391
- export interface CreeveyStatus {
392
- isRunning: boolean;
393
- tests: Partial<{
394
- [id: string]: TestData;
395
- }>;
396
- browsers: string[];
397
- }
398
- export interface CreeveyUpdate {
399
- isRunning?: boolean;
400
- tests?: Partial<{
401
- [id: string]: TestData;
402
- }>;
403
- removedTests?: TestMeta[];
404
- }
405
- export interface SkipOption {
406
- reason?: string;
407
- in?: string | string[] | RegExp;
408
- kinds?: string | string[] | RegExp;
409
- stories?: string | string[] | RegExp;
410
- tests?: string | string[] | RegExp;
411
- }
412
- export declare type SkipOptions = boolean | string | SkipOption | SkipOption[] | Record<string, SkipOption | SkipOption[]>;
413
- export declare type CreeveyTestFunction = (this: {
414
- browser: WebDriver;
415
- until: typeof until;
416
- keys: IKey;
417
- expect: Chai.ExpectStatic;
418
- takeScreenshot: () => Promise<string>;
419
- updateStoryArgs: <Args extends Record<string, unknown>>(updatedArgs: Args) => Promise<void>;
420
- readonly captureElement?: WebElementPromise;
421
- }) => Promise<void>;
422
- export interface CaptureOptions {
423
- imageName?: string;
424
- captureElement?: string | null;
425
- ignoreElements?: string | string[] | null;
426
- }
427
- export interface CreeveyStoryParams extends CaptureOptions {
428
- waitForReady?: boolean;
429
- delay?: number | {
430
- for: string[];
431
- ms: number;
432
- };
433
- skip?: SkipOptions;
434
- tests?: {
435
- [name: string]: CreeveyTestFunction;
436
- };
437
- }
438
- export interface ApprovePayload {
439
- id: string;
440
- retry: number;
441
- image: string;
442
- }
443
- export declare type Request = {
444
- type: 'status';
445
- } | {
446
- type: 'start';
447
- payload: string[];
448
- } | {
449
- type: 'stop';
450
- } | {
451
- type: 'approve';
452
- payload: ApprovePayload;
453
- };
454
- export declare type Response = {
455
- type: 'status';
456
- payload: CreeveyStatus;
457
- } | {
458
- type: 'update';
459
- payload: CreeveyUpdate;
460
- } | {
461
- type: 'capture';
462
- };
463
- export interface CreeveyTest extends TestData {
464
- checked: boolean;
465
- }
466
- export interface CreeveySuite {
467
- path: string[];
468
- skip: boolean;
469
- status?: TestStatus;
470
- opened: boolean;
471
- checked: boolean;
472
- indeterminate: boolean;
473
- children: Partial<{
474
- [title: string]: CreeveySuite | CreeveyTest;
475
- }>;
476
- }
477
- export declare type ImagesViewMode = 'side-by-side' | 'swap' | 'slide' | 'blend';
478
- export declare function noop(): void;
479
- export declare function isDefined<T>(value: T | null | undefined): value is T;
480
- export declare function isTest<T1, T2 extends TestData>(x?: T1 | T2): x is T2;
481
- export declare function isObject(x: unknown): x is Record<string, unknown>;
482
- export declare function isString(x: unknown): x is string;
483
- export declare function isFunction(x: unknown): x is (...args: any[]) => any;
484
- export declare function isImageError(error: unknown): error is ImagesError;
485
- export declare function isProcessMessage(message: unknown): message is ProcessMessage;
486
- export declare function isWorkerMessage(message: unknown): message is WorkerMessage;
487
- export declare function isStoriesMessage(message: unknown): message is StoriesMessage;
488
- export declare function isTestMessage(message: unknown): message is TestMessage;
489
- export declare function isWebpackMessage(message: unknown): message is WebpackMessage;
490
- export declare function isDockerMessage(message: unknown): message is DockerMessage;
1
+ import type { StoryContextForEnhancers, DecoratorFunction } from '@storybook/csf';
2
+ import type { IKey } from 'selenium-webdriver/lib/input.js';
3
+ import type { Worker as ClusterWorker } from 'cluster';
4
+ import type { until, WebDriver, WebElementPromise } from 'selenium-webdriver';
5
+ import type Pixelmatch from 'pixelmatch';
6
+ import type { Context } from 'mocha';
7
+ import type { expect } from 'chai';
8
+ export type DiffOptions = typeof Pixelmatch extends (x1: any, x2: any, x3: any, x4: any, x5: any, options?: infer T) => void ? T : never;
9
+ export interface SetStoriesData {
10
+ v?: number;
11
+ globalParameters: {
12
+ creevey?: CreeveyStoryParams;
13
+ };
14
+ kindParameters: Partial<Record<string, {
15
+ fileName: string;
16
+ creevey?: CreeveyStoryParams;
17
+ }>>;
18
+ stories: StoriesRaw;
19
+ }
20
+ export type StoriesRaw = Record<string, StoryContextForEnhancers>;
21
+ export type StoryInput = StoriesRaw extends Record<string, infer S> ? S : never;
22
+ export interface StoryMeta {
23
+ title: string;
24
+ component?: unknown;
25
+ decorators?: DecoratorFunction[];
26
+ parameters?: {
27
+ creevey?: CreeveyStoryParams;
28
+ [name: string]: unknown;
29
+ };
30
+ }
31
+ export interface CreeveyMeta {
32
+ parameters?: {
33
+ creevey?: CreeveyStoryParams;
34
+ [name: string]: unknown;
35
+ };
36
+ }
37
+ export interface CSFStory<StoryFnReturnType = unknown> {
38
+ (): StoryFnReturnType;
39
+ /**
40
+ * @deprecated
41
+ * CSF .story annotations deprecated; annotate story functions directly:
42
+ * - StoryFn.story.name => StoryFn.storyName
43
+ * - StoryFn.story.(parameters|decorators) => StoryFn.(parameters|decorators)
44
+ * See https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#hoisted-csf-annotations for details and codemod.
45
+ */
46
+ story?: {
47
+ name?: string;
48
+ decorators?: DecoratorFunction[];
49
+ parameters?: {
50
+ creevey?: CreeveyStoryParams;
51
+ [name: string]: unknown;
52
+ };
53
+ };
54
+ storyName?: string;
55
+ decorators?: DecoratorFunction[];
56
+ parameters?: {
57
+ creevey?: CreeveyStoryParams;
58
+ [name: string]: unknown;
59
+ };
60
+ }
61
+ export interface CreeveyStory {
62
+ parameters?: {
63
+ creevey?: CreeveyStoryParams;
64
+ [name: string]: unknown;
65
+ };
66
+ }
67
+ export interface Capabilities {
68
+ browserName: string;
69
+ browserVersion?: string;
70
+ platformName?: string;
71
+ /**
72
+ * @deprecated use `browserVersion` instead
73
+ */
74
+ version?: string;
75
+ [prop: string]: unknown;
76
+ }
77
+ export type BrowserConfig = Capabilities & {
78
+ limit?: number;
79
+ gridUrl?: string;
80
+ storybookUrl?: string;
81
+ /**
82
+ * Storybook's globals to set in a specific browser
83
+ * @see https://github.com/storybookjs/storybook/blob/v6.0.0/docs/essentials/toolbars-and-globals.md
84
+ */
85
+ _storybookGlobals?: StorybookGlobals;
86
+ /**
87
+ * Specify custom docker image. Used only with `useDocker == true`
88
+ * @default `selenoid/${browserName}:${browserVersion ?? 'latest'}`
89
+ */
90
+ dockerImage?: string;
91
+ /**
92
+ * Command to start standalone webdriver
93
+ * Used only with `useDocker == false`
94
+ */
95
+ webdriverCommand?: string[];
96
+ viewport?: {
97
+ width: number;
98
+ height: number;
99
+ };
100
+ };
101
+ export type StorybookGlobals = Record<string, unknown>;
102
+ export type Browser = boolean | string | BrowserConfig;
103
+ export interface HookConfig {
104
+ before?: () => unknown;
105
+ after?: () => unknown;
106
+ }
107
+ export interface DockerAuth {
108
+ key?: string;
109
+ username?: string;
110
+ password?: string;
111
+ auth?: string;
112
+ email?: string;
113
+ serveraddress?: string;
114
+ }
115
+ export interface Config {
116
+ /**
117
+ * Url to Selenium grid hub or standalone selenium.
118
+ * By default creevey will use docker containers
119
+ */
120
+ gridUrl: string;
121
+ /**
122
+ * Url where storybook hosted on
123
+ * @default 'http://localhost:6006'
124
+ */
125
+ storybookUrl: string;
126
+ /**
127
+ * Url where storybook hosted on
128
+ */
129
+ resolveStorybookUrl?: () => Promise<string>;
130
+ /**
131
+ * Absolute path to directory with reference images
132
+ * @default path.join(process.cwd(), './images')
133
+ */
134
+ screenDir: string;
135
+ /**
136
+ * Absolute path where test reports and diff images would be saved
137
+ * @default path.join(process.cwd(), './report')
138
+ */
139
+ reportDir: string;
140
+ /**
141
+ * How much test would be retried
142
+ * @default 0
143
+ */
144
+ maxRetries: number;
145
+ /**
146
+ * Define pixelmatch diff options
147
+ * @default { threshold: 0, includeAA: true }
148
+ */
149
+ diffOptions: DiffOptions;
150
+ /**
151
+ * Browser capabilities
152
+ * @default { chrome: true }
153
+ */
154
+ browsers: Record<string, Browser>;
155
+ /**
156
+ * Hooks that allow run custom script before and after creevey start
157
+ */
158
+ hooks: HookConfig;
159
+ /**
160
+ * Creevey automatically download latest selenoid binary. You can define path to different verison.
161
+ * Works only with `useDocker == false`
162
+ */
163
+ selenoidPath?: string;
164
+ /**
165
+ * Creevey has two built-in stories providers.
166
+ *
167
+ * `nodejsStoriesProvider` - The first one is used by default except if CSFv3 is enabled in Storybook.
168
+ * This provider builds and runs storybook in nodejs env, that allows write interaction tests by using Selenium API.
169
+ * The downside is it depends from project build specific and slightly increases init time.
170
+ *
171
+ * `browserStoriesProvider` - The second one is used by default with CSFv3 storybook feature.
172
+ * It load stories from storybook which is running in browser, like storyshots or loki do it.
173
+ * The downside of this, you can't use interaction tests in Creevey, unless you use CSFv3.
174
+ * Where you can define `play` method for each story
175
+ *
176
+ * Usage
177
+ * ``` typescript
178
+ * import { nodejsStoriesProvider as provider } from 'creevey'
179
+ * // or
180
+ * import { browserStoriesProvider as provider } from 'creevey'
181
+ *
182
+ * // Creevey config
183
+ * module.exports = {
184
+ * storiesProvider: provider
185
+ * }
186
+ * ```
187
+ */
188
+ storiesProvider: StoriesProvider;
189
+ /**
190
+ * Define custom babel options for load stories transformation
191
+ */
192
+ babelOptions: (options: Record<string, unknown>) => Record<string, unknown>;
193
+ /**
194
+ * Allows you to start selenoid without docker
195
+ * and use standalone browsers
196
+ * @default true
197
+ */
198
+ useDocker: boolean;
199
+ /**
200
+ * Custom selenoid docker image
201
+ * @default 'aerokube/selenoid:latest-release'
202
+ */
203
+ dockerImage: string;
204
+ /**
205
+ * Should Creevey pull docker images or use local ones
206
+ * @default true
207
+ */
208
+ pullImages: boolean;
209
+ /**
210
+ * Define auth config for private docker registry
211
+ */
212
+ dockerAuth?: DockerAuth;
213
+ /**
214
+ * Enable to stop tests running right after the first failed test.
215
+ * The `--ui` CLI option ignores this option
216
+ */
217
+ failFast: boolean;
218
+ /**
219
+ * Specify platform for docker images
220
+ */
221
+ dockerImagePlatform: string;
222
+ testsRegex?: RegExp;
223
+ testsDir?: string;
224
+ tsConfig?: string;
225
+ /**
226
+ * Telemetry contains information about Creevey and Storybook versions, used Creevey config, browsers and tests meta.
227
+ * It's being sent only for projects from git.skbkontur.ru
228
+ * @default false
229
+ */
230
+ disableTelemetry?: boolean;
231
+ }
232
+ export interface StoriesProvider<T = any> {
233
+ (config: Config, options: T, storiesListener: (stories: Map<string, StoryInput[]>) => void): Promise<StoriesRaw>;
234
+ providerName?: string;
235
+ }
236
+ export type CreeveyConfig = Partial<Config>;
237
+ export interface Options {
238
+ _: string[];
239
+ config?: string;
240
+ port: number;
241
+ ui: boolean;
242
+ update: boolean | string;
243
+ debug: boolean;
244
+ trace: boolean;
245
+ tests: boolean;
246
+ browser?: string;
247
+ reporter?: string;
248
+ screenDir?: string;
249
+ reportDir?: string;
250
+ storybookUrl?: string;
251
+ saveReport: boolean;
252
+ failFast?: boolean;
253
+ }
254
+ export type WorkerMessage = {
255
+ type: 'ready';
256
+ payload?: never;
257
+ } | {
258
+ type: 'error';
259
+ payload: {
260
+ error: string;
261
+ };
262
+ };
263
+ export type StoriesMessage = {
264
+ type: 'get';
265
+ payload?: never;
266
+ } | {
267
+ type: 'set';
268
+ payload: {
269
+ stories: StoriesRaw;
270
+ oldTests: string[];
271
+ };
272
+ } | {
273
+ type: 'update';
274
+ payload: [string, StoryInput[]][];
275
+ } | {
276
+ type: 'capture';
277
+ payload?: CaptureOptions;
278
+ };
279
+ export type TestMessage = {
280
+ type: 'start';
281
+ payload: {
282
+ id: string;
283
+ path: string[];
284
+ retries: number;
285
+ };
286
+ } | {
287
+ type: 'end';
288
+ payload: TestResult;
289
+ };
290
+ export type WebpackMessage = {
291
+ type: 'success';
292
+ payload?: never;
293
+ } | {
294
+ type: 'fail';
295
+ payload?: never;
296
+ } | {
297
+ type: 'rebuild succeeded';
298
+ payload?: never;
299
+ } | {
300
+ type: 'rebuild failed';
301
+ payload?: never;
302
+ };
303
+ export type DockerMessage = {
304
+ type: 'start';
305
+ payload?: never;
306
+ } | {
307
+ type: 'success';
308
+ payload: {
309
+ gridUrl: string;
310
+ };
311
+ };
312
+ export type ShutdownMessage = object;
313
+ export type ProcessMessage = (WorkerMessage & {
314
+ scope: 'worker';
315
+ }) | (StoriesMessage & {
316
+ scope: 'stories';
317
+ }) | (TestMessage & {
318
+ scope: 'test';
319
+ }) | (WebpackMessage & {
320
+ scope: 'webpack';
321
+ }) | (DockerMessage & {
322
+ scope: 'docker';
323
+ }) | (ShutdownMessage & {
324
+ scope: 'shutdown';
325
+ });
326
+ export type WorkerHandler = (message: WorkerMessage) => void;
327
+ export type StoriesHandler = (message: StoriesMessage) => void;
328
+ export type TestHandler = (message: TestMessage) => void;
329
+ export type WebpackHandler = (message: WebpackMessage) => void;
330
+ export type DockerHandler = (message: DockerMessage) => void;
331
+ export type ShutdownHandler = (message: ShutdownMessage) => void;
332
+ export interface Worker extends ClusterWorker {
333
+ isRunning?: boolean;
334
+ }
335
+ export interface Images {
336
+ actual: string;
337
+ expect?: string;
338
+ diff?: string;
339
+ error?: string;
340
+ }
341
+ export type TestStatus = 'unknown' | 'pending' | 'running' | 'failed' | 'approved' | 'success' | 'retrying';
342
+ export interface TestResult {
343
+ status: 'failed' | 'success';
344
+ images?: Partial<Record<string, Images>>;
345
+ error?: string;
346
+ }
347
+ export interface ImagesError extends Error {
348
+ images: string | Partial<Record<string, string>>;
349
+ }
350
+ export interface TestMeta {
351
+ id: string;
352
+ storyPath: string[];
353
+ browser: string;
354
+ testName?: string;
355
+ storyId: string;
356
+ }
357
+ export interface TestData extends TestMeta {
358
+ skip?: boolean | string;
359
+ retries?: number;
360
+ status?: TestStatus;
361
+ results?: TestResult[];
362
+ approved?: Partial<Record<string, number>> | null;
363
+ }
364
+ export interface ServerTest extends TestData {
365
+ story: StoryInput;
366
+ fn: (this: Context) => Promise<void>;
367
+ }
368
+ export interface CreeveyStatus {
369
+ isRunning: boolean;
370
+ tests: Partial<Record<string, TestData>>;
371
+ browsers: string[];
372
+ }
373
+ export interface CreeveyUpdate {
374
+ isRunning?: boolean;
375
+ tests?: Partial<Record<string, TestData>>;
376
+ removedTests?: TestMeta[];
377
+ }
378
+ export interface SkipOption {
379
+ in?: string | string[] | RegExp;
380
+ kinds?: string | string[] | RegExp;
381
+ stories?: string | string[] | RegExp;
382
+ tests?: string | string[] | RegExp;
383
+ }
384
+ export type SkipOptions = boolean | string | Record<string, SkipOption | SkipOption[]>;
385
+ export interface CreeveyTestController {
386
+ browser: WebDriver;
387
+ until: typeof until;
388
+ keys: IKey;
389
+ expect: typeof expect;
390
+ takeScreenshot: () => Promise<string>;
391
+ updateStoryArgs: (updatedArgs: Record<string, unknown>) => Promise<void>;
392
+ readonly captureElement?: WebElementPromise;
393
+ }
394
+ export type CreeveyTestFunction = (this: CreeveyTestController) => Promise<void>;
395
+ export interface CaptureOptions {
396
+ imageName?: string;
397
+ captureElement?: string | null;
398
+ ignoreElements?: string | string[] | null;
399
+ }
400
+ export interface CreeveyStoryParams extends CaptureOptions {
401
+ waitForReady?: boolean;
402
+ delay?: number | {
403
+ for: string[];
404
+ ms: number;
405
+ };
406
+ skip?: SkipOptions;
407
+ tests?: Record<string, CreeveyTestFunction>;
408
+ }
409
+ export interface ApprovePayload {
410
+ id: string;
411
+ retry: number;
412
+ image: string;
413
+ }
414
+ export type Request = {
415
+ type: 'status';
416
+ } | {
417
+ type: 'start';
418
+ payload: string[];
419
+ } | {
420
+ type: 'stop';
421
+ } | {
422
+ type: 'approve';
423
+ payload: ApprovePayload;
424
+ } | {
425
+ type: 'approveAll';
426
+ };
427
+ export type Response = {
428
+ type: 'status';
429
+ payload: CreeveyStatus;
430
+ } | {
431
+ type: 'update';
432
+ payload: CreeveyUpdate;
433
+ } | {
434
+ type: 'capture';
435
+ };
436
+ export interface CreeveyTest extends TestData {
437
+ checked: boolean;
438
+ }
439
+ export interface CreeveySuite {
440
+ path: string[];
441
+ skip: boolean;
442
+ status?: TestStatus;
443
+ opened: boolean;
444
+ checked: boolean;
445
+ indeterminate: boolean;
446
+ children: Partial<Record<string, CreeveySuite | CreeveyTest>>;
447
+ }
448
+ export type ImagesViewMode = 'side-by-side' | 'swap' | 'slide' | 'blend';
449
+ export declare function noop(): void;
450
+ export declare function isDefined<T>(value: T | null | undefined): value is T;
451
+ export declare function isTest(x?: CreeveySuite | CreeveyTest): x is CreeveyTest;
452
+ export declare function isObject(x: unknown): x is Record<string, unknown>;
453
+ export declare function isString(x: unknown): x is string;
454
+ export declare function isFunction(x: unknown): x is (...args: any[]) => any;
455
+ export declare function isImageError(error: unknown): error is ImagesError;
456
+ export declare function isProcessMessage(message: unknown): message is ProcessMessage;
457
+ export declare function isWorkerMessage(message: unknown): message is WorkerMessage;
458
+ export declare function isStoriesMessage(message: unknown): message is StoriesMessage;
459
+ export declare function isTestMessage(message: unknown): message is TestMessage;
460
+ export declare function isWebpackMessage(message: unknown): message is WebpackMessage;
461
+ export declare function isDockerMessage(message: unknown): message is DockerMessage;