creevey 0.10.0-beta.8 → 0.10.0-rc.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 (350) hide show
  1. package/AUTHORS +2 -0
  2. package/CHANGELOG.md +281 -0
  3. package/README.md +19 -41
  4. package/dist/client/addon/components/Addon.js +18 -8
  5. package/dist/client/addon/components/Addon.js.map +1 -1
  6. package/dist/client/addon/components/Panel.js +4 -4
  7. package/dist/client/addon/components/Panel.js.map +1 -1
  8. package/dist/client/addon/components/TestSelect.js +2 -2
  9. package/dist/client/addon/components/TestSelect.js.map +1 -1
  10. package/dist/client/addon/components/Tools.js +19 -9
  11. package/dist/client/addon/components/Tools.js.map +1 -1
  12. package/dist/client/addon/controller.d.ts +1 -1
  13. package/dist/client/addon/controller.js +3 -3
  14. package/dist/client/addon/controller.js.map +1 -1
  15. package/dist/client/addon/decorator.d.ts +1 -1
  16. package/dist/client/addon/makeDecorator.d.ts +9 -0
  17. package/dist/client/addon/makeDecorator.js +48 -0
  18. package/dist/client/addon/makeDecorator.js.map +1 -0
  19. package/dist/client/addon/manager.js +38 -39
  20. package/dist/client/addon/manager.js.map +1 -1
  21. package/dist/client/addon/preset.d.ts +0 -1
  22. package/dist/client/addon/preset.js +3 -2
  23. package/dist/client/addon/preset.js.map +1 -1
  24. package/dist/client/addon/preview.d.ts +1 -1
  25. package/dist/client/addon/withCreevey.d.ts +5 -3
  26. package/dist/client/addon/withCreevey.js +14 -21
  27. package/dist/client/addon/withCreevey.js.map +1 -1
  28. package/dist/client/shared/components/ImagesView/BlendView.d.ts +2 -2
  29. package/dist/client/shared/components/ImagesView/BlendView.js +18 -8
  30. package/dist/client/shared/components/ImagesView/BlendView.js.map +1 -1
  31. package/dist/client/shared/components/ImagesView/ImagesView.js +1 -1
  32. package/dist/client/shared/components/ImagesView/ImagesView.js.map +1 -1
  33. package/dist/client/shared/components/ImagesView/SideBySideView.d.ts +2 -2
  34. package/dist/client/shared/components/ImagesView/SideBySideView.js +19 -9
  35. package/dist/client/shared/components/ImagesView/SideBySideView.js.map +1 -1
  36. package/dist/client/shared/components/ImagesView/SlideView.d.ts +2 -2
  37. package/dist/client/shared/components/ImagesView/SlideView.js +19 -9
  38. package/dist/client/shared/components/ImagesView/SlideView.js.map +1 -1
  39. package/dist/client/shared/components/ImagesView/SwapView.d.ts +2 -2
  40. package/dist/client/shared/components/ImagesView/SwapView.js +31 -9
  41. package/dist/client/shared/components/ImagesView/SwapView.js.map +1 -1
  42. package/dist/client/shared/components/ImagesView/common.d.ts +1 -1
  43. package/dist/client/shared/components/PageFooter/PageFooter.js +1 -1
  44. package/dist/client/shared/components/PageFooter/PageFooter.js.map +1 -1
  45. package/dist/client/shared/components/PageFooter/Paging.js +1 -1
  46. package/dist/client/shared/components/PageFooter/Paging.js.map +1 -1
  47. package/dist/client/shared/components/PageHeader/ImagePreview.d.ts +2 -2
  48. package/dist/client/shared/components/PageHeader/ImagePreview.js +2 -1
  49. package/dist/client/shared/components/PageHeader/ImagePreview.js.map +1 -1
  50. package/dist/client/shared/components/PageHeader/PageHeader.js +34 -13
  51. package/dist/client/shared/components/PageHeader/PageHeader.js.map +1 -1
  52. package/dist/client/shared/components/ResultsPage.d.ts +2 -2
  53. package/dist/client/shared/components/ResultsPage.js +45 -15
  54. package/dist/client/shared/components/ResultsPage.js.map +1 -1
  55. package/dist/client/shared/creeveyClientApi.js +18 -1
  56. package/dist/client/shared/creeveyClientApi.js.map +1 -1
  57. package/dist/client/shared/helpers.d.ts +1 -3
  58. package/dist/client/shared/helpers.js +4 -19
  59. package/dist/client/shared/helpers.js.map +1 -1
  60. package/dist/client/web/CreeveyApp.d.ts +1 -0
  61. package/dist/client/web/CreeveyApp.js +44 -15
  62. package/dist/client/web/CreeveyApp.js.map +1 -1
  63. package/dist/client/web/CreeveyContext.d.ts +6 -0
  64. package/dist/client/web/CreeveyContext.js +21 -7
  65. package/dist/client/web/CreeveyContext.js.map +1 -1
  66. package/dist/client/web/CreeveyLoader.d.ts +1 -1
  67. package/dist/client/web/CreeveyLoader.js +3 -3
  68. package/dist/client/web/CreeveyLoader.js.map +1 -1
  69. package/dist/client/web/CreeveyView/SideBar/Checkbox.d.ts +4 -4
  70. package/dist/client/web/CreeveyView/SideBar/Checkbox.js +36 -6
  71. package/dist/client/web/CreeveyView/SideBar/Checkbox.js.map +1 -1
  72. package/dist/client/web/CreeveyView/SideBar/Search.js +20 -10
  73. package/dist/client/web/CreeveyView/SideBar/Search.js.map +1 -1
  74. package/dist/client/web/CreeveyView/SideBar/SideBar.js +26 -12
  75. package/dist/client/web/CreeveyView/SideBar/SideBar.js.map +1 -1
  76. package/dist/client/web/CreeveyView/SideBar/SideBarFooter.js +67 -13
  77. package/dist/client/web/CreeveyView/SideBar/SideBarFooter.js.map +1 -1
  78. package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js +32 -12
  79. package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js.map +1 -1
  80. package/dist/client/web/CreeveyView/SideBar/SuiteLink.d.ts +6 -6
  81. package/dist/client/web/CreeveyView/SideBar/SuiteLink.js +20 -13
  82. package/dist/client/web/CreeveyView/SideBar/SuiteLink.js.map +1 -1
  83. package/dist/client/web/CreeveyView/SideBar/TestLink.js +20 -13
  84. package/dist/client/web/CreeveyView/SideBar/TestLink.js.map +1 -1
  85. package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.d.ts +2 -2
  86. package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.js +2 -2
  87. package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.js.map +1 -1
  88. package/dist/client/web/CreeveyView/SideBar/TestsStatus.d.ts +2 -2
  89. package/dist/client/web/CreeveyView/SideBar/TestsStatus.js +3 -2
  90. package/dist/client/web/CreeveyView/SideBar/TestsStatus.js.map +1 -1
  91. package/dist/client/web/CreeveyView/SideBar/Toggle.js +1 -1
  92. package/dist/client/web/CreeveyView/SideBar/Toggle.js.map +1 -1
  93. package/dist/client/web/KeyboardEventsContext.d.ts +1 -8
  94. package/dist/client/web/KeyboardEventsContext.js +79 -64
  95. package/dist/client/web/KeyboardEventsContext.js.map +1 -1
  96. package/dist/client/web/assets/index-CtSq3IhG.js +518 -0
  97. package/dist/client/web/index.html +1 -1
  98. package/dist/client/web/index.js +26 -11
  99. package/dist/client/web/index.js.map +1 -1
  100. package/dist/client/web/themes.d.ts +2 -0
  101. package/dist/client/web/themes.js +22 -0
  102. package/dist/client/web/themes.js.map +1 -0
  103. package/dist/creevey.d.ts +1 -1
  104. package/dist/creevey.js +122 -41
  105. package/dist/creevey.js.map +1 -1
  106. package/dist/index.d.ts +1 -0
  107. package/dist/playwright/generator.d.ts +25 -0
  108. package/dist/playwright/generator.js +243 -0
  109. package/dist/playwright/generator.js.map +1 -0
  110. package/dist/playwright/helpers.d.ts +2 -0
  111. package/dist/playwright/helpers.js +29 -0
  112. package/dist/playwright/helpers.js.map +1 -0
  113. package/dist/playwright/reporter.d.ts +83 -0
  114. package/dist/playwright/reporter.js +334 -0
  115. package/dist/playwright/reporter.js.map +1 -0
  116. package/dist/playwright/setup.d.ts +3 -0
  117. package/dist/playwright/setup.js +72 -0
  118. package/dist/playwright/setup.js.map +1 -0
  119. package/dist/playwright.d.ts +1 -0
  120. package/dist/playwright.js +3 -1
  121. package/dist/playwright.js.map +1 -1
  122. package/dist/server/compare.d.ts +18 -0
  123. package/dist/server/compare.js +182 -0
  124. package/dist/server/compare.js.map +1 -0
  125. package/dist/server/config.d.ts +3 -3
  126. package/dist/server/config.js +75 -8
  127. package/dist/server/config.js.map +1 -1
  128. package/dist/server/connection.d.ts +3 -0
  129. package/dist/server/connection.js +28 -0
  130. package/dist/server/connection.js.map +1 -0
  131. package/dist/server/docker.d.ts +1 -1
  132. package/dist/server/docker.js +54 -32
  133. package/dist/server/docker.js.map +1 -1
  134. package/dist/server/index.d.ts +2 -2
  135. package/dist/server/index.js +165 -64
  136. package/dist/server/index.js.map +1 -1
  137. package/dist/server/master/api.d.ts +11 -6
  138. package/dist/server/master/api.js +88 -25
  139. package/dist/server/master/api.js.map +1 -1
  140. package/dist/server/master/handlers/capture-handler.d.ts +5 -0
  141. package/dist/server/master/handlers/capture-handler.js +25 -0
  142. package/dist/server/master/handlers/capture-handler.js.map +1 -0
  143. package/dist/server/master/handlers/index.d.ts +4 -0
  144. package/dist/server/master/handlers/index.js +21 -0
  145. package/dist/server/master/handlers/index.js.map +1 -0
  146. package/dist/server/master/handlers/ping-handler.d.ts +2 -0
  147. package/dist/server/master/handlers/ping-handler.js +8 -0
  148. package/dist/server/master/handlers/ping-handler.js.map +1 -0
  149. package/dist/server/master/handlers/static-handler.d.ts +1 -0
  150. package/dist/server/master/handlers/static-handler.js +20 -0
  151. package/dist/server/master/handlers/static-handler.js.map +1 -0
  152. package/dist/server/master/handlers/stories-handler.d.ts +4 -0
  153. package/dist/server/master/handlers/stories-handler.js +24 -0
  154. package/dist/server/master/handlers/stories-handler.js.map +1 -0
  155. package/dist/server/master/master.js +7 -24
  156. package/dist/server/master/master.js.map +1 -1
  157. package/dist/server/master/pool.d.ts +1 -0
  158. package/dist/server/master/pool.js +5 -3
  159. package/dist/server/master/pool.js.map +1 -1
  160. package/dist/server/master/queue.d.ts +1 -1
  161. package/dist/server/master/queue.js +14 -6
  162. package/dist/server/master/queue.js.map +1 -1
  163. package/dist/server/master/runner.d.ts +6 -6
  164. package/dist/server/master/runner.js +98 -130
  165. package/dist/server/master/runner.js.map +1 -1
  166. package/dist/server/master/server.d.ts +1 -1
  167. package/dist/server/master/server.js +193 -88
  168. package/dist/server/master/server.js.map +1 -1
  169. package/dist/server/master/start.d.ts +1 -2
  170. package/dist/server/master/start.js +13 -29
  171. package/dist/server/master/start.js.map +1 -1
  172. package/dist/server/master/testsManager.d.ts +81 -0
  173. package/dist/server/master/testsManager.js +282 -0
  174. package/dist/server/master/testsManager.js.map +1 -0
  175. package/dist/server/playwright/docker-file.d.ts +1 -1
  176. package/dist/server/playwright/docker-file.js +17 -8
  177. package/dist/server/playwright/docker-file.js.map +1 -1
  178. package/dist/server/playwright/docker.d.ts +2 -1
  179. package/dist/server/playwright/docker.js +10 -2
  180. package/dist/server/playwright/docker.js.map +1 -1
  181. package/dist/server/playwright/index-source.mjs +16 -0
  182. package/dist/server/playwright/internal.d.ts +7 -7
  183. package/dist/server/playwright/internal.js +144 -84
  184. package/dist/server/playwright/internal.js.map +1 -1
  185. package/dist/server/playwright/webdriver.d.ts +3 -3
  186. package/dist/server/playwright/webdriver.js +0 -6
  187. package/dist/server/playwright/webdriver.js.map +1 -1
  188. package/dist/server/providers/browser.js +4 -3
  189. package/dist/server/providers/browser.js.map +1 -1
  190. package/dist/server/providers/hybrid.js +2 -2
  191. package/dist/server/providers/hybrid.js.map +1 -1
  192. package/dist/server/report.d.ts +10 -0
  193. package/dist/server/report.js +45 -0
  194. package/dist/server/report.js.map +1 -0
  195. package/dist/server/reporters/creevey.d.ts +7 -0
  196. package/dist/server/reporters/creevey.js +63 -0
  197. package/dist/server/reporters/creevey.js.map +1 -0
  198. package/dist/server/reporters/index.d.ts +2 -0
  199. package/dist/server/reporters/index.js +16 -0
  200. package/dist/server/reporters/index.js.map +1 -0
  201. package/dist/server/reporters/junit.d.ts +16 -0
  202. package/dist/server/reporters/junit.js +167 -0
  203. package/dist/server/reporters/junit.js.map +1 -0
  204. package/dist/server/reporters/teamcity.d.ts +7 -0
  205. package/dist/server/reporters/teamcity.js +60 -0
  206. package/dist/server/reporters/teamcity.js.map +1 -0
  207. package/dist/server/selenium/internal.d.ts +4 -4
  208. package/dist/server/selenium/internal.js +56 -40
  209. package/dist/server/selenium/internal.js.map +1 -1
  210. package/dist/server/selenium/selenoid.js +12 -6
  211. package/dist/server/selenium/selenoid.js.map +1 -1
  212. package/dist/server/selenium/webdriver.d.ts +3 -3
  213. package/dist/server/selenium/webdriver.js +4 -8
  214. package/dist/server/selenium/webdriver.js.map +1 -1
  215. package/dist/server/shutdown.d.ts +1 -0
  216. package/dist/server/shutdown.js +23 -0
  217. package/dist/server/shutdown.js.map +1 -0
  218. package/dist/server/stories.d.ts +0 -1
  219. package/dist/server/stories.js +0 -12
  220. package/dist/server/stories.js.map +1 -1
  221. package/dist/server/telemetry.js +3 -3
  222. package/dist/server/telemetry.js.map +1 -1
  223. package/dist/server/testsFiles/parser.js +45 -5
  224. package/dist/server/testsFiles/parser.js.map +1 -1
  225. package/dist/server/utils.d.ts +23 -0
  226. package/dist/server/utils.js +114 -15
  227. package/dist/server/utils.js.map +1 -1
  228. package/dist/server/webdriver.d.ts +1 -1
  229. package/dist/server/worker/context.d.ts +3 -0
  230. package/dist/server/worker/context.js +15 -0
  231. package/dist/server/worker/context.js.map +1 -0
  232. package/dist/server/worker/match-image.d.ts +8 -12
  233. package/dist/server/worker/match-image.js +11 -178
  234. package/dist/server/worker/match-image.js.map +1 -1
  235. package/dist/server/worker/start.d.ts +2 -2
  236. package/dist/server/worker/start.js +41 -64
  237. package/dist/server/worker/start.js.map +1 -1
  238. package/dist/shared/index.d.ts +1 -1
  239. package/dist/shared/index.js +9 -7
  240. package/dist/shared/index.js.map +1 -1
  241. package/dist/types.d.ts +84 -43
  242. package/dist/types.js +65 -1
  243. package/dist/types.js.map +1 -1
  244. package/docs/cli.md +80 -0
  245. package/docs/config.md +179 -165
  246. package/docs/examples/playwright-reporer/playwright.config.ts +37 -0
  247. package/docs/migration-0.9-to-0.10.md +144 -0
  248. package/docs/playwright-reporter.md +357 -0
  249. package/docs/storybook.md +60 -0
  250. package/docs/tests.md +50 -45
  251. package/package.json +78 -83
  252. package/playwright.config.mts +46 -0
  253. package/src/client/addon/components/Addon.tsx +1 -1
  254. package/src/client/addon/components/Panel.tsx +4 -4
  255. package/src/client/addon/components/TestSelect.tsx +2 -2
  256. package/src/client/addon/components/Tools.tsx +2 -2
  257. package/src/client/addon/controller.ts +4 -4
  258. package/src/client/addon/makeDecorator.ts +69 -0
  259. package/src/client/addon/manager.ts +38 -37
  260. package/src/client/addon/preset.ts +2 -1
  261. package/src/client/addon/withCreevey.ts +16 -19
  262. package/src/client/shared/components/ImagesView/BlendView.tsx +1 -1
  263. package/src/client/shared/components/ImagesView/ImagesView.tsx +1 -1
  264. package/src/client/shared/components/ImagesView/SideBySideView.tsx +2 -2
  265. package/src/client/shared/components/ImagesView/SlideView.tsx +2 -2
  266. package/src/client/shared/components/ImagesView/SwapView.tsx +20 -2
  267. package/src/client/shared/components/ImagesView/common.ts +1 -1
  268. package/src/client/shared/components/PageFooter/PageFooter.tsx +1 -1
  269. package/src/client/shared/components/PageFooter/Paging.tsx +1 -1
  270. package/src/client/shared/components/PageHeader/ImagePreview.tsx +2 -1
  271. package/src/client/shared/components/PageHeader/PageHeader.tsx +23 -7
  272. package/src/client/shared/components/ResultsPage.tsx +33 -10
  273. package/src/client/shared/creeveyClientApi.ts +19 -1
  274. package/src/client/shared/helpers.ts +4 -24
  275. package/src/client/web/CreeveyApp.tsx +30 -9
  276. package/src/client/web/CreeveyContext.tsx +11 -0
  277. package/src/client/web/CreeveyLoader.tsx +2 -2
  278. package/src/client/web/CreeveyView/SideBar/Checkbox.tsx +3 -3
  279. package/src/client/web/CreeveyView/SideBar/Search.tsx +4 -4
  280. package/src/client/web/CreeveyView/SideBar/SideBar.tsx +11 -6
  281. package/src/client/web/CreeveyView/SideBar/SideBarFooter.tsx +48 -15
  282. package/src/client/web/CreeveyView/SideBar/SideBarHeader.tsx +20 -5
  283. package/src/client/web/CreeveyView/SideBar/SuiteLink.tsx +12 -12
  284. package/src/client/web/CreeveyView/SideBar/TestLink.tsx +10 -10
  285. package/src/client/web/CreeveyView/SideBar/TestStatusIcon.tsx +2 -2
  286. package/src/client/web/CreeveyView/SideBar/TestsStatus.tsx +3 -2
  287. package/src/client/web/CreeveyView/SideBar/Toggle.tsx +1 -1
  288. package/src/client/web/KeyboardEventsContext.tsx +61 -73
  289. package/src/client/web/index.tsx +10 -5
  290. package/src/client/web/themes.ts +24 -0
  291. package/src/creevey.ts +92 -38
  292. package/src/playwright/generator.ts +322 -0
  293. package/src/playwright/helpers.ts +31 -0
  294. package/src/playwright/reporter.ts +381 -0
  295. package/src/playwright/setup.ts +84 -0
  296. package/src/playwright.ts +1 -0
  297. package/src/server/compare.ts +260 -0
  298. package/src/server/config.ts +52 -9
  299. package/src/server/connection.ts +26 -0
  300. package/src/server/docker.ts +62 -34
  301. package/src/server/index.ts +166 -79
  302. package/src/server/master/api.ts +94 -28
  303. package/src/server/master/handlers/capture-handler.ts +20 -0
  304. package/src/server/master/handlers/index.ts +4 -0
  305. package/src/server/master/handlers/ping-handler.ts +6 -0
  306. package/src/server/master/handlers/static-handler.ts +16 -0
  307. package/src/server/master/handlers/stories-handler.ts +20 -0
  308. package/src/server/master/master.ts +10 -27
  309. package/src/server/master/pool.ts +7 -3
  310. package/src/server/master/queue.ts +21 -7
  311. package/src/server/master/runner.ts +123 -134
  312. package/src/server/master/server.ts +214 -101
  313. package/src/server/master/start.ts +19 -41
  314. package/src/server/master/testsManager.ts +316 -0
  315. package/src/server/playwright/docker-file.ts +20 -8
  316. package/src/server/playwright/docker.ts +16 -3
  317. package/src/server/playwright/index-source.mjs +16 -0
  318. package/src/server/playwright/internal.ts +176 -103
  319. package/src/server/playwright/webdriver.ts +4 -10
  320. package/src/server/providers/browser.ts +4 -3
  321. package/src/server/providers/hybrid.ts +2 -3
  322. package/src/server/report.ts +51 -0
  323. package/src/server/reporters/creevey.ts +71 -0
  324. package/src/server/reporters/index.ts +11 -0
  325. package/src/server/reporters/junit.ts +207 -0
  326. package/src/server/reporters/teamcity.ts +74 -0
  327. package/src/server/selenium/internal.ts +70 -53
  328. package/src/server/selenium/selenoid.ts +13 -6
  329. package/src/server/selenium/webdriver.ts +8 -12
  330. package/src/server/shutdown.ts +19 -0
  331. package/src/server/stories.ts +1 -12
  332. package/src/server/telemetry.ts +3 -3
  333. package/src/server/testsFiles/parser.ts +52 -4
  334. package/src/server/utils.ts +124 -16
  335. package/src/server/webdriver.ts +1 -1
  336. package/src/server/worker/context.ts +14 -0
  337. package/src/server/worker/match-image.ts +16 -248
  338. package/src/server/worker/start.ts +49 -79
  339. package/src/shared/index.ts +10 -8
  340. package/src/types.ts +91 -58
  341. package/types/global.d.ts +1 -0
  342. package/dist/client/web/assets/index-DB8lHlJw.js +0 -591
  343. package/dist/server/reporter.d.ts +0 -26
  344. package/dist/server/reporter.js +0 -108
  345. package/dist/server/reporter.js.map +0 -1
  346. package/dist/server/update.d.ts +0 -2
  347. package/dist/server/update.js +0 -53
  348. package/dist/server/update.js.map +0 -1
  349. package/src/server/reporter.ts +0 -139
  350. package/src/server/update.ts +0 -74
