creevey 0.9.0-non-webpack.2 → 0.9.0

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 (533) hide show
  1. package/.yarnrc.yml +1 -0
  2. package/AUTHORS +15 -15
  3. package/CHANGELOG.md +1326 -1275
  4. package/LICENSE +21 -21
  5. package/README.md +4 -3
  6. package/dist/cli.d.ts +2 -0
  7. package/dist/cli.js +5 -0
  8. package/dist/cli.js.map +1 -0
  9. package/dist/client/addon/components/Addon.d.ts +8 -0
  10. package/dist/client/addon/components/Addon.js +57 -0
  11. package/dist/client/addon/components/Addon.js.map +1 -0
  12. package/{lib/types → dist}/client/addon/components/Icons.d.ts +7 -7
  13. package/dist/client/addon/components/Icons.js +18 -0
  14. package/dist/client/addon/components/Icons.js.map +1 -0
  15. package/{lib/types → dist}/client/addon/components/Panel.d.ts +9 -9
  16. package/dist/client/addon/components/Panel.js +32 -0
  17. package/dist/client/addon/components/Panel.js.map +1 -0
  18. package/{lib/types → dist}/client/addon/components/TestSelect.d.ts +8 -8
  19. package/dist/client/addon/components/TestSelect.js +33 -0
  20. package/dist/client/addon/components/TestSelect.js.map +1 -0
  21. package/dist/client/addon/components/Tools.d.ts +6 -0
  22. package/dist/client/addon/components/Tools.js +89 -0
  23. package/dist/client/addon/components/Tools.js.map +1 -0
  24. package/{lib/types/client/addon/Manager.d.ts → dist/client/addon/controller.d.ts} +38 -37
  25. package/dist/client/addon/controller.js +208 -0
  26. package/dist/client/addon/controller.js.map +1 -0
  27. package/dist/client/addon/decorator.d.ts +1 -0
  28. package/dist/client/addon/decorator.js +6 -0
  29. package/dist/client/addon/decorator.js.map +1 -0
  30. package/dist/client/addon/index.d.ts +2 -0
  31. package/dist/client/addon/index.js +19 -0
  32. package/dist/client/addon/index.js.map +1 -0
  33. package/dist/client/addon/manager.d.ts +1 -0
  34. package/dist/client/addon/manager.js +41 -0
  35. package/dist/client/addon/manager.js.map +1 -0
  36. package/dist/client/addon/preset.d.ts +2 -0
  37. package/dist/client/addon/preset.js +6 -0
  38. package/dist/client/addon/preset.js.map +1 -0
  39. package/dist/client/addon/preview.d.ts +4 -0
  40. package/dist/client/addon/preview.js +8 -0
  41. package/dist/client/addon/preview.js.map +1 -0
  42. package/{lib/types → dist}/client/addon/readyForCapture.d.ts +6 -6
  43. package/dist/client/addon/readyForCapture.js +7 -0
  44. package/dist/client/addon/readyForCapture.js.map +1 -0
  45. package/{lib/types → dist}/client/addon/utils.d.ts +3 -2
  46. package/dist/client/addon/utils.js +27 -0
  47. package/dist/client/addon/utils.js.map +1 -0
  48. package/{lib/types → dist}/client/addon/withCreevey.d.ts +25 -24
  49. package/dist/client/addon/withCreevey.js +286 -0
  50. package/dist/client/addon/withCreevey.js.map +1 -0
  51. package/dist/client/shared/components/ImagesView/BlendView.d.ts +5 -0
  52. package/dist/client/shared/components/ImagesView/BlendView.js +74 -0
  53. package/dist/client/shared/components/ImagesView/BlendView.js.map +1 -0
  54. package/dist/client/shared/components/ImagesView/ImagesView.d.ts +9 -0
  55. package/dist/client/shared/components/ImagesView/ImagesView.js +46 -0
  56. package/dist/client/shared/components/ImagesView/ImagesView.js.map +1 -0
  57. package/dist/client/shared/components/ImagesView/SideBySideView.d.ts +5 -0
  58. package/dist/client/shared/components/ImagesView/SideBySideView.js +121 -0
  59. package/dist/client/shared/components/ImagesView/SideBySideView.js.map +1 -0
  60. package/dist/client/shared/components/ImagesView/SlideView.d.ts +5 -0
  61. package/dist/client/shared/components/ImagesView/SlideView.js +136 -0
  62. package/dist/client/shared/components/ImagesView/SlideView.js.map +1 -0
  63. package/dist/client/shared/components/ImagesView/SwapView.d.ts +5 -0
  64. package/dist/client/shared/components/ImagesView/SwapView.js +72 -0
  65. package/dist/client/shared/components/ImagesView/SwapView.js.map +1 -0
  66. package/{lib/types/client/shared/components/ImagesView/ImagesView.d.ts → dist/client/shared/components/ImagesView/common.d.ts} +15 -24
  67. package/dist/client/shared/components/ImagesView/common.js +14 -0
  68. package/dist/client/shared/components/ImagesView/common.js.map +1 -0
  69. package/dist/client/shared/components/ImagesView/index.d.ts +5 -0
  70. package/dist/client/shared/components/ImagesView/index.js +14 -0
  71. package/dist/client/shared/components/ImagesView/index.js.map +1 -0
  72. package/{lib/types → dist}/client/shared/components/PageFooter/PageFooter.d.ts +8 -8
  73. package/dist/client/shared/components/PageFooter/PageFooter.js +25 -0
  74. package/dist/client/shared/components/PageFooter/PageFooter.js.map +1 -0
  75. package/{lib/types → dist}/client/shared/components/PageFooter/Paging.d.ts +7 -7
  76. package/dist/client/shared/components/PageFooter/Paging.js +68 -0
  77. package/dist/client/shared/components/PageFooter/Paging.js.map +1 -0
  78. package/{lib/types → dist}/client/shared/components/PageHeader/ImagePreview.d.ts +14 -12
  79. package/dist/client/shared/components/PageHeader/ImagePreview.js +61 -0
  80. package/dist/client/shared/components/PageHeader/ImagePreview.js.map +1 -0
  81. package/{lib/types → dist}/client/shared/components/PageHeader/PageHeader.d.ts +14 -16
  82. package/dist/client/shared/components/PageHeader/PageHeader.js +86 -0
  83. package/dist/client/shared/components/PageHeader/PageHeader.js.map +1 -0
  84. package/{lib/types → dist}/client/shared/components/ResultsPage.d.ts +18 -18
  85. package/dist/client/shared/components/ResultsPage.js +95 -0
  86. package/dist/client/shared/components/ResultsPage.js.map +1 -0
  87. package/{lib/types → dist}/client/shared/creeveyClientApi.d.ts +9 -9
  88. package/dist/client/shared/creeveyClientApi.js +53 -0
  89. package/dist/client/shared/creeveyClientApi.js.map +1 -0
  90. package/{lib/types → dist}/client/shared/helpers.d.ts +46 -46
  91. package/dist/client/shared/helpers.js +381 -0
  92. package/dist/client/shared/helpers.js.map +1 -0
  93. package/{lib/types → dist}/client/shared/viewMode.d.ts +4 -4
  94. package/dist/client/shared/viewMode.js +11 -0
  95. package/dist/client/shared/viewMode.js.map +1 -0
  96. package/dist/client/web/202.js +1 -0
  97. package/dist/client/web/270.js +43 -0
  98. package/dist/client/web/752.js +1 -0
  99. package/{lib/types → dist}/client/web/CreeveyApp.d.ts +11 -11
  100. package/dist/client/web/CreeveyApp.js +130 -0
  101. package/dist/client/web/CreeveyApp.js.map +1 -0
  102. package/{lib/types → dist}/client/web/CreeveyContext.d.ts +11 -11
  103. package/dist/client/web/CreeveyContext.js +17 -0
  104. package/dist/client/web/CreeveyContext.js.map +1 -0
  105. package/dist/client/web/CreeveyLoader.d.ts +3 -0
  106. package/dist/client/web/CreeveyLoader.js +52 -0
  107. package/dist/client/web/CreeveyLoader.js.map +1 -0
  108. package/{lib/types → dist}/client/web/CreeveyView/SideBar/Checkbox.d.ts +22 -19
  109. package/dist/client/web/CreeveyView/SideBar/Checkbox.js +86 -0
  110. package/dist/client/web/CreeveyView/SideBar/Checkbox.js.map +1 -0
  111. package/{lib/types → dist}/client/web/CreeveyView/SideBar/Search.d.ts +6 -6
  112. package/dist/client/web/CreeveyView/SideBar/Search.js +125 -0
  113. package/dist/client/web/CreeveyView/SideBar/Search.js.map +1 -0
  114. package/{lib/types → dist}/client/web/CreeveyView/SideBar/SideBar.d.ts +14 -14
  115. package/dist/client/web/CreeveyView/SideBar/SideBar.js +101 -0
  116. package/dist/client/web/CreeveyView/SideBar/SideBar.js.map +1 -0
  117. package/{lib/types → dist}/client/web/CreeveyView/SideBar/SideBarHeader.d.ts +12 -12
  118. package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js +113 -0
  119. package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js.map +1 -0
  120. package/dist/client/web/CreeveyView/SideBar/SuiteLink.d.ts +38 -0
  121. package/dist/client/web/CreeveyView/SideBar/SuiteLink.js +108 -0
  122. package/dist/client/web/CreeveyView/SideBar/SuiteLink.js.map +1 -0
  123. package/{lib/types → dist}/client/web/CreeveyView/SideBar/TestLink.d.ts +7 -7
  124. package/dist/client/web/CreeveyView/SideBar/TestLink.js +63 -0
  125. package/dist/client/web/CreeveyView/SideBar/TestLink.js.map +1 -0
  126. package/{lib/types → dist}/client/web/CreeveyView/SideBar/TestStatusIcon.d.ts +12 -10
  127. package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.js +52 -0
  128. package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.js.map +1 -0
  129. package/dist/client/web/CreeveyView/SideBar/TestsStatus.d.ts +11 -0
  130. package/dist/client/web/CreeveyView/SideBar/TestsStatus.js +74 -0
  131. package/dist/client/web/CreeveyView/SideBar/TestsStatus.js.map +1 -0
  132. package/{lib/types → dist}/client/web/CreeveyView/SideBar/Toggle.d.ts +6 -6
  133. package/dist/client/web/CreeveyView/SideBar/Toggle.js +69 -0
  134. package/dist/client/web/CreeveyView/SideBar/Toggle.js.map +1 -0
  135. package/dist/client/web/CreeveyView/SideBar/index.d.ts +1 -0
  136. package/dist/client/web/CreeveyView/SideBar/index.js +6 -0
  137. package/dist/client/web/CreeveyView/SideBar/index.js.map +1 -0
  138. package/{lib/types → dist}/client/web/KeyboardEventsContext.d.ts +15 -13
  139. package/dist/client/web/KeyboardEventsContext.js +116 -0
  140. package/dist/client/web/KeyboardEventsContext.js.map +1 -0
  141. package/{lib/types → dist}/client/web/index.d.ts +4 -4
  142. package/{lib/cjs → dist}/client/web/index.html +28 -19
  143. package/dist/client/web/index.js +75 -0
  144. package/dist/client/web/index.js.map +1 -0
  145. package/dist/client/web/main.js +79 -0
  146. package/{lib/cjs → dist}/client/web/main.js.LICENSE.txt +0 -15
  147. package/{lib/types → dist}/creevey.d.ts +1 -1
  148. package/dist/creevey.js +52 -0
  149. package/dist/creevey.js.map +1 -0
  150. package/dist/index.d.ts +5 -0
  151. package/dist/index.js +24 -0
  152. package/dist/index.js.map +1 -0
  153. package/{lib/types → dist}/server/config.d.ts +4 -4
  154. package/dist/server/config.js +86 -0
  155. package/dist/server/config.js.map +1 -0
  156. package/{lib/types → dist}/server/docker.d.ts +7 -7
  157. package/dist/server/docker.js +122 -0
  158. package/dist/server/docker.js.map +1 -0
  159. package/{lib/types → dist}/server/index.d.ts +2 -2
  160. package/dist/server/index.js +47 -0
  161. package/dist/server/index.js.map +1 -0
  162. package/{lib/types → dist}/server/logger.d.ts +10 -10
  163. package/dist/server/logger.js +25 -0
  164. package/dist/server/logger.js.map +1 -0
  165. package/{lib/types → dist}/server/master/api.d.ts +7 -7
  166. package/dist/server/master/api.js +50 -0
  167. package/dist/server/master/api.js.map +1 -0
  168. package/dist/server/master/index.d.ts +3 -0
  169. package/dist/server/master/index.js +110 -0
  170. package/dist/server/master/index.js.map +1 -0
  171. package/{lib/types → dist}/server/master/master.d.ts +7 -7
  172. package/dist/server/master/master.js +40 -0
  173. package/dist/server/master/master.js.map +1 -0
  174. package/{lib/types → dist}/server/master/pool.d.ts +30 -31
  175. package/dist/server/master/pool.js +186 -0
  176. package/dist/server/master/pool.js.map +1 -0
  177. package/{lib/types → dist}/server/master/runner.d.ts +21 -26
  178. package/dist/server/master/runner.js +172 -0
  179. package/dist/server/master/runner.js.map +1 -0
  180. package/dist/server/master/server.d.ts +2 -0
  181. package/dist/server/master/server.js +114 -0
  182. package/dist/server/master/server.js.map +1 -0
  183. package/{lib/types → dist}/server/messages.d.ts +26 -27
  184. package/dist/server/messages.js +222 -0
  185. package/dist/server/messages.js.map +1 -0
  186. package/{lib/types → dist}/server/selenium/browser.d.ts +19 -17
  187. package/dist/server/selenium/browser.js +637 -0
  188. package/dist/server/selenium/browser.js.map +1 -0
  189. package/dist/server/selenium/index.d.ts +2 -0
  190. package/dist/server/selenium/index.js +19 -0
  191. package/dist/server/selenium/index.js.map +1 -0
  192. package/{lib/types → dist}/server/selenium/selenoid.d.ts +3 -3
  193. package/dist/server/selenium/selenoid.js +120 -0
  194. package/dist/server/selenium/selenoid.js.map +1 -0
  195. package/dist/server/stories.d.ts +3 -0
  196. package/dist/server/stories.js +92 -0
  197. package/dist/server/stories.js.map +1 -0
  198. package/dist/server/storybook/providers/browser.d.ts +2 -0
  199. package/dist/server/storybook/providers/browser.js +60 -0
  200. package/dist/server/storybook/providers/browser.js.map +1 -0
  201. package/dist/server/storybook/providers/hybrid.d.ts +2 -0
  202. package/dist/server/storybook/providers/hybrid.js +59 -0
  203. package/dist/server/storybook/providers/hybrid.js.map +1 -0
  204. package/dist/server/telemetry.d.ts +2 -0
  205. package/dist/server/telemetry.js +196 -0
  206. package/dist/server/telemetry.js.map +1 -0
  207. package/{lib/types → dist}/server/testsFiles/parser.d.ts +8 -12
  208. package/dist/server/testsFiles/parser.js +50 -0
  209. package/dist/server/testsFiles/parser.js.map +1 -0
  210. package/dist/server/update.d.ts +2 -0
  211. package/dist/server/update.js +53 -0
  212. package/dist/server/update.js.map +1 -0
  213. package/dist/server/utils.d.ts +25 -0
  214. package/dist/server/utils.js +157 -0
  215. package/dist/server/utils.js.map +1 -0
  216. package/{lib/types → dist}/server/worker/chai-image.d.ts +5 -6
  217. package/dist/server/worker/chai-image.js +113 -0
  218. package/dist/server/worker/chai-image.js.map +1 -0
  219. package/{lib/types → dist}/server/worker/helpers.d.ts +8 -8
  220. package/dist/server/worker/helpers.js +57 -0
  221. package/dist/server/worker/helpers.js.map +1 -0
  222. package/dist/server/worker/index.d.ts +1 -0
  223. package/dist/server/worker/index.js +6 -0
  224. package/dist/server/worker/index.js.map +1 -0
  225. package/{lib/types → dist}/server/worker/reporter.d.ts +8 -8
  226. package/dist/server/worker/reporter.js +130 -0
  227. package/dist/server/worker/reporter.js.map +1 -0
  228. package/dist/server/worker/worker.d.ts +4 -0
  229. package/dist/server/worker/worker.js +211 -0
  230. package/dist/server/worker/worker.js.map +1 -0
  231. package/{lib/types → dist}/shared/index.d.ts +7 -7
  232. package/dist/shared/index.js +77 -0
  233. package/dist/shared/index.js.map +1 -0
  234. package/{lib/types → dist}/shared/serializeRegExp.d.ts +9 -9
  235. package/dist/shared/serializeRegExp.js +25 -0
  236. package/dist/shared/serializeRegExp.js.map +1 -0
  237. package/{lib/types → dist}/types.d.ts +459 -490
  238. package/dist/types.js +61 -0
  239. package/dist/types.js.map +1 -0
  240. package/docs/config.md +212 -212
  241. package/docs/grid.md +10 -10
  242. package/docs/tests.md +63 -63
  243. package/manager/package.json +3 -0
  244. package/package.json +115 -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 +53 -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 +44 -0
  272. package/src/client/shared/components/PageFooter/Paging.tsx +105 -0
  273. package/src/client/shared/components/PageHeader/ImagePreview.tsx +82 -0
  274. package/src/client/shared/components/PageHeader/PageHeader.tsx +123 -0
  275. package/src/client/shared/components/ResultsPage.tsx +135 -0
  276. package/src/client/shared/creeveyClientApi.ts +64 -0
  277. package/src/client/shared/helpers.ts +422 -0
  278. package/src/client/shared/viewMode.ts +10 -0
  279. package/src/client/web/CreeveyApp.tsx +177 -0
  280. package/src/client/web/CreeveyContext.tsx +20 -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 +125 -0
  285. package/src/client/web/CreeveyView/SideBar/SideBarHeader.tsx +138 -0
  286. package/src/client/web/CreeveyView/SideBar/SuiteLink.tsx +118 -0
  287. package/src/client/web/CreeveyView/SideBar/TestLink.tsx +67 -0
  288. package/src/client/web/CreeveyView/SideBar/TestStatusIcon.tsx +58 -0
  289. package/src/client/web/CreeveyView/SideBar/TestsStatus.tsx +105 -0
  290. package/src/client/web/CreeveyView/SideBar/Toggle.tsx +85 -0
  291. package/src/client/web/CreeveyView/SideBar/index.ts +1 -0
  292. package/src/client/web/KeyboardEventsContext.tsx +121 -0
  293. package/src/client/web/index.html +28 -0
  294. package/src/client/web/index.tsx +63 -0
  295. package/src/creevey.ts +47 -0
  296. package/src/index.ts +4 -0
  297. package/src/server/config.ts +83 -0
  298. package/src/server/docker.ts +136 -0
  299. package/src/server/index.ts +51 -0
  300. package/{lib/esm/server/logger.js → src/server/logger.ts} +8 -7
  301. package/src/server/master/api.ts +55 -0
  302. package/src/server/master/index.ts +111 -0
  303. package/src/server/master/master.ts +47 -0
  304. package/src/server/master/pool.ts +203 -0
  305. package/src/server/master/runner.ts +189 -0
  306. package/src/server/master/server.ts +124 -0
  307. package/src/server/messages.ts +273 -0
  308. package/src/server/selenium/browser.ts +837 -0
  309. package/src/server/selenium/index.ts +2 -0
  310. package/src/server/selenium/selenoid.ts +154 -0
  311. package/src/server/stories.ts +133 -0
  312. package/src/server/storybook/providers/browser.ts +58 -0
  313. package/src/server/storybook/providers/hybrid.ts +70 -0
  314. package/src/server/telemetry.ts +212 -0
  315. package/src/server/testsFiles/parser.ts +62 -0
  316. package/src/server/update.ts +74 -0
  317. package/src/server/utils.ts +206 -0
  318. package/src/server/worker/chai-image.ts +147 -0
  319. package/src/server/worker/helpers.ts +61 -0
  320. package/src/server/worker/index.ts +1 -0
  321. package/src/server/worker/reporter.ts +170 -0
  322. package/src/server/worker/worker.ts +239 -0
  323. package/src/shared/index.ts +76 -0
  324. package/src/shared/serializeRegExp.ts +26 -0
  325. package/src/types.ts +500 -0
  326. package/types/chai.d.ts +11 -12
  327. package/types/global.d.ts +5 -0
  328. package/types/mocha.d.ts +20 -20
  329. package/types/png.d.ts +4 -4
  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 -351
  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 -325
  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/web/CreeveyLoader.d.ts +0 -2
  500. package/lib/types/client/web/CreeveyView/SideBar/SuiteLink.d.ts +0 -33
  501. package/lib/types/client/web/CreeveyView/SideBar/TestsStatus.d.ts +0 -9
  502. package/lib/types/client/web/CreeveyView/SideBar/index.d.ts +0 -1
  503. package/lib/types/index.d.ts +0 -2
  504. package/lib/types/server/extract.d.ts +0 -2
  505. package/lib/types/server/loaders/babel/creevey-plugin.d.ts +0 -1
  506. package/lib/types/server/loaders/babel/helpers.d.ts +0 -19
  507. package/lib/types/server/loaders/babel/register.d.ts +0 -5
  508. package/lib/types/server/loaders/hooks/mdx.d.ts +0 -1
  509. package/lib/types/server/loaders/hooks/svelte.d.ts +0 -1
  510. package/lib/types/server/loaders/webpack/compile.d.ts +0 -2
  511. package/lib/types/server/loaders/webpack/creevey-loader.d.ts +0 -4
  512. package/lib/types/server/loaders/webpack/dummy-hmr.d.ts +0 -10
  513. package/lib/types/server/loaders/webpack/mdx-loader.d.ts +0 -6
  514. package/lib/types/server/loaders/webpack/start.d.ts +0 -1
  515. package/lib/types/server/master/index.d.ts +0 -3
  516. package/lib/types/server/master/server.d.ts +0 -2
  517. package/lib/types/server/selenium/index.d.ts +0 -2
  518. package/lib/types/server/stories.d.ts +0 -8
  519. package/lib/types/server/storybook/entry.d.ts +0 -18
  520. package/lib/types/server/storybook/helpers.d.ts +0 -24
  521. package/lib/types/server/storybook/providers/browser.d.ts +0 -4
  522. package/lib/types/server/storybook/providers/hybrid.d.ts +0 -4
  523. package/lib/types/server/storybook/providers/nodejs.d.ts +0 -9
  524. package/lib/types/server/testsFiles/register.d.ts +0 -2
  525. package/lib/types/server/update.d.ts +0 -2
  526. package/lib/types/server/utils.d.ts +0 -20
  527. package/lib/types/server/worker/index.d.ts +0 -1
  528. package/lib/types/server/worker/worker.d.ts +0 -4
  529. package/preset.js +0 -9
  530. package/types/babel__register.d.ts +0 -1
  531. package/types/event-source-polyfill.d.ts +0 -6
  532. package/types/mdx.d.ts +0 -7
  533. /package/{addon → manager}/README.md +0 -0
