@thinkwise/testwise 0.2.62 → 0.2.99

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 (458) hide show
  1. package/Testwise.ts +35 -0
  2. package/artifact-builder/ArtifactManager.ts +25 -2
  3. package/artifact-builder/ComponentClassModelBuilder.ts +148 -0
  4. package/artifact-builder/InterfaceGenerator.ts +31 -33
  5. package/artifact-builder/ModelDataBuilder.ts +18 -20
  6. package/artifact-builder/ModelDataRefiner.ts +23 -3
  7. package/artifact-builder/SchemaGenerator.ts +45 -35
  8. package/artifact-builder/ScreenInterfaceRefiner.ts +25 -10
  9. package/artifact-builder/SelectorBuilder.ts +30 -24
  10. package/artifact-builder/SubjectClassModelBuilder.ts +209 -0
  11. package/artifact-builder/SubjectComponentGenerator.ts +67 -246
  12. package/artifact-builder/SubjectGenerator.ts +117 -230
  13. package/artifact-builder/SubjectRegistration.ts +41 -32
  14. package/artifact-builder/TsFileModel.ts +94 -0
  15. package/artifact-builder/TsFileSerializer.ts +247 -0
  16. package/artifact-builder/helpers/DataRetriever.ts +64 -27
  17. package/artifact-builder/helpers/NamingHandler.ts +23 -78
  18. package/artifact-builder/helpers/PipelinePaths.ts +123 -0
  19. package/artifact-builder/helpers/Stopwatch.ts +10 -0
  20. package/artifact-builder/helpers/index.ts +1 -0
  21. package/artifact-builder/index.ts +4 -0
  22. package/components/BaseComponentObjects.ts +17 -0
  23. package/components/action-bar/ActionBar.ts +35 -47
  24. package/components/action-bar/ActionBarObjects.ts +2 -0
  25. package/components/action-bar/CustomActionBar.ts +6 -0
  26. package/components/cardlist/Cardlist.ts +6 -0
  27. package/components/chart/Chart.ts +6 -0
  28. package/components/combined-filter/CombinedFilter.ts +9 -0
  29. package/components/cube-view-bar/CubeViewBar.ts +6 -0
  30. package/components/export/ExportComponent.ts +12 -0
  31. package/components/filter/ExcelStyleFilterPopup.ts +83 -10
  32. package/components/filter/ExcelStyleFilterPopupObjects.ts +29 -3
  33. package/components/filter/FilterForm.ts +10 -0
  34. package/components/filter/FilterPopup.ts +30 -9
  35. package/components/filter/FilterPopupObjects.ts +10 -3
  36. package/components/filter/FindForm.ts +7 -0
  37. package/components/filter/ManagePrefilterPopup.ts +11 -0
  38. package/components/form/Form.ts +16 -0
  39. package/components/grid/Grid.ts +50 -14
  40. package/components/grid/GridObjects.ts +0 -15
  41. package/components/maps/Maps.ts +6 -0
  42. package/components/menu/ListBarMenuComponent.ts +10 -0
  43. package/components/pivot-grid/PivotGrid.ts +6 -0
  44. package/components/pivot-grid/PivotGridFieldList.ts +7 -0
  45. package/components/pop-up/AllRowsPopUp.ts +12 -0
  46. package/components/pop-up/PopUpComponent.ts +11 -0
  47. package/components/prefilter-list/PrefilterList.ts +9 -0
  48. package/components/preview/Preview.ts +6 -0
  49. package/components/report-bar/ReportBar.ts +6 -0
  50. package/components/report-tiles/ReportTiles.ts +6 -0
  51. package/components/scheduler/Scheduler.ts +6 -0
  52. package/components/snackbar/SnackBar.ts +12 -0
  53. package/components/splitter/Splitter.ts +6 -0
  54. package/components/tab/BaseTab.ts +5 -0
  55. package/components/tab/DetailTabPage.ts +11 -0
  56. package/components/tab/Tab.ts +10 -0
  57. package/components/task/TaskBar.ts +13 -3
  58. package/components/task/TaskTiles.ts +12 -3
  59. package/components/topbar/TopBar.ts +10 -0
  60. package/components/tree-view/TreeView.ts +9 -0
  61. package/controls/DateControl.ts +47 -9
  62. package/controls/DateControlObjects.ts +15 -0
  63. package/controls/FormComboBox.ts +43 -26
  64. package/controls/FormComboBoxObjects.ts +27 -0
  65. package/controls/GridColumnControl.ts +35 -4
  66. package/controls/GridColumnControlObjects.ts +1 -1
  67. package/controls/InputFieldControl.ts +61 -15
  68. package/controls/InputFieldControlObjects.ts +19 -0
  69. package/controls/LookupDropdown.ts +59 -31
  70. package/controls/LookupDropdownObjects.ts +19 -0
  71. package/dist/Testwise.js +35 -0
  72. package/dist/Testwise.js.map +1 -1
  73. package/dist/artifact-builder/ArtifactManager.d.ts +18 -1
  74. package/dist/artifact-builder/ArtifactManager.js +24 -2
  75. package/dist/artifact-builder/ArtifactManager.js.map +1 -1
  76. package/dist/artifact-builder/ComponentClassModelBuilder.d.ts +22 -0
  77. package/dist/artifact-builder/ComponentClassModelBuilder.js +115 -0
  78. package/dist/artifact-builder/ComponentClassModelBuilder.js.map +1 -0
  79. package/dist/artifact-builder/InterfaceGenerator.d.ts +15 -6
  80. package/dist/artifact-builder/InterfaceGenerator.js +27 -26
  81. package/dist/artifact-builder/InterfaceGenerator.js.map +1 -1
  82. package/dist/artifact-builder/ModelDataBuilder.d.ts +7 -0
  83. package/dist/artifact-builder/ModelDataBuilder.js +13 -5
  84. package/dist/artifact-builder/ModelDataBuilder.js.map +1 -1
  85. package/dist/artifact-builder/ModelDataRefiner.d.ts +18 -1
  86. package/dist/artifact-builder/ModelDataRefiner.js +18 -3
  87. package/dist/artifact-builder/ModelDataRefiner.js.map +1 -1
  88. package/dist/artifact-builder/SchemaGenerator.d.ts +21 -5
  89. package/dist/artifact-builder/SchemaGenerator.js +38 -26
  90. package/dist/artifact-builder/SchemaGenerator.js.map +1 -1
  91. package/dist/artifact-builder/ScreenInterfaceRefiner.d.ts +18 -1
  92. package/dist/artifact-builder/ScreenInterfaceRefiner.js +23 -9
  93. package/dist/artifact-builder/ScreenInterfaceRefiner.js.map +1 -1
  94. package/dist/artifact-builder/SelectorBuilder.d.ts +18 -5
  95. package/dist/artifact-builder/SelectorBuilder.js +29 -14
  96. package/dist/artifact-builder/SelectorBuilder.js.map +1 -1
  97. package/dist/artifact-builder/SubjectClassModelBuilder.d.ts +38 -0
  98. package/dist/artifact-builder/SubjectClassModelBuilder.js +158 -0
  99. package/dist/artifact-builder/SubjectClassModelBuilder.js.map +1 -0
  100. package/dist/artifact-builder/SubjectComponentGenerator.d.ts +25 -14
  101. package/dist/artifact-builder/SubjectComponentGenerator.js +65 -189
  102. package/dist/artifact-builder/SubjectComponentGenerator.js.map +1 -1
  103. package/dist/artifact-builder/SubjectGenerator.d.ts +32 -13
  104. package/dist/artifact-builder/SubjectGenerator.js +81 -165
  105. package/dist/artifact-builder/SubjectGenerator.js.map +1 -1
  106. package/dist/artifact-builder/SubjectRegistration.d.ts +22 -8
  107. package/dist/artifact-builder/SubjectRegistration.js +29 -14
  108. package/dist/artifact-builder/SubjectRegistration.js.map +1 -1
  109. package/dist/artifact-builder/TsFileModel.d.ts +86 -0
  110. package/dist/artifact-builder/TsFileModel.js +2 -0
  111. package/dist/artifact-builder/TsFileModel.js.map +1 -0
  112. package/dist/artifact-builder/TsFileSerializer.d.ts +19 -0
  113. package/dist/artifact-builder/TsFileSerializer.js +225 -0
  114. package/dist/artifact-builder/TsFileSerializer.js.map +1 -0
  115. package/dist/artifact-builder/helpers/DataRetriever.d.ts +22 -3
  116. package/dist/artifact-builder/helpers/DataRetriever.js +56 -26
  117. package/dist/artifact-builder/helpers/DataRetriever.js.map +1 -1
  118. package/dist/artifact-builder/helpers/NamingHandler.d.ts +18 -6
  119. package/dist/artifact-builder/helpers/NamingHandler.js +20 -61
  120. package/dist/artifact-builder/helpers/NamingHandler.js.map +1 -1
  121. package/dist/artifact-builder/helpers/PipelinePaths.d.ts +52 -0
  122. package/dist/artifact-builder/helpers/PipelinePaths.js +99 -0
  123. package/dist/artifact-builder/helpers/PipelinePaths.js.map +1 -0
  124. package/dist/artifact-builder/helpers/Stopwatch.d.ts +10 -0
  125. package/dist/artifact-builder/helpers/Stopwatch.js +10 -0
  126. package/dist/artifact-builder/helpers/Stopwatch.js.map +1 -1
  127. package/dist/artifact-builder/helpers/index.d.ts +1 -0
  128. package/dist/artifact-builder/helpers/index.js +1 -0
  129. package/dist/artifact-builder/helpers/index.js.map +1 -1
  130. package/dist/artifact-builder/index.d.ts +4 -0
  131. package/dist/artifact-builder/index.js +4 -0
  132. package/dist/artifact-builder/index.js.map +1 -1
  133. package/dist/components/BaseComponentObjects.d.ts +17 -0
  134. package/dist/components/BaseComponentObjects.js +17 -0
  135. package/dist/components/BaseComponentObjects.js.map +1 -1
  136. package/dist/components/action-bar/ActionBar.d.ts +21 -24
  137. package/dist/components/action-bar/ActionBar.js +31 -24
  138. package/dist/components/action-bar/ActionBar.js.map +1 -1
  139. package/dist/components/action-bar/ActionBarObjects.d.ts +1 -0
  140. package/dist/components/action-bar/ActionBarObjects.js +1 -0
  141. package/dist/components/action-bar/ActionBarObjects.js.map +1 -1
  142. package/dist/components/action-bar/CustomActionBar.d.ts +6 -0
  143. package/dist/components/action-bar/CustomActionBar.js +6 -0
  144. package/dist/components/action-bar/CustomActionBar.js.map +1 -1
  145. package/dist/components/cardlist/Cardlist.d.ts +6 -0
  146. package/dist/components/cardlist/Cardlist.js +6 -0
  147. package/dist/components/cardlist/Cardlist.js.map +1 -1
  148. package/dist/components/chart/Chart.d.ts +6 -0
  149. package/dist/components/chart/Chart.js +6 -0
  150. package/dist/components/chart/Chart.js.map +1 -1
  151. package/dist/components/combined-filter/CombinedFilter.d.ts +9 -0
  152. package/dist/components/combined-filter/CombinedFilter.js +9 -0
  153. package/dist/components/combined-filter/CombinedFilter.js.map +1 -1
  154. package/dist/components/cube-view-bar/CubeViewBar.d.ts +6 -0
  155. package/dist/components/cube-view-bar/CubeViewBar.js +6 -0
  156. package/dist/components/cube-view-bar/CubeViewBar.js.map +1 -1
  157. package/dist/components/export/ExportComponent.d.ts +12 -0
  158. package/dist/components/export/ExportComponent.js +12 -0
  159. package/dist/components/export/ExportComponent.js.map +1 -1
  160. package/dist/components/filter/ExcelStyleFilterPopup.d.ts +25 -2
  161. package/dist/components/filter/ExcelStyleFilterPopup.js +60 -6
  162. package/dist/components/filter/ExcelStyleFilterPopup.js.map +1 -1
  163. package/dist/components/filter/ExcelStyleFilterPopupObjects.d.ts +8 -1
  164. package/dist/components/filter/ExcelStyleFilterPopupObjects.js +15 -2
  165. package/dist/components/filter/ExcelStyleFilterPopupObjects.js.map +1 -1
  166. package/dist/components/filter/FilterForm.d.ts +10 -0
  167. package/dist/components/filter/FilterForm.js +10 -0
  168. package/dist/components/filter/FilterForm.js.map +1 -1
  169. package/dist/components/filter/FilterPopup.d.ts +22 -4
  170. package/dist/components/filter/FilterPopup.js +17 -9
  171. package/dist/components/filter/FilterPopup.js.map +1 -1
  172. package/dist/components/filter/FilterPopupObjects.d.ts +5 -2
  173. package/dist/components/filter/FilterPopupObjects.js +5 -2
  174. package/dist/components/filter/FilterPopupObjects.js.map +1 -1
  175. package/dist/components/filter/FindForm.d.ts +7 -0
  176. package/dist/components/filter/FindForm.js +7 -0
  177. package/dist/components/filter/FindForm.js.map +1 -1
  178. package/dist/components/filter/ManagePrefilterPopup.d.ts +11 -0
  179. package/dist/components/filter/ManagePrefilterPopup.js +11 -0
  180. package/dist/components/filter/ManagePrefilterPopup.js.map +1 -1
  181. package/dist/components/form/Form.d.ts +16 -0
  182. package/dist/components/form/Form.js +16 -0
  183. package/dist/components/form/Form.js.map +1 -1
  184. package/dist/components/grid/Grid.d.ts +20 -1
  185. package/dist/components/grid/Grid.js +35 -25
  186. package/dist/components/grid/Grid.js.map +1 -1
  187. package/dist/components/grid/GridObjects.d.ts +0 -4
  188. package/dist/components/grid/GridObjects.js +0 -6
  189. package/dist/components/grid/GridObjects.js.map +1 -1
  190. package/dist/components/maps/Maps.d.ts +6 -0
  191. package/dist/components/maps/Maps.js +6 -0
  192. package/dist/components/maps/Maps.js.map +1 -1
  193. package/dist/components/menu/ListBarMenuComponent.d.ts +10 -0
  194. package/dist/components/menu/ListBarMenuComponent.js +10 -0
  195. package/dist/components/menu/ListBarMenuComponent.js.map +1 -1
  196. package/dist/components/pivot-grid/PivotGrid.d.ts +6 -0
  197. package/dist/components/pivot-grid/PivotGrid.js +6 -0
  198. package/dist/components/pivot-grid/PivotGrid.js.map +1 -1
  199. package/dist/components/pivot-grid/PivotGridFieldList.d.ts +7 -0
  200. package/dist/components/pivot-grid/PivotGridFieldList.js +7 -0
  201. package/dist/components/pivot-grid/PivotGridFieldList.js.map +1 -1
  202. package/dist/components/pop-up/AllRowsPopUp.d.ts +12 -0
  203. package/dist/components/pop-up/AllRowsPopUp.js +12 -0
  204. package/dist/components/pop-up/AllRowsPopUp.js.map +1 -1
  205. package/dist/components/pop-up/PopUpComponent.d.ts +11 -0
  206. package/dist/components/pop-up/PopUpComponent.js +11 -0
  207. package/dist/components/pop-up/PopUpComponent.js.map +1 -1
  208. package/dist/components/prefilter-list/PrefilterList.d.ts +9 -0
  209. package/dist/components/prefilter-list/PrefilterList.js +9 -0
  210. package/dist/components/prefilter-list/PrefilterList.js.map +1 -1
  211. package/dist/components/preview/Preview.d.ts +6 -0
  212. package/dist/components/preview/Preview.js +6 -0
  213. package/dist/components/preview/Preview.js.map +1 -1
  214. package/dist/components/report-bar/ReportBar.d.ts +6 -0
  215. package/dist/components/report-bar/ReportBar.js +6 -0
  216. package/dist/components/report-bar/ReportBar.js.map +1 -1
  217. package/dist/components/report-tiles/ReportTiles.d.ts +6 -0
  218. package/dist/components/report-tiles/ReportTiles.js +6 -0
  219. package/dist/components/report-tiles/ReportTiles.js.map +1 -1
  220. package/dist/components/scheduler/Scheduler.d.ts +6 -0
  221. package/dist/components/scheduler/Scheduler.js +6 -0
  222. package/dist/components/scheduler/Scheduler.js.map +1 -1
  223. package/dist/components/snackbar/SnackBar.d.ts +12 -0
  224. package/dist/components/snackbar/SnackBar.js +12 -0
  225. package/dist/components/snackbar/SnackBar.js.map +1 -1
  226. package/dist/components/splitter/Splitter.d.ts +6 -0
  227. package/dist/components/splitter/Splitter.js +6 -0
  228. package/dist/components/splitter/Splitter.js.map +1 -1
  229. package/dist/components/tab/BaseTab.d.ts +5 -0
  230. package/dist/components/tab/BaseTab.js +5 -0
  231. package/dist/components/tab/BaseTab.js.map +1 -1
  232. package/dist/components/tab/DetailTabPage.d.ts +11 -0
  233. package/dist/components/tab/DetailTabPage.js +11 -0
  234. package/dist/components/tab/DetailTabPage.js.map +1 -1
  235. package/dist/components/tab/Tab.d.ts +10 -0
  236. package/dist/components/tab/Tab.js +10 -0
  237. package/dist/components/tab/Tab.js.map +1 -1
  238. package/dist/components/task/TaskBar.d.ts +12 -2
  239. package/dist/components/task/TaskBar.js +13 -3
  240. package/dist/components/task/TaskBar.js.map +1 -1
  241. package/dist/components/task/TaskTiles.d.ts +11 -2
  242. package/dist/components/task/TaskTiles.js +12 -3
  243. package/dist/components/task/TaskTiles.js.map +1 -1
  244. package/dist/components/topbar/TopBar.d.ts +10 -0
  245. package/dist/components/topbar/TopBar.js +10 -0
  246. package/dist/components/topbar/TopBar.js.map +1 -1
  247. package/dist/components/tree-view/TreeView.d.ts +9 -0
  248. package/dist/components/tree-view/TreeView.js +9 -0
  249. package/dist/components/tree-view/TreeView.js.map +1 -1
  250. package/dist/controls/DateControl.d.ts +40 -2
  251. package/dist/controls/DateControl.js +24 -7
  252. package/dist/controls/DateControl.js.map +1 -1
  253. package/dist/controls/DateControlObjects.d.ts +8 -1
  254. package/dist/controls/DateControlObjects.js +8 -1
  255. package/dist/controls/DateControlObjects.js.map +1 -1
  256. package/dist/controls/FormComboBox.d.ts +30 -0
  257. package/dist/controls/FormComboBox.js +19 -16
  258. package/dist/controls/FormComboBox.js.map +1 -1
  259. package/dist/controls/FormComboBoxObjects.d.ts +12 -1
  260. package/dist/controls/FormComboBoxObjects.js +15 -1
  261. package/dist/controls/FormComboBoxObjects.js.map +1 -1
  262. package/dist/controls/GridColumnControl.d.ts +30 -0
  263. package/dist/controls/GridColumnControl.js +13 -4
  264. package/dist/controls/GridColumnControl.js.map +1 -1
  265. package/dist/controls/GridColumnControlObjects.js +1 -1
  266. package/dist/controls/GridColumnControlObjects.js.map +1 -1
  267. package/dist/controls/InputFieldControl.d.ts +50 -3
  268. package/dist/controls/InputFieldControl.js +40 -11
  269. package/dist/controls/InputFieldControl.js.map +1 -1
  270. package/dist/controls/InputFieldControlObjects.d.ts +10 -1
  271. package/dist/controls/InputFieldControlObjects.js +10 -1
  272. package/dist/controls/InputFieldControlObjects.js.map +1 -1
  273. package/dist/controls/LookupDropdown.d.ts +29 -0
  274. package/dist/controls/LookupDropdown.js +36 -25
  275. package/dist/controls/LookupDropdown.js.map +1 -1
  276. package/dist/controls/LookupDropdownObjects.d.ts +10 -0
  277. package/dist/controls/LookupDropdownObjects.js +11 -0
  278. package/dist/controls/LookupDropdownObjects.js.map +1 -0
  279. package/dist/enums/ElementTypes.d.ts +18 -0
  280. package/dist/enums/ElementTypes.js +18 -0
  281. package/dist/enums/ElementTypes.js.map +1 -1
  282. package/dist/enums/ExportFormat.d.ts +8 -0
  283. package/dist/enums/ExportFormat.js +8 -0
  284. package/dist/enums/ExportFormat.js.map +1 -1
  285. package/dist/enums/LogLevel.d.ts +17 -0
  286. package/dist/enums/LogLevel.js +17 -1
  287. package/dist/enums/LogLevel.js.map +1 -1
  288. package/dist/enums/index.d.ts +1 -0
  289. package/dist/enums/index.js +1 -0
  290. package/dist/enums/index.js.map +1 -1
  291. package/dist/helpers/ConfigChecker.d.ts +13 -0
  292. package/dist/helpers/ConfigChecker.js +13 -0
  293. package/dist/helpers/ConfigChecker.js.map +1 -1
  294. package/dist/helpers/Ensure.d.ts +13 -0
  295. package/dist/helpers/Ensure.js +13 -0
  296. package/dist/helpers/Ensure.js.map +1 -1
  297. package/dist/helpers/FlightTracker.d.ts +13 -3
  298. package/dist/helpers/FlightTracker.js +103 -17
  299. package/dist/helpers/FlightTracker.js.map +1 -1
  300. package/dist/helpers/GlobalWaitEventHandler.d.ts +13 -0
  301. package/dist/helpers/GlobalWaitEventHandler.js +13 -0
  302. package/dist/helpers/GlobalWaitEventHandler.js.map +1 -1
  303. package/dist/helpers/LoginHelper.d.ts +35 -1
  304. package/dist/helpers/LoginHelper.js +46 -11
  305. package/dist/helpers/LoginHelper.js.map +1 -1
  306. package/dist/helpers/PathResolver.d.ts +22 -0
  307. package/dist/helpers/PathResolver.js +22 -0
  308. package/dist/helpers/PathResolver.js.map +1 -1
  309. package/dist/helpers/Poll.d.ts +13 -1
  310. package/dist/helpers/Poll.js +12 -0
  311. package/dist/helpers/Poll.js.map +1 -1
  312. package/dist/helpers/RegexHelper.d.ts +15 -0
  313. package/dist/helpers/RegexHelper.js +15 -3
  314. package/dist/helpers/RegexHelper.js.map +1 -1
  315. package/dist/helpers/SubjectNavigator.d.ts +26 -0
  316. package/dist/helpers/SubjectNavigator.js +51 -0
  317. package/dist/helpers/SubjectNavigator.js.map +1 -0
  318. package/dist/helpers/UserSimulationHelper.d.ts +14 -0
  319. package/dist/helpers/UserSimulationHelper.js +14 -0
  320. package/dist/helpers/UserSimulationHelper.js.map +1 -1
  321. package/dist/helpers/index.d.ts +1 -0
  322. package/dist/helpers/index.js +1 -0
  323. package/dist/helpers/index.js.map +1 -1
  324. package/dist/index.d.ts +6 -20
  325. package/dist/index.js +1 -0
  326. package/dist/index.js.map +1 -1
  327. package/dist/interfaces/IComponentObjects.d.ts +12 -0
  328. package/dist/interfaces/IComponentSchemaMeta.d.ts +15 -0
  329. package/dist/interfaces/IComponentSchemaMeta.js +2 -0
  330. package/dist/interfaces/IComponentSchemaMeta.js.map +1 -0
  331. package/dist/interfaces/IProperty.d.ts +13 -0
  332. package/dist/interfaces/IRegisteredSubjects.d.ts +12 -0
  333. package/dist/interfaces/ISeedSubjectDraft.d.ts +16 -0
  334. package/dist/interfaces/ISeedSubjectDraft.js +2 -0
  335. package/dist/interfaces/ISeedSubjectDraft.js.map +1 -0
  336. package/dist/interfaces/ISubject.d.ts +13 -0
  337. package/dist/interfaces/ISubjectDetail.d.ts +11 -0
  338. package/dist/interfaces/ISubjectDetail.js +2 -0
  339. package/dist/interfaces/ISubjectDetail.js.map +1 -0
  340. package/dist/mcp/ArtifactResolver.d.ts +152 -0
  341. package/dist/mcp/ArtifactResolver.js +232 -0
  342. package/dist/mcp/ArtifactResolver.js.map +1 -0
  343. package/dist/mcp/index.d.ts +2 -0
  344. package/dist/mcp/index.js +2 -0
  345. package/dist/mcp/index.js.map +1 -0
  346. package/dist/page-extensions/GlobalComponents.d.ts +30 -0
  347. package/dist/page-extensions/GlobalComponents.js +30 -0
  348. package/dist/page-extensions/GlobalComponents.js.map +1 -1
  349. package/dist/page-extensions/GoToDeepLink.d.ts +9 -0
  350. package/dist/page-extensions/GoToDeepLink.js +9 -0
  351. package/dist/page-extensions/GoToDeepLink.js.map +1 -1
  352. package/dist/page-extensions/LoginFeatures.d.ts +8 -0
  353. package/dist/page-extensions/LoginFeatures.js +8 -0
  354. package/dist/page-extensions/LoginFeatures.js.map +1 -1
  355. package/dist/page-extensions/SubjectRegistry.d.ts +31 -0
  356. package/dist/page-extensions/SubjectRegistry.js +31 -0
  357. package/dist/page-extensions/SubjectRegistry.js.map +1 -1
  358. package/dist/page-extensions/UserSimulation.d.ts +21 -0
  359. package/dist/page-extensions/UserSimulation.js +21 -0
  360. package/dist/page-extensions/UserSimulation.js.map +1 -1
  361. package/dist/page-extensions/WaitEventHandler.d.ts +20 -0
  362. package/dist/page-extensions/WaitEventHandler.js +20 -0
  363. package/dist/page-extensions/WaitEventHandler.js.map +1 -1
  364. package/dist/page-overrides/ClickOverride.d.ts +23 -2
  365. package/dist/page-overrides/ClickOverride.js +34 -50
  366. package/dist/page-overrides/ClickOverride.js.map +1 -1
  367. package/dist/page-overrides/FillOverride.d.ts +23 -0
  368. package/dist/page-overrides/FillOverride.js +46 -66
  369. package/dist/page-overrides/FillOverride.js.map +1 -1
  370. package/dist/services/ConfigBuilder.d.ts +24 -0
  371. package/dist/services/ConfigBuilder.js +24 -0
  372. package/dist/services/ConfigBuilder.js.map +1 -1
  373. package/dist/services/IndiciumApi.service.d.ts +26 -0
  374. package/dist/services/IndiciumApi.service.js +40 -5
  375. package/dist/services/IndiciumApi.service.js.map +1 -1
  376. package/dist/services/Logger.d.ts +13 -0
  377. package/dist/services/Logger.js +39 -0
  378. package/dist/services/Logger.js.map +1 -1
  379. package/dist/types/Components.d.ts +18 -1
  380. package/dist/types/Components.js +0 -1
  381. package/dist/types/Components.js.map +1 -1
  382. package/dist/types/LocatorType.d.ts +5 -0
  383. package/dist/types/LocatorType.js +2 -0
  384. package/dist/types/LocatorType.js.map +1 -0
  385. package/dist/types/PollTypes.d.ts +8 -0
  386. package/dist/types/Test.d.ts +18 -0
  387. package/dist/types/Universal.d.ts +12 -0
  388. package/dist/types/index.d.ts +2 -0
  389. package/dist/types/index.js +2 -0
  390. package/dist/types/index.js.map +1 -1
  391. package/enums/ElementTypes.ts +18 -0
  392. package/enums/ExportFormat.ts +8 -0
  393. package/enums/LogLevel.ts +17 -1
  394. package/enums/index.ts +1 -0
  395. package/helpers/ConfigChecker.ts +13 -0
  396. package/helpers/Ensure.ts +13 -0
  397. package/helpers/FlightTracker.ts +109 -20
  398. package/helpers/GlobalWaitEventHandler.ts +13 -0
  399. package/helpers/LoginHelper.ts +49 -12
  400. package/helpers/PathResolver.ts +22 -0
  401. package/helpers/Poll.ts +13 -1
  402. package/helpers/RegexHelper.ts +15 -3
  403. package/helpers/SubjectNavigator.ts +57 -0
  404. package/helpers/UserSimulationHelper.ts +14 -0
  405. package/helpers/index.ts +1 -0
  406. package/index.ts +1 -0
  407. package/interfaces/IComponentObjects.ts +12 -0
  408. package/interfaces/IComponentSchemaMeta.ts +17 -0
  409. package/interfaces/IProperty.ts +13 -0
  410. package/interfaces/IRegisteredSubjects.ts +12 -0
  411. package/interfaces/ISeedSubjectDraft.ts +17 -0
  412. package/interfaces/ISubject.ts +13 -0
  413. package/interfaces/ISubjectDetail.ts +12 -0
  414. package/mcp/ArtifactResolver.ts +296 -0
  415. package/mcp/index.ts +2 -0
  416. package/package.json +20 -8
  417. package/page-extensions/GlobalComponents.ts +30 -0
  418. package/page-extensions/GoToDeepLink.ts +9 -0
  419. package/page-extensions/LoginFeatures.ts +8 -0
  420. package/page-extensions/SubjectRegistry.ts +32 -0
  421. package/page-extensions/UserSimulation.ts +21 -0
  422. package/page-extensions/WaitEventHandler.ts +20 -0
  423. package/page-overrides/ClickOverride.ts +36 -55
  424. package/page-overrides/FillOverride.ts +59 -73
  425. package/promptCredentials.js +1 -1
  426. package/scripts/Testwise.template.json +1 -1
  427. package/scripts/diagram.js +2267 -0
  428. package/scripts/main.js +84 -63
  429. package/scripts/postinstall.js +55 -42
  430. package/scripts/setup.js +91 -37
  431. package/scripts/sync.js +767 -748
  432. package/services/ConfigBuilder.ts +24 -0
  433. package/services/IndiciumApi.service.ts +44 -6
  434. package/services/Logger.ts +40 -0
  435. package/templates/copilot-instructions.md +130 -0
  436. package/templates/mcp.json +9 -0
  437. package/templates/testwise-test-expert.agent.md +453 -0
  438. package/tests/tsconfig.json +12 -0
  439. package/tsconfig.json +6 -2
  440. package/types/Components.ts +17 -2
  441. package/types/LocatorType.ts +5 -0
  442. package/types/PollTypes.ts +8 -0
  443. package/types/Test.ts +18 -0
  444. package/types/Universal.ts +12 -0
  445. package/types/index.ts +2 -0
  446. package/dist/interfaces/IStoredTestResults.d.ts +0 -5
  447. package/dist/interfaces/IStoredTestResults.js +0 -2
  448. package/dist/interfaces/IStoredTestResults.js.map +0 -1
  449. package/dist/templates/test-artifacts/SubjectPageBase.d.ts +0 -5
  450. package/dist/templates/test-artifacts/SubjectPageBase.js +0 -6
  451. package/dist/templates/test-artifacts/SubjectPageBase.js.map +0 -1
  452. package/dist/templates/test-artifacts/screens/index.d.ts +0 -1
  453. package/dist/templates/test-artifacts/screens/index.js +0 -2
  454. package/dist/templates/test-artifacts/screens/index.js.map +0 -1
  455. package/dist/templates/test-artifacts/subjects/index.d.ts +0 -1
  456. package/dist/templates/test-artifacts/subjects/index.js +0 -2
  457. package/dist/templates/test-artifacts/subjects/index.js.map +0 -1
  458. package/interfaces/IStoredTestResults.ts +0 -6