package/dist/types.d.ts CHANGED
@@ -1,11 +1,11 @@
1
- import type { StoryContextForEnhancers, DecoratorFunction } from '@storybook/csf';
1
+ import * as v from 'valibot';
2
2
  import type { Worker as ClusterWorker } from 'cluster';
3
- import type Pixelmatch from 'pixelmatch';
4
- import type { ODiffOptions } from 'odiff-bin';
5
3
  import type { expect } from 'chai';
6
4
  import type EventEmitter from 'events';
7
- import { LaunchOptions } from 'playwright-core';
8
- export type DiffOptions = typeof Pixelmatch extends (x1: any, x2: any, x3: any, x4: any, x5: any, options?: infer T) => void ? T : never;
5
+ import type { ODiffOptions } from 'odiff-bin';
6
+ import type { LaunchOptions } from 'playwright-core';
7
+ import type { PixelmatchOptions } from 'pixelmatch';
8
+ import type { StoryContextForEnhancers, DecoratorFunction } from 'storybook/internal/types';
9
9
  export interface SetStoriesData {
10
10
  v?: number;
11
11
  globalParameters: {
@@ -88,6 +88,10 @@ export interface BrowserConfigObject {
88
88
  * Storybook's globals to set in a specific browser
89
89
  * @see https://github.com/storybookjs/storybook/blob/v6.0.0/docs/essentials/toolbars-and-globals.md
90
90
  */
91
+ storybookGlobals?: StorybookGlobals;
92
+ /**
93
+ * @deprecated Use `storybookGlobals` instead
94
+ */
91
95
  _storybookGlobals?: StorybookGlobals;
92
96
  /**
93
97
  * Specify custom docker image. Used only with `useDocker == true`
@@ -114,11 +118,17 @@ export interface BrowserConfigObject {
114
118
  platformName?: string;
115
119
  [name: string]: unknown;
116
120
  };
117
- playwrightOptions?: Omit<LaunchOptions, 'logger'>;
121
+ playwrightOptions?: Omit<LaunchOptions, 'logger'> & {
122
+ trace?: {
123
+ screenshots?: boolean;
124
+ snapshots?: boolean;
125
+ sources?: boolean;
126
+ };
127
+ };
118
128
  }
119
129
  export type StorybookGlobals = Record<string, unknown>;
120
130
  export type BrowserConfig = boolean | string | BrowserConfigObject;
121
- export type CreeveyWebdriverConstructor = new (browser: string, gridUrl: string, config: Config, options: Options) => CreeveyWebdriver;
131
+ export type CreeveyWebdriverConstructor = new (browser: string, gridUrl: string, config: Config, options: WorkerOptions) => CreeveyWebdriver;
122
132
  export interface CreeveyWebdriver {
123
133
  getSessionId(): Promise<string>;
124
134
  openBrowser(fresh?: boolean): Promise<CreeveyWebdriver | null>;
@@ -140,6 +150,7 @@ export interface DockerAuth {
140
150
  serveraddress?: string;
141
151
  }
142
152
  export type BaseReporter = new (runner: EventEmitter, options: {
153
+ reportDir: string;
143
154
  reporterOptions: any;
144
155
  }) => void;
145
156
  export interface Config {
@@ -157,6 +168,11 @@ export interface Config {
157
168
  * Url where storybook hosted on
158
169
  */
159
170
  resolveStorybookUrl?: () => Promise<string>;
171
+ /**
172
+ * Command to automatically start Storybook if it is not running.
173
+ * For example, `npm run storybook` or `yarn storybook` etc.
174
+ */
175
+ storybookAutorunCmd?: string;
160
176
  /**
161
177
  * Absolute path to directory with reference images
162
178
  * @default path.join(process.cwd(), './images')
@@ -170,8 +186,9 @@ export interface Config {
170
186
  /**
171
187
  * Specify a custom reporter for test results. Creevey accepts only mocha-like reporters
172
188
  * @optional
189
+ * @default 'creevey'
173
190
  */
174
- reporter: BaseReporter;
191
+ reporter: BaseReporter | 'creevey' | 'teamcity' | 'junit';
175
192
  /**
176
193
  * Options which are used by reporter
177
194
  */
@@ -188,11 +205,12 @@ export interface Config {
188
205
  testTimeout: number;
189
206
  /**
190
207
  * Define pixelmatch diff options
191
- * @default { threshold: 0.05, includeAA: false }
208
+ * @default { threshold: 0.1, includeAA: false }
192
209
  */
193
- diffOptions: DiffOptions;
210
+ diffOptions: PixelmatchOptions;
194
211
  /**
195
- *
212
+ * Define odiff diff options
213
+ * @default { threshold: 0.1, antialiasing: true }
196
214
  */
197
215
  odiffOptions: ODiffOptions;
198
216
  /**
@@ -212,20 +230,17 @@ export interface Config {
212
230
  /**
213
231
  * Creevey has two built-in stories providers.
214
232
  *
215
- * `nodejsStoriesProvider` - The first one is used by default except if CSFv3 is enabled in Storybook.
216
- * This provider builds and runs storybook in nodejs env, that allows write interaction tests by using Selenium API.
217
- * The downside is it depends from project build specific and slightly increases init time.
218
- *
219
- * `browserStoriesProvider` - The second one is used by default with CSFv3 storybook feature.
220
- * It load stories from storybook which is running in browser, like storyshots or loki do it.
233
+ * `browserStoriesProvider` - Extracts stories directly from the Storybook UI. It loads stories from storybook which is running in browser, like storyshots or loki do it.
221
234
  * The downside of this, you can't use interaction tests in Creevey, unless you use CSFv3.
222
235
  * Where you can define `play` method for each story
223
236
  *
237
+ * `hybridStoriesProvider` - Combines stories from Storybook with tests from separate files. This is the default provider used in the configuration.
238
+ *
224
239
  * Usage
225
240
  * ``` typescript
226
- * import { nodejsStoriesProvider as provider } from 'creevey'
227
- * // or
228
241
  * import { browserStoriesProvider as provider } from 'creevey'
242
+ * // or
243
+ * import { hybridStoriesProvider as provider } from 'creevey'
229
244
  *
230
245
  * // Creevey config
231
246
  * module.exports = {
@@ -286,26 +301,36 @@ export interface StoriesProvider {
286
301
  providerName?: string;
287
302
  }
288
303
  export type CreeveyConfig = Partial<Config>;
289
- export interface Options {
290
- _: string[];
291
- config?: string;
292
- port: number;
293
- ui: boolean;
294
- update: boolean | string;
295
- debug: boolean;
296
- trace: boolean;
297
- browser?: string;
298
- /**
299
- * @deprecated use {@link Config.reporter} instead
300
- */
301
- reporter?: string;
302
- screenDir?: string;
303
- reportDir?: string;
304
- gridUrl?: string;
305
- storybookUrl?: string;
306
- failFast?: boolean;
307
- odiff?: boolean;
308
- }
304
+ export declare const OptionsSchema: v.ObjectSchema<{
305
+ readonly ui: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
306
+ readonly storybookStart: v.OptionalSchema<v.UnionSchema<[v.StringSchema<undefined>, v.BooleanSchema<undefined>], undefined>, undefined>;
307
+ readonly config: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
308
+ readonly debug: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
309
+ readonly port: v.NumberSchema<undefined>;
310
+ readonly failFast: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
311
+ readonly reportDir: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
312
+ readonly screenDir: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
313
+ readonly storybookUrl: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
314
+ readonly storybookPort: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
315
+ readonly reporter: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
316
+ readonly odiff: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
317
+ readonly trace: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
318
+ readonly docker: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
319
+ }, undefined>;
320
+ export declare const WorkerOptionsSchema: v.ObjectSchema<{
321
+ readonly browser: v.StringSchema<undefined>;
322
+ readonly storybookUrl: v.StringSchema<undefined>;
323
+ readonly gridUrl: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
324
+ readonly config: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
325
+ readonly debug: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
326
+ readonly trace: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
327
+ readonly reportDir: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
328
+ readonly screenDir: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
329
+ readonly odiff: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
330
+ readonly port: v.NumberSchema<undefined>;
331
+ }, undefined>;
332
+ export type Options = v.InferOutput<typeof OptionsSchema>;
333
+ export type WorkerOptions = v.InferOutput<typeof WorkerOptionsSchema>;
309
334
  export type WorkerError = 'browser' | 'test' | 'unknown';
310
335
  export type WorkerMessage = {
311
336
  type: 'ready';
@@ -376,8 +401,14 @@ export interface Images {
376
401
  export type TestStatus = 'unknown' | 'pending' | 'running' | 'failed' | 'approved' | 'success' | 'retrying';
377
402
  export interface TestResult {
378
403
  status: 'failed' | 'success';
404
+ retries: number;
379
405
  images?: Partial<Record<string, Images>>;
380
406
  error?: string;
407
+ duration?: number;
408
+ attachments?: string[];
409
+ sessionId?: string;
410
+ browserName?: string;
411
+ workerId?: number;
381
412
  }
382
413
  export declare class ImagesError extends Error {
383
414
  images?: string | Partial<Record<string, string>>;
@@ -410,8 +441,8 @@ export interface BaseCreeveyTestContext {
410
441
  imageName?: string;
411
442
  screenshot: Buffer;
412
443
  }[];
413
- matchImage: (image: Buffer, imageName?: string) => Promise<void>;
414
- matchImages: (images: Record<string, Buffer>) => Promise<void>;
444
+ matchImage: (image: Buffer | string, imageName?: string) => Promise<void>;
445
+ matchImages: (images: Record<string, Buffer | string>) => Promise<void>;
415
446
  }
416
447
  export interface CreeveyTestContext extends BaseCreeveyTestContext {
417
448
  takeScreenshot: () => Promise<Buffer>;
@@ -421,6 +452,8 @@ export interface CreeveyTestContext extends BaseCreeveyTestContext {
421
452
  export declare enum TEST_EVENTS {
422
453
  RUN_BEGIN = "start",
423
454
  RUN_END = "end",
455
+ SUITE_BEGIN = "suite",
456
+ SUITE_END = "suite end",
424
457
  TEST_BEGIN = "test",
425
458
  TEST_END = "test end",
426
459
  TEST_FAIL = "fail",
@@ -441,19 +474,27 @@ export interface FakeTest {
441
474
  title: string;
442
475
  fullTitle: () => string;
443
476
  titlePath: () => string[];
444
- currentRetry: () => number;
477
+ currentRetry: () => number | undefined;
445
478
  retires: () => number;
446
479
  slow: () => number;
447
480
  duration?: number;
448
481
  state?: 'failed' | 'passed';
449
482
  speed?: 'slow' | 'medium' | 'fast';
450
- err?: unknown;
483
+ err?: string;
451
484
  attachments?: string[];
485
+ creevey: {
486
+ sessionId: string;
487
+ browserName: string;
488
+ workerId: number;
489
+ willRetry: boolean;
490
+ images: Partial<Record<string, Partial<Images>>>;
491
+ };
452
492
  }
453
493
  export interface CreeveyStatus {
454
494
  isRunning: boolean;
455
495
  tests: Partial<Record<string, TestData>>;
456
496
  browsers: string[];
497
+ isUpdateMode: boolean;
457
498
  }
458
499
  export interface CreeveyUpdate {
459
500
  isRunning?: boolean;
package/dist/types.js CHANGED
@@ -1,6 +1,39 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TEST_EVENTS = exports.ImagesError = exports.StorybookEvents = void 0;
36
+ exports.TEST_EVENTS = exports.ImagesError = exports.WorkerOptionsSchema = exports.OptionsSchema = exports.StorybookEvents = void 0;
4
37
  exports.noop = noop;
5
38
  exports.isDefined = isDefined;
6
39
  exports.isTest = isTest;
@@ -12,6 +45,7 @@ exports.isProcessMessage = isProcessMessage;
12
45
  exports.isWorkerMessage = isWorkerMessage;
13
46
  exports.isStoriesMessage = isStoriesMessage;
14
47
  exports.isTestMessage = isTestMessage;
48
+ const v = __importStar(require("valibot"));
15
49
  var StorybookEvents;
16
50
  (function (StorybookEvents) {
17
51
  StorybookEvents["SET_STORIES"] = "setStories";
@@ -24,6 +58,34 @@ var StorybookEvents;
24
58
  StorybookEvents["SET_GLOBALS"] = "setGlobals";
25
59
  StorybookEvents["UPDATE_GLOBALS"] = "updateGlobals";
26
60
  })(StorybookEvents || (exports.StorybookEvents = StorybookEvents = {}));
61
+ exports.OptionsSchema = v.object({
62
+ ui: v.optional(v.boolean()),
63
+ storybookStart: v.optional(v.union([v.string(), v.boolean()])),
64
+ config: v.optional(v.string()),
65
+ debug: v.optional(v.boolean()),
66
+ port: v.number(),
67
+ failFast: v.optional(v.boolean()),
68
+ reportDir: v.optional(v.string()),
69
+ screenDir: v.optional(v.string()),
70
+ storybookUrl: v.optional(v.string()),
71
+ storybookPort: v.optional(v.number()),
72
+ reporter: v.optional(v.string()),
73
+ odiff: v.optional(v.boolean()),
74
+ trace: v.optional(v.boolean()),
75
+ docker: v.optional(v.boolean()),
76
+ });
77
+ exports.WorkerOptionsSchema = v.object({
78
+ browser: v.string(),
79
+ storybookUrl: v.string(),
80
+ gridUrl: v.optional(v.string()),
81
+ config: v.optional(v.string()),
82
+ debug: v.optional(v.boolean()),
83
+ trace: v.optional(v.boolean()),
84
+ reportDir: v.optional(v.string()),
85
+ screenDir: v.optional(v.string()),
86
+ odiff: v.optional(v.boolean()),
87
+ port: v.number(),
88
+ });
27
89
  class ImagesError extends Error {
28
90
  images;
29
91
  }
@@ -32,6 +94,8 @@ var TEST_EVENTS;
32
94
  (function (TEST_EVENTS) {
33
95
  TEST_EVENTS["RUN_BEGIN"] = "start";
34
96
  TEST_EVENTS["RUN_END"] = "end";
97
+ TEST_EVENTS["SUITE_BEGIN"] = "suite";
98
+ TEST_EVENTS["SUITE_END"] = "suite end";
35
99
  TEST_EVENTS["TEST_BEGIN"] = "test";
36
100
  TEST_EVENTS["TEST_END"] = "test end";
37
101
  TEST_EVENTS["TEST_FAIL"] = "fail";
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAojBA,oBAEC;AAED,8BAEC;AAED,wBASC;AAED,4BAEC;AAED,4BAEC;AAGD,gCAEC;AAED,oCAEC;AAED,4CAEC;AAED,0CAEC;AAED,4CAEC;AAED,sCAEC;AA3jBD,IAAY,eAUX;AAVD,WAAY,eAAe;IACzB,6CAA0B,CAAA;IAC1B,wDAAqC,CAAA;IACrC,iDAA8B,CAAA;IAC9B,mDAAgC,CAAA;IAChC,iDAA8B,CAAA;IAC9B,gEAA6C,CAAA;IAC7C,wDAAqC,CAAA;IACrC,6CAA0B,CAAA;IAC1B,mDAAgC,CAAA;AAClC,CAAC,EAVW,eAAe,+BAAf,eAAe,QAU1B;AAsWD,MAAa,WAAY,SAAQ,KAAK;IACpC,MAAM,CAA4C;CACnD;AAFD,kCAEC;AAwCD,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,kCAAmB,CAAA;IACnB,8BAAe,CAAA;IACf,kCAAmB,CAAA;IACnB,oCAAqB,CAAA;IACrB,iCAAkB,CAAA;IAClB,iCAAkB,CAAA;AACpB,CAAC,EAPW,WAAW,2BAAX,WAAW,QAOtB;AAwGD,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,WAAW,IAAI,QAAQ,IAAI,KAAK,CAAC;AAC3D,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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/docs/cli.md ADDED
@@ -0,0 +1,80 @@
1
+ ## Creevey CLI Commands and Options
2
+
3
+ Creevey provides two main commands for different purposes:
4
+
5
+ ### Commands
6
+
7
+ #### `creevey test [options]`
8
+
9
+ Run visual regression tests.
10
+
11
+ **Options:**
12
+
13
+ - `--ui` — Launch web UI for running tests and reviewing test results
14
+ - `-s, --storybook-start [cmd]` — Start Storybook automatically (optional command can be specified)
15
+ - `-c, --config <config>` — Path to config file (default: `.creevey/config.ts` or `creevey.config.ts`)
16
+ - `-d, --debug` — Enable debug mode (also enables recording video and traces if Playwright is used)
17
+ - `-p, --port <port>` — Port for UI server (default: `3000`)
18
+ - `--fail-fast` — Stop tests after first failure
19
+ - `--report-dir <dir>` — Directory for test reports
20
+ - `--screen-dir <dir>` — Directory for reference images
21
+ - `--storybook-url <url>` — Storybook server URL
22
+ - `--storybook-port <port>` — Storybook server port
23
+ - `--reporter <reporter>` — **[DEPRECATED]** Use config file instead
24
+ - `--odiff` — Use odiff for image comparison
25
+ - `--trace` — Enable trace mode (more verbose than debug)
26
+ - `--no-docker` — Disable Docker usage
27
+
28
+ **Examples:**
29
+
30
+ ```bash
31
+ # Run tests with UI
32
+ creevey test --ui
33
+
34
+ # Start Storybook automatically and run tests
35
+ creevey test -s --ui
36
+
37
+ # Run tests with custom config and debug mode
38
+ creevey test -c ./my-config.ts --debug
39
+
40
+ # Run tests with fail-fast mode
41
+ creevey test --fail-fast
42
+
43
+ # Run tests without Docker
44
+ creevey test --no-docker
45
+ ```
46
+
47
+ #### `creevey report [reportDir]`
48
+
49
+ Launch web UI to review and approve test results from a previous test run.
50
+
51
+ **Options:**
52
+
53
+ - `-c, --config <config>` — Path to config file
54
+ - `-p, --port <port>` — Port for UI server (default: `3000`)
55
+ - `--screen-dir <dir>` — Directory for reference images
56
+
57
+ **Examples:**
58
+
59
+ ```bash
60
+ # Launch report UI with default report directory
61
+ creevey report
62
+
63
+ # Launch report UI with specific report directory
64
+ creevey report ./custom-report
65
+
66
+ # Launch report UI on custom port
67
+ creevey report -p 8080
68
+ ```
69
+
70
+ ### Global Options
71
+
72
+ These options are available for all commands:
73
+
74
+ - `--help, -h` — Show help information
75
+ - `--version, -v` — Show version information
76
+
77
+ ### Migration Notes
78
+
79
+ - The `--reporter` option has been deprecated. Configure reporters in your config file instead.
80
+ - The `-u, --update` option has been removed. Use the `report` command instead.