package/dist/types.js ADDED
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.noop = noop;
4
+ exports.isDefined = isDefined;
5
+ exports.isTest = isTest;
6
+ exports.isObject = isObject;
7
+ exports.isString = isString;
8
+ exports.isFunction = isFunction;
9
+ exports.isImageError = isImageError;
10
+ exports.isProcessMessage = isProcessMessage;
11
+ exports.isWorkerMessage = isWorkerMessage;
12
+ exports.isStoriesMessage = isStoriesMessage;
13
+ exports.isTestMessage = isTestMessage;
14
+ exports.isWebpackMessage = isWebpackMessage;
15
+ exports.isDockerMessage = isDockerMessage;
16
+ function noop() {
17
+ /* noop */
18
+ }
19
+ function isDefined(value) {
20
+ return value !== null && value !== undefined;
21
+ }
22
+ function isTest(x) {
23
+ return (isDefined(x) &&
24
+ isObject(x) &&
25
+ 'id' in x &&
26
+ 'storyId' in x &&
27
+ typeof x.id == 'string' &&
28
+ typeof x.storyId == 'string');
29
+ }
30
+ function isObject(x) {
31
+ return typeof x == 'object' && x != null;
32
+ }
33
+ function isString(x) {
34
+ return typeof x == 'string';
35
+ }
36
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
37
+ function isFunction(x) {
38
+ return typeof x == 'function';
39
+ }
40
+ function isImageError(error) {
41
+ return error instanceof Error && 'images' in error;
42
+ }
43
+ function isProcessMessage(message) {
44
+ return isObject(message) && 'scope' in message;
45
+ }
46
+ function isWorkerMessage(message) {
47
+ return isProcessMessage(message) && message.scope == 'worker';
48
+ }
49
+ function isStoriesMessage(message) {
50
+ return isProcessMessage(message) && message.scope == 'stories';
51
+ }
52
+ function isTestMessage(message) {
53
+ return isProcessMessage(message) && message.scope == 'test';
54
+ }
55
+ function isWebpackMessage(message) {
56
+ return isProcessMessage(message) && message.scope == 'webpack';
57
+ }
58
+ function isDockerMessage(message) {
59
+ return isProcessMessage(message) && message.scope == 'docker';
60
+ }
61
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;AAybA,oBAEC;AAED,8BAEC;AAED,wBASC;AAED,4BAEC;AAED,4BAEC;AAGD,gCAEC;AAED,oCAEC;AAED,4CAEC;AAED,0CAEC;AAED,4CAEC;AAED,sCAEC;AAED,4CAEC;AAED,0CAEC;AA1DD,SAAgB,IAAI;IAClB,UAAU;AACZ,CAAC;AAED,SAAgB,SAAS,CAAI,KAA2B;IACtD,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/C,CAAC;AAED,SAAgB,MAAM,CAAC,CAA8B;IACnD,OAAO,CACL,SAAS,CAAC,CAAC,CAAC;QACZ,QAAQ,CAAC,CAAC,CAAC;QACX,IAAI,IAAI,CAAC;QACT,SAAS,IAAI,CAAC;QACd,OAAO,CAAC,CAAC,EAAE,IAAI,QAAQ;QACvB,OAAO,CAAC,CAAC,OAAO,IAAI,QAAQ,CAC7B,CAAC;AACJ,CAAC;AAED,SAAgB,QAAQ,CAAC,CAAU;IACjC,OAAO,OAAO,CAAC,IAAI,QAAQ,IAAI,CAAC,IAAI,IAAI,CAAC;AAC3C,CAAC;AAED,SAAgB,QAAQ,CAAC,CAAU;IACjC,OAAO,OAAO,CAAC,IAAI,QAAQ,CAAC;AAC9B,CAAC;AAED,8DAA8D;AAC9D,SAAgB,UAAU,CAAC,CAAU;IACnC,OAAO,OAAO,CAAC,IAAI,UAAU,CAAC;AAChC,CAAC;AAED,SAAgB,YAAY,CAAC,KAAc;IACzC,OAAO,KAAK,YAAY,KAAK,IAAI,QAAQ,IAAI,KAAK,CAAC;AACrD,CAAC;AAED,SAAgB,gBAAgB,CAAC,OAAgB;IAC/C,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC;AACjD,CAAC;AAED,SAAgB,eAAe,CAAC,OAAgB;IAC9C,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC;AAChE,CAAC;AAED,SAAgB,gBAAgB,CAAC,OAAgB;IAC/C,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC;AACjE,CAAC;AAED,SAAgB,aAAa,CAAC,OAAgB;IAC5C,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC;AAC9D,CAAC;AAED,SAAgB,gBAAgB,CAAC,OAAgB;IAC/C,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC;AACjE,CAAC;AAED,SAAgB,eAAe,CAAC,OAAgB;IAC9C,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC;AAChE,CAAC"}
package/docs/config.md CHANGED
@@ -1,212 +1,212 @@
1
- ## Config/Options
2
-
3
- ### CLI Options
4
-
5
- - `--config` — Specify path to config file. Default `.creevey/config.js` or `creevey.config.js`
6
- - `--ui` — Start runner web server
7
- - `--update` — Approve all images from `report` directory
8
- - `--port` — Specify port for web server. Default `3000`
9
- - `--reportDir` — Path where reports will be stored
10
- - `--screenDir` — Path where reference images are located
11
- - `--debug` — Enable debug output
12
-
13
- ### Creevey config
14
-
15
- In default configuration Creevey take screenshots of `#root` element only for chrome browser in one concurrent instance, to run tests in different browsers or speedup tests and run in parallel, you need to define config file `.creevey/config.js`
16
-
17
- ```ts
18
- module.exports = {
19
- browsers: {
20
- chrome: {
21
- browserName: 'chrome',
22
- // Define initial viewport size
23
- viewport: { width: 1024, height: 720 },
24
- // Increase parallel sessions
25
- limit: 2,
26
- },
27
- firefox: {
28
- browserName: 'firefox',
29
- viewport: { width: 1024, height: 720 },
30
- },
31
- },
32
- };
33
- ```
34
-
35
- ### All possible config options
36
-
37
- :warning: **WARN** :warning: This config is just an example with all possible options. :warning: **WARN** :warning:
38
-
39
- ```ts
40
- const path = require('path');
41
-
42
- module.exports = {
43
- // Specify custom Selenium Grid url (see usage below)
44
- // In most cases you don't need this option
45
- gridUrl: '<gridUrl>/wd/hub',
46
-
47
- // Default Storybook url
48
- storybookUrl: 'http://localhost:6006',
49
-
50
- // Storybook config directory
51
- storybookDir: path.join(__dirname, '.storybook'),
52
-
53
- // Where original images are stored
54
- screenDir: path.join(__dirname, '../images'),
55
-
56
- // Report directory that contains data from previous runs
57
- reportDir: path.join(__dirname, '../report'),
58
-
59
- // Pixelmatch options
60
- diffOptions: { threshold: 0.1 },
61
-
62
- // How many times test should be retried before to consider it as failed
63
- maxRetries: 2,
64
-
65
- // Describe browsers and their options
66
- browsers: {
67
- // Shorthand declarations of browsers
68
- chrome: true,
69
- ff: 'firefox',
70
-
71
- otherChrome: {
72
- browserName: 'chrome',
73
- // Define initial viewport size
74
- viewport: { width: 1024, height: 720 },
75
- // Increase parallel sessions
76
- limit: 2,
77
- /* Also you can define any browser capabilities here */
78
- version: '86.0',
79
- // It's possible to set Storybook's globals
80
- // https://github.com/storybookjs/storybook/blob/v6.0.0/docs/essentials/toolbars-and-globals.md
81
- // NOTE: This is an experimental feature and will be replaced in future
82
- _storybookGlobals: {
83
- myTheme: 'dark',
84
- },
85
- },
86
-
87
- // You can override some global options for specific browser
88
- ie11: {
89
- browserName: 'internet explorer',
90
- // Like user another Selenium Grid url
91
- gridUrl: '<anotherGridUrl>/wd/hub',
92
- // Or use different storybook instance
93
- storybookUrl: 'http://mystoryhost:6007',
94
- // And use you own docker image
95
- // By default Creevey will use selenoid image according browser name and version:
96
- // `selenoid/${browserName}:${version ?? 'latest'}` image
97
- dockerImage: 'microsoft/ie:11.0',
98
- },
99
- },
100
-
101
- // You may want to do something before tests started (for example start browserstack-local)
102
- hooks: {
103
- async before() {
104
- /* ... */
105
- },
106
- async after() {
107
- /* ... */
108
- },
109
- },
110
- };
111
- ```
112
-
113
- ### Storybook parameters
114
-
115
- Also you could define parameters on `global`, `kind` or `story` levels. All these parameters are deeply merged by Storybook for each story. But bear in mind when you define skip option as an array Storybook treats it as primitive value and doesn't merge with other skip options.
116
-
117
- ```tsx
118
- // .storybook/preview.tsx
119
- export const parameters = {
120
- creevey: {
121
- // Skip all *hover tests in IE11 on the global level
122
- skip: {
123
- ie11: { in: 'ie11', tests: /.*hover$/ },
124
- },
125
- },
126
- };
127
- ```
128
-
129
- ```tsx
130
- import React from 'react';
131
- import { Meta, Story } from '@storybook/react';
132
- import { CreeveyMeta, CreeveyStory } from 'creevey';
133
- import MyComponent from './src/components/MyComponent';
134
-
135
- export default {
136
- title: 'MyComponent'
137
- parameters: {
138
- creevey: {
139
- // You could skip some browsers/stories or even specific tests
140
- skip: [
141
- { in: 'ie11', reason: "`MyComponent` doesn't support ie11" },
142
- { in: 'firefox', stories: 'Loading', reason: "Loading stories are flaky in firefox" },
143
- {
144
- in: ['firefox', 'chrome'],
145
- tests: /.*hover$/,
146
- reason: "For some reason `MyComponent` hovering doesn't work correctly",
147
- },
148
- ],
149
- },
150
- },
151
- } as Meta & CreeveyMeta;
152
-
153
- export const Basic: Story & CreeveyStory = () => <MyComponent />;
154
- Basic.parameters = {
155
- creevey: {
156
- captureElement: '.container',
157
- // elements to ignore in capturing screenshot
158
- ignoreElements: ['button', '.local-time'],
159
- // Delay before test starts in ms
160
- delay: 1000,
161
- tests: {
162
- /* ... */
163
- },
164
- },
165
- };
166
- ```
167
-
168
- ### `skip` option examples:
169
-
170
- ```ts
171
- interface SkipOption {
172
- reason?: string;
173
- in?: string | string[] | RegExp;
174
- kinds?: string | string[] | RegExp;
175
- stories?: string | string[] | RegExp;
176
- tests?: string | string[] | RegExp;
177
- }
178
-
179
- type SkipOptions = SkipOption | SkipOption[] | Record<string, SkipOption | SkipOption[]>;
180
- ```
181
-
182
- - Skip all stories for all browsers:
183
- - `skip: true`
184
- - `skip: 'Skip reason message'`
185
- - `skip: { reason: 'Skip reason message' }`
186
- - Skip all stories for specific browsers:
187
- - `skip: { in: 'ie11' }`
188
- - `skip: { in: ['ie11', 'chrome'] }`
189
- - `skip: { in: /^fire.*/ }`
190
- - Skip all stories in specific kinds:
191
- - `skip: { kinds: 'Button' }`
192
- - `skip: { kinds: ['Button', 'Input'] }`
193
- - `skip: { kinds: /.*Modal$/ }`
194
- - Skip all tests in specific stories:
195
- - `skip: { stories: 'simple' }`
196
- - `skip: { stories: ['simple', 'special'] }`
197
- - `skip: { stories: /.*large$/ }`
198
- - Skip specific tests:
199
- - `skip: { tests: 'click' }`
200
- - `skip: { tests: ['hover', 'click'] }`
201
- - `skip: { tests: /^press.*$/ }`
202
- - Multiple skip options:
203
- - as an array `skip: [{ /* ... */ }]`
204
- - as an object
205
- ```
206
- skip: {
207
- foo: { /* ... */ },
208
- bar: { /* ... */ },
209
- }
210
- ```
211
-
212
- NOTE: If you try to skip stories by story name, the storybook name format will be used (For more info see [storybook-export-vs-name-handling](https://storybook.js.org/docs/formats/component-story-format/#storybook-export-vs-name-handling))
1
+ ## Config/Options
2
+
3
+ ### CLI Options
4
+
5
+ - `--config` — Specify path to config file. Default `.creevey/config.js` or `creevey.config.js`
6
+ - `--ui` — Start runner web server
7
+ - `--update` — Approve all images from `report` directory
8
+ - `--port` — Specify port for web server. Default `3000`
9
+ - `--reportDir` — Path where reports will be stored
10
+ - `--screenDir` — Path where reference images are located
11
+ - `--debug` — Enable debug output
12
+
13
+ ### Creevey config
14
+
15
+ In default configuration Creevey take screenshots of `#storybook-root` element only for chrome browser in one concurrent instance, to run tests in different browsers or speedup tests and run in parallel, you need to define config file `.creevey/config.js`
16
+
17
+ ```ts
18
+ module.exports = {
19
+ browsers: {
20
+ chrome: {
21
+ browserName: 'chrome',
22
+ // Define initial viewport size
23
+ viewport: { width: 1024, height: 720 },
24
+ // Increase parallel sessions
25
+ limit: 2,
26
+ },
27
+ firefox: {
28
+ browserName: 'firefox',
29
+ viewport: { width: 1024, height: 720 },
30
+ },
31
+ },
32
+ };
33
+ ```
34
+
35
+ ### All possible config options
36
+
37
+ :warning: **WARN** :warning: This config is just an example with all possible options. :warning: **WARN** :warning:
38
+
39
+ ```ts
40
+ const path = require('path');
41
+
42
+ module.exports = {
43
+ // Specify custom Selenium Grid url (see usage below)
44
+ // In most cases you don't need this option
45
+ gridUrl: '<gridUrl>/wd/hub',
46
+
47
+ // Default Storybook url
48
+ storybookUrl: 'http://localhost:6006',
49
+
50
+ // Where original images are stored
51
+ screenDir: path.join(__dirname, '../images'),
52
+
53
+ // Report directory that contains data from previous runs
54
+ reportDir: path.join(__dirname, '../report'),
55
+
56
+ // Pixelmatch options
57
+ diffOptions: { threshold: 0.1 },
58
+
59
+ // How many times test should be retried before to consider it as failed
60
+ maxRetries: 2,
61
+
62
+ // Describe browsers and their options
63
+ browsers: {
64
+ // Shorthand declarations of browsers
65
+ chrome: true,
66
+ ff: 'firefox',
67
+
68
+ otherChrome: {
69
+ browserName: 'chrome',
70
+ // Define initial viewport size
71
+ viewport: { width: 1024, height: 720 },
72
+ // Increase parallel sessions
73
+ limit: 2,
74
+ /* Also you can define any browser capabilities here */
75
+ version: '86.0',
76
+ // It's possible to set Storybook's globals
77
+ // https://github.com/storybookjs/storybook/blob/v6.0.0/docs/essentials/toolbars-and-globals.md
78
+ // NOTE: This is an experimental feature and will be replaced in future
79
+ _storybookGlobals: {
80
+ myTheme: 'dark',
81
+ },
82
+ },
83
+
84
+ // You can override some global options for specific browser
85
+ ie11: {
86
+ browserName: 'internet explorer',
87
+ // Like user another Selenium Grid url
88
+ gridUrl: '<anotherGridUrl>/wd/hub',
89
+ // Or use different storybook instance
90
+ storybookUrl: 'http://mystoryhost:6007',
91
+ // And use you own docker image
92
+ // By default Creevey will use selenoid image according browser name and version:
93
+ // `selenoid/${browserName}:${version ?? 'latest'}` image
94
+ dockerImage: 'microsoft/ie:11.0',
95
+ },
96
+ },
97
+
98
+ // You may want to do something before tests started (for example start browserstack-local)
99
+ hooks: {
100
+ async before() {
101
+ /* ... */
102
+ },
103
+ async after() {
104
+ /* ... */
105
+ },
106
+ },
107
+ };
108
+ ```
109
+
110
+ ### Storybook parameters
111
+
112
+ Also you could define parameters on `global`, `kind` or `story` levels. All these parameters are deeply merged by Storybook for each story. But bear in mind when you define skip option as an array Storybook treats it as primitive value and doesn't merge with other skip options.
113
+
114
+ ```tsx
115
+ // .storybook/preview.tsx
116
+ export const parameters = {
117
+ creevey: {
118
+ // Skip all *hover tests in IE11 on the global level
119
+ skip: {
120
+ "hovers don't work in ie11": { in: 'ie11', tests: /.*hover$/ },
121
+ },
122
+ },
123
+ };
124
+ ```
125
+
126
+ ```tsx
127
+ import React from 'react';
128
+ import { Meta, Story } from '@storybook/react';
129
+ import { CreeveyMeta, CreeveyStory } from 'creevey';
130
+ import MyComponent from './src/components/MyComponent';
131
+
132
+ export default {
133
+ title: 'MyComponent'
134
+ parameters: {
135
+ creevey: {
136
+ // You could skip some browsers/stories or even specific tests
137
+ skip: {
138
+ "`MyComponent` doesn't support ie11": { in: 'ie11' },
139
+ "Loading stories are flaky in firefox": { in: 'firefox', stories: 'Loading' },
140
+ "`MyComponent` hovering doesn't work correctly": {
141
+ in: ['firefox', 'chrome'],
142
+ tests: /.*hover$/,
143
+ },
144
+ },
145
+ },
146
+ },
147
+ } as Meta & CreeveyMeta;
148
+
149
+ export const Basic: Story & CreeveyStory = () => <MyComponent />;
150
+ Basic.parameters = {
151
+ creevey: {
152
+ captureElement: '.container',
153
+ // elements to ignore in capturing screenshot
154
+ ignoreElements: ['button', '.local-time'],
155
+ // Delay before test starts in ms
156
+ delay: 1000,
157
+ tests: {
158
+ /* ... */
159
+ },
160
+ },
161
+ };
162
+ ```
163
+
164
+ ### `skip` option examples:
165
+
166
+ ```ts
167
+ interface SkipOption {
168
+ in?: string | string[] | RegExp;
169
+ kinds?: string | string[] | RegExp;
170
+ stories?: string | string[] | RegExp;
171
+ tests?: string | string[] | RegExp;
172
+ }
173
+
174
+ type SkipOptions = boolean | string | Record<string, SkipOption | SkipOption[]>;
175
+ ```
176
+
177
+ - Skip all stories for all browsers:
178
+ - `skip: true`
179
+ - `skip: 'Skip reason message'`
180
+ - `skip: { 'Skip reason message': true }`
181
+ - Skip all stories for specific browsers:
182
+ - `skip: { 'Skip reason message': { in: 'ie11' } }`
183
+ - `skip: { 'Skip reason message': { in: ['ie11', 'chrome'] } }`
184
+ - `skip: { 'Skip reason message': { in: /^fire.*/ } }`
185
+ - Skip all stories in specific kinds:
186
+ - `skip: { 'Skip reason message': { kinds: 'Button' } }`
187
+ - `skip: { 'Skip reason message': { kinds: ['Button', 'Input'] } }`
188
+ - `skip: { 'Skip reason message': { kinds: /.*Modal$/ } }`
189
+ - Skip all tests in specific stories:
190
+ - `skip: { 'Skip reason message': { stories: 'simple' } }`
191
+ - `skip: { 'Skip reason message': { stories: ['simple', 'special'] } }`
192
+ - `skip: { 'Skip reason message': { stories: /.*large$/ } }`
193
+ - Skip specific tests:
194
+ - `skip: { 'Skip reason message': { tests: 'click' } }`
195
+ - `skip: { 'Skip reason message': { tests: ['hover', 'click'] } }`
196
+ - `skip: { 'Skip reason message': { tests: /^press.*$/ } }`
197
+ - Multiple skip options:
198
+ - for one reason
199
+ ```
200
+ skip: {
201
+ "reason": [{ /* ... */ }, { /* ... */ }],
202
+ }
203
+ ```
204
+ - for several reasons
205
+ ```
206
+ skip: {
207
+ "reason 1": { /* ... */ },
208
+ "reason 2": { /* ... */ },
209
+ }
210
+ ```
211
+
212
+ NOTE: If you try to skip stories by story name, the storybook name format will be used (For more info see [storybook-export-vs-name-handling](https://storybook.js.org/docs/formats/component-story-format/#storybook-export-vs-name-handling))
package/docs/grid.md CHANGED
@@ -1,10 +1,10 @@
1
- ## Use your Selenium Grid (BrowserStack/SauceLabs/etc)
2
-
3
- Sometimes you already have Selenium Grid on one of many different e2e testing services, like LambdaTest, BrowserStack, or SauceLabs , or use a self-hosted one. You could use these services. If your Selenium Grid is located in the same network where you going to start Creevey, you will need to define `gridUrl` parameter in Creevey config. Overwise you need to start tunneling tool depending on what Grid you use:
4
-
5
- - [LambdaTest] (https://www.npmjs.com/package/@lambdatest/node-tunnel)
6
- - [browserstack-local](https://www.npmjs.com/package/browserstack-local)
7
- - [sauce-connect-launcher](https://www.npmjs.com/package/sauce-connect-launcher)
8
- - [open-ssh-tunnel](https://www.npmjs.com/package/open-ssh-tunnel)
9
-
10
- To start one of these tool use `before/after` hook parameters in Creevey config.
1
+ ## Use your Selenium Grid (BrowserStack/SauceLabs/etc)
2
+
3
+ Sometimes you already have Selenium Grid on one of many different e2e testing services, like LambdaTest, BrowserStack, or SauceLabs , or use a self-hosted one. You could use these services. If your Selenium Grid is located in the same network where you going to start Creevey, you will need to define `gridUrl` parameter in Creevey config. Overwise you need to start tunneling tool depending on what Grid you use:
4
+
5
+ - [LambdaTest] (https://www.npmjs.com/package/@lambdatest/node-tunnel)
6
+ - [browserstack-local](https://www.npmjs.com/package/browserstack-local)
7
+ - [sauce-connect-launcher](https://www.npmjs.com/package/sauce-connect-launcher)
8
+ - [open-ssh-tunnel](https://www.npmjs.com/package/open-ssh-tunnel)
9
+
10
+ To start one of these tool use `before/after` hook parameters in Creevey config.
package/docs/tests.md CHANGED
@@ -1,63 +1,63 @@
1
- ## Write tests
2
-
3
- By default Creevey generate for each story very simple screenshot test. In most cases it would be enough to test your UI. But you may want to do some interactions and capture one or multiple screenshots with different states of your story. For this case you could write custom tests, like this
4
-
5
- ```tsx
6
- import React from 'react';
7
- import { Story } from '@storybook/react';
8
- import { CreeveyStory } from 'creevey';
9
- import MyComponent from './src/components/MyComponent';
10
-
11
- export default { title: 'MyComponent' };
12
-
13
- export const Basic: Story & CreeveyStory = () => <MyComponent />;
14
- Basic.parameters = {
15
- creevey: {
16
- captureElement: '#root',
17
- tests: {
18
- async click() {
19
- await this.browser.actions().click(this.captureElement).perform();
20
-
21
- await this.expect(await this.takeScreenshot()).to.matchImage('clicked component');
22
- },
23
- },
24
- },
25
- };
26
- ```
27
-
28
- NOTE: Here you define story parameters with simple test `click`. Where you setup capturing element `#root` then click on that element and taking screenshot to assert it. `this.browser` allow you to access to native selenium webdriver instance you could check [API here](https://www.selenium.dev/selenium/docs/api/javascript/module/selenium-webdriver/index_exports_WebDriver.html).
29
-
30
- You also could write more powerful tests with asserting multiple screenshots
31
-
32
- ```tsx
33
- import React from 'react';
34
- import { CSFStory } from 'creevey';
35
- import MyForm from './src/components/MyForm';
36
-
37
- export default { title: 'MyForm' };
38
-
39
- export const Basic: CSFStory<JSX.Element> = () => <MyForm />;
40
- Basic.story = {
41
- parameters: {
42
- creevey: {
43
- captureElement: '#root',
44
- delay: 1000,
45
- tests: {
46
- async submit() {
47
- const input = await this.browser.findElement({ css: '.my-input' });
48
-
49
- const empty = await this.takeScreenshot();
50
-
51
- await this.browser.actions().click(input).sendKeys('Hello Creevey').sendKeys(this.keys.ENTER).perform();
52
-
53
- const submitted = await this.takeScreenshot();
54
-
55
- await this.expect({ empty, submitted }).to.matchImages();
56
- },
57
- },
58
- },
59
- },
60
- };
61
- ```
62
-
63
- NOTE: In this example I fill some simple form and submit it. Also as you could see, I taking two different screenshots `empty` and `submitted` and assert these in the end.
1
+ ## Write tests
2
+
3
+ By default Creevey generate for each story very simple screenshot test. In most cases it would be enough to test your UI. But you may want to do some interactions and capture one or multiple screenshots with different states of your story. For this case you could write custom tests, like this
4
+
5
+ ```tsx
6
+ import React from 'react';
7
+ import { Story } from '@storybook/react';
8
+ import { CreeveyStory } from 'creevey';
9
+ import MyComponent from './src/components/MyComponent';
10
+
11
+ export default { title: 'MyComponent' };
12
+
13
+ export const Basic: Story & CreeveyStory = () => <MyComponent />;
14
+ Basic.parameters = {
15
+ creevey: {
16
+ captureElement: '#storybook-root',
17
+ tests: {
18
+ async click() {
19
+ await this.browser.actions().click(this.captureElement).perform();
20
+
21
+ await this.expect(await this.takeScreenshot()).to.matchImage('clicked component');
22
+ },
23
+ },
24
+ },
25
+ };
26
+ ```
27
+
28
+ NOTE: Here you define story parameters with simple test `click`. Where you setup capturing element `#storybook-root` then click on that element and taking screenshot to assert it. `this.browser` allow you to access to native selenium webdriver instance you could check [API here](https://www.selenium.dev/selenium/docs/api/javascript/module/selenium-webdriver/index_exports_WebDriver.html).
29
+
30
+ You also could write more powerful tests with asserting multiple screenshots
31
+
32
+ ```tsx
33
+ import React from 'react';
34
+ import { CSFStory } from 'creevey';
35
+ import MyForm from './src/components/MyForm';
36
+
37
+ export default { title: 'MyForm' };
38
+
39
+ export const Basic: CSFStory<JSX.Element> = () => <MyForm />;
40
+ Basic.story = {
41
+ parameters: {
42
+ creevey: {
43
+ captureElement: '#storybook-root',
44
+ delay: 1000,
45
+ tests: {
46
+ async submit() {
47
+ const input = await this.browser.findElement({ css: '.my-input' });
48
+
49
+ const empty = await this.takeScreenshot();
50
+
51
+ await this.browser.actions().click(input).sendKeys('Hello Creevey').sendKeys(this.keys.ENTER).perform();
52
+
53
+ const submitted = await this.takeScreenshot();
54
+
55
+ await this.expect({ empty, submitted }).to.matchImages();
56
+ },
57
+ },
58
+ },
59
+ },
60
+ };
61
+ ```
62
+
63
+ NOTE: In this example I fill some simple form and submit it. Also as you could see, I taking two different screenshots `empty` and `submitted` and assert these in the end.
@@ -0,0 +1,3 @@
1
+ {
2
+ "main": "../dist/client/addon/manager.js"
3
+ }