@@ -0,0 +1,232 @@
1
+ import * as fs from 'node:fs';
2
+ import * as path from 'node:path';
3
+ import { PipelinePaths } from '../artifact-builder/helpers/PipelinePaths.js';
4
+ /** All known screen context suffixes, ordered longest-first to avoid prefix clashes. */
5
+ const screenContexts = ['Detail', 'Popup', 'Main', 'Zoom'];
6
+ /**
7
+ * Runtime service that reads the generated test-artifact files to answer
8
+ * questions about available subjects, their screen-context variants, and the
9
+ * components exposed on each subject class.
10
+ *
11
+ * Intended to be used by the `@thinkwise/testwise-mcp` server so that AI
12
+ * tooling can discover the correct class names and component properties before
13
+ * generating test code — without having to guess or hallucinate names.
14
+ */
15
+ /**
16
+ * Runtime service that reads the generated test-artifact files to answer
17
+ * questions about available subjects, their screen-context variants, and the
18
+ * components exposed on each subject class.
19
+ *
20
+ * **What it does:** The `@thinkwise/testwise-mcp` MCP server calls these
21
+ * methods to surface information to AI tooling (e.g. GitHub Copilot agents)
22
+ * so the AI can write correct Testwise tests without guessing class names,
23
+ * property names, or field names.
24
+ *
25
+ * **How to use it (as a consumer of the MCP server):** You don't call this
26
+ * class directly — use the MCP tools:
27
+ * - `list_subjects()` — all available subject folder names
28
+ * - `list_artifacts(subject?, screenContext?)` — exact class names + import paths
29
+ * - `get_components(subject, screenContext)` — component properties on a class
30
+ * - `get_screen_interface(subject, screenContext)` — field/column names + control types
31
+ *
32
+ * **For contributors:** This class is intentionally side-effect-free — it
33
+ * only reads files and never writes anything. Do not add browser-interaction
34
+ * logic here.
35
+ *
36
+ * @example
37
+ * // Used internally by the MCP server:
38
+ * const resolver = new ArtifactResolver();
39
+ * const subjects = resolver.listSubjects();
40
+ * const artifacts = resolver.listArtifacts('Employee', 'Main');
41
+ */
42
+ export class ArtifactResolver {
43
+ constructor(paths) {
44
+ this._paths = paths ?? new PipelinePaths();
45
+ }
46
+ /**
47
+ * Returns all subject folder names (PascalCase) that have been generated
48
+ * into the test-artifacts directory.
49
+ *
50
+ * @example
51
+ * resolver.listSubjects();
52
+ * // → ["CustomerOrder", "Product", "Employee"]
53
+ */
54
+ listSubjects() {
55
+ const subjectsDir = this._paths.subjects;
56
+ if (!fs.existsSync(subjectsDir))
57
+ return [];
58
+ return fs.readdirSync(subjectsDir).filter((entry) => fs.statSync(path.join(subjectsDir, entry)).isDirectory());
59
+ }
60
+ /**
61
+ * Returns all artifacts for the given subject, optionally filtered to a
62
+ * specific screen context.
63
+ *
64
+ * When `subject` is omitted every generated artifact is returned.
65
+ *
66
+ * @example
67
+ * // All screen contexts for one subject
68
+ * resolver.listArtifacts('CustomerOrder');
69
+ * // → [{ className: "CustomerOrderMain", screenContext: "Main", ... }, ...]
70
+ *
71
+ * @example
72
+ * // One specific artifact
73
+ * resolver.listArtifacts('CustomerOrder', 'Main');
74
+ * // → [{ className: "CustomerOrderMain", screenContext: "Main", ... }]
75
+ */
76
+ listArtifacts(subject, screenContext) {
77
+ const subjects = subject ? [subject] : this.listSubjects();
78
+ const results = [];
79
+ for (const subjectName of subjects) {
80
+ const subjectDir = path.join(this._paths.subjects, subjectName);
81
+ if (!fs.existsSync(subjectDir))
82
+ continue;
83
+ const files = fs.readdirSync(subjectDir).filter((f) => f.endsWith('.ts') && f !== 'index.ts');
84
+ for (const file of files) {
85
+ const className = file.replace('.ts', '');
86
+ const context = this.inferScreenContext(className);
87
+ if (!context)
88
+ continue;
89
+ if (screenContext && context !== screenContext)
90
+ continue;
91
+ results.push({
92
+ subject: subjectName,
93
+ className,
94
+ screenContext: context,
95
+ importPath: `@thinkwise/testwise/test-artifacts/subjects/${subjectName}/${className}.js`
96
+ });
97
+ }
98
+ }
99
+ return results;
100
+ }
101
+ /**
102
+ * Returns the typed component properties declared on the generated subject
103
+ * class for the given subject + screen context combination.
104
+ *
105
+ * @example
106
+ * resolver.getComponents('CustomerOrder', 'Main');
107
+ * // → [
108
+ * // { propertyName: "grid", componentType: "Grid" },
109
+ * // { propertyName: "actionBar", componentType: "ActionBar" },
110
+ * // { propertyName: "filterForm",componentType: "FilterForm"},
111
+ * // ]
112
+ */
113
+ getComponents(subject, screenContext) {
114
+ const artifacts = this.listArtifacts(subject, screenContext);
115
+ if (artifacts.length === 0)
116
+ return [];
117
+ const filePath = path.join(this._paths.subjects, subject, `${artifacts[0].className}.ts`);
118
+ if (!fs.existsSync(filePath))
119
+ return [];
120
+ return this.parseComponentProperties(fs.readFileSync(filePath, 'utf-8'));
121
+ }
122
+ /**
123
+ * Returns all fields and columns declared on the generated screen interface
124
+ * for the given subject + screen context combination.
125
+ *
126
+ * The interface lives in `test-artifacts/screens/` and contains every field
127
+ * name, column name, and control type for the screen — enough for an AI to
128
+ * write a complete, accurate test without inspecting a live browser.
129
+ *
130
+ * @example
131
+ * resolver.getScreenInterface('CustomerOrder', 'Main');
132
+ * // → [
133
+ * // { propertyName: "customerName", controlType: "Field", componentType: "Form" },
134
+ * // { propertyName: "orderDate", controlType: "DatePicker", componentType: "Form" },
135
+ * // { propertyName: "status", controlType: "Lookup", componentType: "Form" },
136
+ * // { propertyName: "orderId", controlType: "Column", componentType: "Grid" },
137
+ * // ]
138
+ */
139
+ getScreenInterface(subject, screenContext) {
140
+ const artifacts = this.listArtifacts(subject, screenContext);
141
+ if (artifacts.length === 0)
142
+ return [];
143
+ // Component files live in Components/ subfolder under the subject folder
144
+ const componentsDir = path.join(this._paths.subjects, subject, 'Components');
145
+ if (!fs.existsSync(componentsDir))
146
+ return [];
147
+ const results = [];
148
+ const componentFiles = fs.readdirSync(componentsDir).filter((f) => f.endsWith('.ts'));
149
+ for (const file of componentFiles) {
150
+ const content = fs.readFileSync(path.join(componentsDir, file), 'utf-8');
151
+ const interfaceName = file.replace('.ts', '');
152
+ const fields = this.parseScreenInterface(content, interfaceName);
153
+ results.push(...fields);
154
+ }
155
+ return results;
156
+ }
157
+ // ── Private helpers ────────────────────────────────────────────────────────
158
+ inferScreenContext(className) {
159
+ for (const ctx of screenContexts) {
160
+ if (className.endsWith(ctx))
161
+ return ctx;
162
+ }
163
+ return undefined;
164
+ }
165
+ /**
166
+ * Parses component properties from a generated subject class.
167
+ *
168
+ * Generated classes declare properties without `public`:
169
+ * actionBarVXE6V0YT: ActionBar;
170
+ * gridQT3UL7F8: EmployeeGrid;
171
+ */
172
+ parseComponentProperties(content) {
173
+ const results = [];
174
+ // Match class-body property declarations: " name: Type;" (no public keyword)
175
+ // Excludes private fields (_name), constructor, and method declarations
176
+ const propertyRegex = /^\s{4}(\w+)\s*:\s*(\w+)\s*;/gm;
177
+ for (let match = propertyRegex.exec(content); match !== null; match = propertyRegex.exec(content)) {
178
+ const propertyName = match[1];
179
+ const componentType = match[2];
180
+ if (propertyName.startsWith('_'))
181
+ continue;
182
+ if (['string', 'number', 'boolean', 'Page', 'Locator'].includes(componentType))
183
+ continue;
184
+ results.push({ propertyName, componentType });
185
+ }
186
+ return results;
187
+ }
188
+ /**
189
+ * Parses fields/columns from the Components/ subfolder files for a subject.
190
+ *
191
+ * Generated component files (e.g. EmployeeGrid.ts, EmployeeForm.ts) declare
192
+ * getters like:
193
+ * public get firstNameColumn(): IGridColumnControl { ... }
194
+ * public get firstNameField(): IInputFieldControl { ... }
195
+ */
196
+ parseScreenInterface(content, interfaceName) {
197
+ const results = [];
198
+ // Match readonly interface members: " readonly bioColumn: IGridColumnControl;"
199
+ const interfaceRegex = /^\s+readonly\s+(\w+)\s*:\s*(I?\w+Control)\s*;/gm;
200
+ for (let match = interfaceRegex.exec(content); match !== null; match = interfaceRegex.exec(content)) {
201
+ const propertyName = match[1];
202
+ const rawType = match[2];
203
+ const controlType = this.inferControlType(rawType, propertyName);
204
+ const componentType = interfaceName.toLowerCase().includes('grid') ? 'Grid' : 'Form';
205
+ results.push({ propertyName, controlType, componentType: componentType });
206
+ }
207
+ return results;
208
+ }
209
+ inferControlType(rawType, propertyName) {
210
+ const typeMap = {
211
+ IGridColumnControl: 'Column',
212
+ GridColumnControl: 'Column',
213
+ IInputFieldControl: 'Field',
214
+ InputFieldControl: 'Field',
215
+ ILookupDropdown: 'Lookup',
216
+ LookupDropdown: 'Lookup',
217
+ IFormComboBox: 'ComboBox',
218
+ FormComboBox: 'ComboBox',
219
+ IDateControl: 'DatePicker',
220
+ DateControl: 'DatePicker',
221
+ ICheckboxControl: 'Checkbox',
222
+ CheckboxControl: 'Checkbox',
223
+ ITextareaControl: 'Textarea',
224
+ TextareaControl: 'Textarea'
225
+ };
226
+ if (typeMap[rawType])
227
+ return typeMap[rawType];
228
+ const suffixMatch = propertyName.match(/(Field|Lookup|Dropdown|DatePicker|Checkbox|Textarea|ComboBox|Column)$/i);
229
+ return suffixMatch ? suffixMatch[1] : rawType;
230
+ }
231
+ }
232
+ //# sourceMappingURL=ArtifactResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArtifactResolver.js","sourceRoot":"","sources":["../../mcp/ArtifactResolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export type { ComponentInfo, ScreenFieldInfo, SubjectArtifactInfo } from './ArtifactResolver.js';
2
+ export { ArtifactResolver } from './ArtifactResolver.js';
@@ -0,0 +1,2 @@
1
+ export { ArtifactResolver } from './ArtifactResolver.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../mcp/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1,6 +1,27 @@
1
1
  import type { Page } from '@playwright/test';
2
2
  import { ExportComponent, ListBarMenuComponent, ManagePrefilterPopup, PopUpComponent, SnackBarComponent, TopBarComponent } from '../components/index.js';
3
3
  import type { Test } from '../types/Test.js';
4
+ /**
5
+ * Holds pre-constructed instances of the Thinkwise UI components that are
6
+ * present globally across all screens (not tied to any specific subject).
7
+ *
8
+ * Accessed via `page.components` in tests. Available properties:
9
+ * - `popUp` — the main overlay/modal dialog
10
+ * - `export` — the export panel triggered from a grid or list
11
+ * - `snackBar` — the toast notification bar
12
+ * - `topBar` — the application top bar (breadcrumbs, user menu)
13
+ * - `listBarMenu` — the hamburger / list-bar dropdown menu
14
+ * - `managePrefilterPopup` — the "Manage prefilter" popup dialog
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * // Confirm a save popup:
19
+ * await page.components.popUp.confirm();
20
+ *
21
+ * // Check a snackbar message:
22
+ * await expect(page.components.snackBar.message).toHaveText('Saved successfully');
23
+ * ```
24
+ */
4
25
  declare class GlobalComponents {
5
26
  popUp: PopUpComponent;
6
27
  export: ExportComponent;
@@ -17,7 +38,16 @@ declare module '@playwright/test' {
17
38
  }
18
39
  export declare class Components {
19
40
  private _test;
41
+ /**
42
+ * Extends the Playwright `Test` fixture to attach a `GlobalComponents` instance to
43
+ * `page.components` before each test, providing access to shared UI components
44
+ * such as `popUp`, `export`, `snackBar`, `topBar`, `listBarMenu`, and `managePrefilterPopup`.
45
+ * @param test - The Playwright `Test` fixture to extend.
46
+ */
20
47
  constructor(test: Test);
48
+ /**
49
+ * Returns the extended `Test` fixture with `page.components` wired up.
50
+ */
21
51
  get test(): Test;
22
52
  }
23
53
  export {};
@@ -1,4 +1,25 @@
1
1
  import { ExportComponent, ListBarMenuComponent, ManagePrefilterPopup, PopUpComponent, SnackBarComponent, TopBarComponent } from '../components/index.js';
2
+ /**
3
+ * Holds pre-constructed instances of the Thinkwise UI components that are
4
+ * present globally across all screens (not tied to any specific subject).
5
+ *
6
+ * Accessed via `page.components` in tests. Available properties:
7
+ * - `popUp` — the main overlay/modal dialog
8
+ * - `export` — the export panel triggered from a grid or list
9
+ * - `snackBar` — the toast notification bar
10
+ * - `topBar` — the application top bar (breadcrumbs, user menu)
11
+ * - `listBarMenu` — the hamburger / list-bar dropdown menu
12
+ * - `managePrefilterPopup` — the "Manage prefilter" popup dialog
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * // Confirm a save popup:
17
+ * await page.components.popUp.confirm();
18
+ *
19
+ * // Check a snackbar message:
20
+ * await expect(page.components.snackBar.message).toHaveText('Saved successfully');
21
+ * ```
22
+ */
2
23
  class GlobalComponents {
3
24
  constructor(page) {
4
25
  this.popUp = new PopUpComponent(page);
@@ -10,6 +31,12 @@ class GlobalComponents {
10
31
  }
11
32
  }
12
33
  export class Components {
34
+ /**
35
+ * Extends the Playwright `Test` fixture to attach a `GlobalComponents` instance to
36
+ * `page.components` before each test, providing access to shared UI components
37
+ * such as `popUp`, `export`, `snackBar`, `topBar`, `listBarMenu`, and `managePrefilterPopup`.
38
+ * @param test - The Playwright `Test` fixture to extend.
39
+ */
13
40
  constructor(test) {
14
41
  this._test = test.extend({
15
42
  page: async ({ page }, use) => {
@@ -18,6 +45,9 @@ export class Components {
18
45
  }
19
46
  });
20
47
  }
48
+ /**
49
+ * Returns the extended `Test` fixture with `page.components` wired up.
50
+ */
21
51
  get test() {
22
52
  return this._test;
23
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GlobalComponents.js","sourceRoot":"","sources":["../../page-extensions/GlobalComponents.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EACjB,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAGhC,MAAM,gBAAgB;IAQpB,YAAY,IAAU;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,oBAAoB,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;CACF;AAQD,MAAM,OAAO,UAAU;IAGrB,YAAY,IAAU;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YACvB,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;gBAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBAE7C,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
1
+ {"version":3,"file":"GlobalComponents.js","sourceRoot":"","sources":["../../page-extensions/GlobalComponents.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EACjB,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAGhC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,gBAAgB;IAQpB,YAAY,IAAU;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,oBAAoB,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;CACF;AAQD,MAAM,OAAO,UAAU;IAGrB;;;;;OAKG;IACH,YAAY,IAAU;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YACvB,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;gBAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBAE7C,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
@@ -6,6 +6,15 @@ declare module '@playwright/test' {
6
6
  }
7
7
  export declare class GoToDeepLink {
8
8
  private _test;
9
+ /**
10
+ * Extends the Playwright `Test` fixture to add a `page.goToDeepLink(deepLink)` method.
11
+ * The method preserves the current `#application=` hash segment and appends the given
12
+ * deep link path before navigating to the resulting URL.
13
+ * @param test - The Playwright `Test` fixture to extend.
14
+ */
9
15
  constructor(test: Test);
16
+ /**
17
+ * Returns the extended `Test` fixture with `page.goToDeepLink` wired up.
18
+ */
10
19
  get test(): Test;
11
20
  }
@@ -1,4 +1,10 @@
1
1
  export class GoToDeepLink {
2
+ /**
3
+ * Extends the Playwright `Test` fixture to add a `page.goToDeepLink(deepLink)` method.
4
+ * The method preserves the current `#application=` hash segment and appends the given
5
+ * deep link path before navigating to the resulting URL.
6
+ * @param test - The Playwright `Test` fixture to extend.
7
+ */
2
8
  constructor(test) {
3
9
  this._test = test.extend({
4
10
  page: async ({ page }, use) => {
@@ -24,6 +30,9 @@ export class GoToDeepLink {
24
30
  }
25
31
  });
26
32
  }
33
+ /**
34
+ * Returns the extended `Test` fixture with `page.goToDeepLink` wired up.
35
+ */
27
36
  get test() {
28
37
  return this._test;
29
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GoToDeepLink.js","sourceRoot":"","sources":["../../page-extensions/GoToDeepLink.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,YAAY;IAGvB,YAAY,IAAU;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YACvB,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;gBAC5B,IAAI,CAAC,YAAY,GAAG,KAAK,EAAE,QAAgB,EAAuD,EAAE;oBAClG,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBACtC,MAAM,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;oBAE3D,IAAI,gBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC;wBAC5B,MAAM,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;wBACrG,GAAG,CAAC,IAAI,GAAG,gBAAgB,gBAAgB,EAAE,CAAC;oBAChD,CAAC;oBAED,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC7B,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBACnC,CAAC;oBAED,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC3B,GAAG,CAAC,IAAI,IAAI,QAAQ,CAAC;oBACvB,CAAC;yBAAM,CAAC;wBACN,GAAG,CAAC,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;oBAC7B,CAAC;oBAED,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACzC,CAAC,CAAC;gBAEF,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
1
+ {"version":3,"file":"GoToDeepLink.js","sourceRoot":"","sources":["../../page-extensions/GoToDeepLink.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,YAAY;IAGvB;;;;;OAKG;IACH,YAAY,IAAU;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YACvB,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;gBAC5B,IAAI,CAAC,YAAY,GAAG,KAAK,EAAE,QAAgB,EAAuD,EAAE;oBAClG,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBACtC,MAAM,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;oBAE3D,IAAI,gBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC;wBAC5B,MAAM,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;wBACrG,GAAG,CAAC,IAAI,GAAG,gBAAgB,gBAAgB,EAAE,CAAC;oBAChD,CAAC;oBAED,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC7B,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBACnC,CAAC;oBAED,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC3B,GAAG,CAAC,IAAI,IAAI,QAAQ,CAAC;oBACvB,CAAC;yBAAM,CAAC;wBACN,GAAG,CAAC,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;oBAC7B,CAAC;oBAED,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACzC,CAAC,CAAC;gBAEF,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
@@ -11,7 +11,15 @@ declare module '@playwright/test' {
11
11
  export declare class LoginFeatures {
12
12
  private _loginHelper;
13
13
  private _test;
14
+ /**
15
+ * Extends the Playwright `Test` fixture to attach `logIn`, `logInWithCredentials`,
16
+ * `logInWithOptions`, and `logOut` methods to the page, backed by `LoginHelper`.
17
+ * @param test - The Playwright `Test` fixture to extend.
18
+ */
14
19
  constructor(test: Test);
15
20
  private get loginHelper();
21
+ /**
22
+ * Returns the extended `Test` fixture with login methods wired up on `page`.
23
+ */
16
24
  get test(): Test;
17
25
  }
@@ -1,5 +1,10 @@
1
1
  import { LoginHelper } from '../helpers/LoginHelper.js';
2
2
  export class LoginFeatures {
3
+ /**
4
+ * Extends the Playwright `Test` fixture to attach `logIn`, `logInWithCredentials`,
5
+ * `logInWithOptions`, and `logOut` methods to the page, backed by `LoginHelper`.
6
+ * @param test - The Playwright `Test` fixture to extend.
7
+ */
3
8
  constructor(test) {
4
9
  this._test = test.extend({
5
10
  page: async ({ page }, use) => {
@@ -26,6 +31,9 @@ export class LoginFeatures {
26
31
  }
27
32
  return this._loginHelper;
28
33
  }
34
+ /**
35
+ * Returns the extended `Test` fixture with login methods wired up on `page`.
36
+ */
29
37
  get test() {
30
38
  return this._test;
31
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LoginFeatures.js","sourceRoot":"","sources":["../../page-extensions/LoginFeatures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAaxD,MAAM,OAAO,aAAa;IAIxB,YAAY,IAAU;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YACvB,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;gBAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;gBAE1C,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,aAAsB,EAAE,EAAE;oBAC5C,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC9C,CAAC,CAAC;gBAEF,IAAI,CAAC,oBAAoB,GAAG,KAAK,EAAE,QAAgB,EAAE,QAAgB,EAAE,EAAE;oBACvE,MAAM,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAClE,CAAC,CAAC;gBAEF,IAAI,CAAC,gBAAgB,GAAG,KAAK,EAAE,OAA8B,EAAE,EAAE;oBAC/D,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBACnD,CAAC,CAAC;gBAEF,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,EAAE;oBACvB,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;gBAClC,CAAC,CAAC;gBAEF,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAY,WAAW;QACrB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
1
+ {"version":3,"file":"LoginFeatures.js","sourceRoot":"","sources":["../../page-extensions/LoginFeatures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAaxD,MAAM,OAAO,aAAa;IAIxB;;;;OAIG;IACH,YAAY,IAAU;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YACvB,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;gBAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;gBAE1C,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,aAAsB,EAAE,EAAE;oBAC5C,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC9C,CAAC,CAAC;gBAEF,IAAI,CAAC,oBAAoB,GAAG,KAAK,EAAE,QAAgB,EAAE,QAAgB,EAAE,EAAE;oBACvE,MAAM,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAClE,CAAC,CAAC;gBAEF,IAAI,CAAC,gBAAgB,GAAG,KAAK,EAAE,OAA8B,EAAE,EAAE;oBAC/D,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBACnD,CAAC,CAAC;gBAEF,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,EAAE;oBACvB,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;gBAClC,CAAC,CAAC;gBAEF,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAY,WAAW;QACrB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
@@ -1,6 +1,37 @@
1
1
  import type { Test } from '../types/Test.js';
2
+ /**
3
+ * Playwright page-extension that makes every generated subject class available
4
+ * on the `page.subject` proxy during tests.
5
+ *
6
+ * **What it does:** At test startup it reads the registered subject list and
7
+ * wires up a `page.subject` property. Accessing `page.subject.EmployeeMain`
8
+ * returns an instance of the generated `EmployeeMain` class, which exposes
9
+ * typed component properties (`form`, `grid`, `actionBar`, etc.) and a
10
+ * `goTo()` method that navigates to that screen.
11
+ *
12
+ * **Important — do not edit this file directly.** The real implementation is
13
+ * generated from `templates/SubjectRegistry.template.ts` by the
14
+ * `SubjectRegistration` pipeline step. Any changes made here will be
15
+ * overwritten on the next `testwise sync`. Edit the template instead.
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * // In a test:
20
+ * const employee = await page.subject.EmployeeEditable1Main.goTo();
21
+ * await employee.form.firstNameField.fill('Jane');
22
+ * await employee.actionBar.save();
23
+ * ```
24
+ */
2
25
  export declare class SubjectRegistry {
3
26
  private _test;
27
+ /**
28
+ * Stores the provided `Test` instance. The full implementation of this class is
29
+ * generated from the template in the templates folder — do not edit here directly.
30
+ * @param test - The Playwright `Test` fixture.
31
+ */
4
32
  constructor(test: Test);
33
+ /**
34
+ * Returns the stored `Test` fixture.
35
+ */
5
36
  get test(): Test;
6
37
  }
@@ -1,8 +1,39 @@
1
+ /**
2
+ * Playwright page-extension that makes every generated subject class available
3
+ * on the `page.subject` proxy during tests.
4
+ *
5
+ * **What it does:** At test startup it reads the registered subject list and
6
+ * wires up a `page.subject` property. Accessing `page.subject.EmployeeMain`
7
+ * returns an instance of the generated `EmployeeMain` class, which exposes
8
+ * typed component properties (`form`, `grid`, `actionBar`, etc.) and a
9
+ * `goTo()` method that navigates to that screen.
10
+ *
11
+ * **Important — do not edit this file directly.** The real implementation is
12
+ * generated from `templates/SubjectRegistry.template.ts` by the
13
+ * `SubjectRegistration` pipeline step. Any changes made here will be
14
+ * overwritten on the next `testwise sync`. Edit the template instead.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * // In a test:
19
+ * const employee = await page.subject.EmployeeEditable1Main.goTo();
20
+ * await employee.form.firstNameField.fill('Jane');
21
+ * await employee.actionBar.save();
22
+ * ```
23
+ */
1
24
  export class SubjectRegistry {
25
+ /**
26
+ * Stores the provided `Test` instance. The full implementation of this class is
27
+ * generated from the template in the templates folder — do not edit here directly.
28
+ * @param test - The Playwright `Test` fixture.
29
+ */
2
30
  constructor(test) {
3
31
  // Implementation of this class is in the templates folder, don't edit here
4
32
  this._test = test;
5
33
  }
34
+ /**
35
+ * Returns the stored `Test` fixture.
36
+ */
6
37
  get test() {
7
38
  return this._test;
8
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SubjectRegistry.js","sourceRoot":"","sources":["../../page-extensions/SubjectRegistry.ts"],"names":[],"mappings":"AACA,MAAM,OAAO,eAAe;IAG1B,YAAY,IAAU;QACpB,2EAA2E;QAC3E,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
1
+ {"version":3,"file":"SubjectRegistry.js","sourceRoot":"","sources":["../../page-extensions/SubjectRegistry.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,eAAe;IAG1B;;;;OAIG;IACH,YAAY,IAAU;QACpB,2EAA2E;QAC3E,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
@@ -6,10 +6,31 @@ declare module '@playwright/test' {
6
6
  stopSimulation(): Promise<void>;
7
7
  }
8
8
  }
9
+ /**
10
+ * Playwright fixture layer that adds user-simulation methods to the page:
11
+ * `page.simulateUser(username)`, `page.getSimulatedUser()`, and
12
+ * `page.stopSimulation()`.
13
+ *
14
+ * These methods switch the active identity inside the running Thinkwise
15
+ * application without a full logout/login cycle, enabling RBAC tests.
16
+ *
17
+ * @example
18
+ * await page.simulateUser('manager@example.com');
19
+ * // assert manager-only visibility ...
20
+ * await page.stopSimulation();
21
+ */
9
22
  export declare class UserSimulation {
10
23
  private _userSimulationHelper;
11
24
  private _test;
25
+ /**
26
+ * Extends the Playwright `Test` fixture to attach `simulateUser`, `getSimulatedUser`,
27
+ * and `stopSimulation` methods to the page, backed by `UserSimulationHelper`.
28
+ * @param test - The Playwright `Test` fixture to extend.
29
+ */
12
30
  constructor(test: Test);
13
31
  private get userSimulationHelper();
32
+ /**
33
+ * Returns the extended `Test` fixture with user simulation methods wired up on `page`.
34
+ */
14
35
  get test(): Test;
15
36
  }
@@ -1,5 +1,23 @@
1
1
  import { UserSimulationHelper } from '../helpers/UserSimulationHelper.js';
2
+ /**
3
+ * Playwright fixture layer that adds user-simulation methods to the page:
4
+ * `page.simulateUser(username)`, `page.getSimulatedUser()`, and
5
+ * `page.stopSimulation()`.
6
+ *
7
+ * These methods switch the active identity inside the running Thinkwise
8
+ * application without a full logout/login cycle, enabling RBAC tests.
9
+ *
10
+ * @example
11
+ * await page.simulateUser('manager@example.com');
12
+ * // assert manager-only visibility ...
13
+ * await page.stopSimulation();
14
+ */
2
15
  export class UserSimulation {
16
+ /**
17
+ * Extends the Playwright `Test` fixture to attach `simulateUser`, `getSimulatedUser`,
18
+ * and `stopSimulation` methods to the page, backed by `UserSimulationHelper`.
19
+ * @param test - The Playwright `Test` fixture to extend.
20
+ */
3
21
  constructor(test) {
4
22
  this._test = test.extend({
5
23
  page: async ({ page }, use) => {
@@ -23,6 +41,9 @@ export class UserSimulation {
23
41
  }
24
42
  return this._userSimulationHelper;
25
43
  }
44
+ /**
45
+ * Returns the extended `Test` fixture with user simulation methods wired up on `page`.
46
+ */
26
47
  get test() {
27
48
  return this._test;
28
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"UserSimulation.js","sourceRoot":"","sources":["../../page-extensions/UserSimulation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAW1E,MAAM,OAAO,cAAc;IAIzB,YAAY,IAAU;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YACvB,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;gBAC5B,IAAI,CAAC,qBAAqB,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;gBAE5D,IAAI,CAAC,YAAY,GAAG,KAAK,EAAE,QAAgB,EAAE,EAAE;oBAC7C,MAAM,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACzD,CAAC,CAAC;gBAEF,IAAI,CAAC,gBAAgB,GAAG,KAAK,IAAI,EAAE;oBACjC,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,CAAC;gBAC5D,CAAC,CAAC;gBAEF,IAAI,CAAC,cAAc,GAAG,KAAK,IAAI,EAAE;oBAC/B,MAAM,IAAI,CAAC,oBAAoB,CAAC,cAAc,EAAE,CAAC;gBACnD,CAAC,CAAC;gBAEF,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAY,oBAAoB;QAC9B,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
1
+ {"version":3,"file":"UserSimulation.js","sourceRoot":"","sources":["../../page-extensions/UserSimulation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAW1E;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,cAAc;IAIzB;;;;OAIG;IACH,YAAY,IAAU;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YACvB,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;gBAC5B,IAAI,CAAC,qBAAqB,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;gBAE5D,IAAI,CAAC,YAAY,GAAG,KAAK,EAAE,QAAgB,EAAE,EAAE;oBAC7C,MAAM,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACzD,CAAC,CAAC;gBAEF,IAAI,CAAC,gBAAgB,GAAG,KAAK,IAAI,EAAE;oBACjC,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,CAAC;gBAC5D,CAAC,CAAC;gBAEF,IAAI,CAAC,cAAc,GAAG,KAAK,IAAI,EAAE;oBAC/B,MAAM,IAAI,CAAC,oBAAoB,CAAC,cAAc,EAAE,CAAC;gBACnD,CAAC,CAAC;gBAEF,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAY,oBAAoB;QAC9B,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
@@ -5,8 +5,28 @@ declare module '@playwright/test' {
5
5
  waitEventHandler: GlobalWaitEventHandler;
6
6
  }
7
7
  }
8
+ /**
9
+ * Playwright fixture layer that attaches a `GlobalWaitEventHandler` instance
10
+ * to `page.waitEventHandler` before each test.
11
+ *
12
+ * Use `page.waitEventHandler` when you need to block test execution until a
13
+ * specific URL pattern has been responded to — for example, waiting for a
14
+ * background data-load endpoint before asserting on results.
15
+ *
16
+ * @example
17
+ * await page.waitEventHandler.waitForUrl('/api/employees/load');
18
+ * await expect(subject.grid.rows()).toHaveCount(10);
19
+ */
8
20
  export declare class WaitEventHandler {
9
21
  private _test;
22
+ /**
23
+ * Extends the Playwright `Test` fixture to attach a `GlobalWaitEventHandler` instance
24
+ * to `page.waitEventHandler` before each test.
25
+ * @param test - The Playwright `Test` fixture to extend.
26
+ */
10
27
  constructor(test: Test);
28
+ /**
29
+ * Returns the extended `Test` fixture with `page.waitEventHandler` wired up.
30
+ */
11
31
  get test(): Test;
12
32
  }