@gtkx/testing 0.20.0 → 1.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/README.md +122 -55
  2. package/dist/act.d.ts +19 -0
  3. package/dist/act.d.ts.map +1 -0
  4. package/dist/act.js +48 -0
  5. package/dist/act.js.map +1 -0
  6. package/dist/bound-queries.d.ts +32 -0
  7. package/dist/bound-queries.d.ts.map +1 -0
  8. package/dist/bound-queries.js +2 -0
  9. package/dist/bound-queries.js.map +1 -0
  10. package/dist/build-queries.d.ts +16 -0
  11. package/dist/build-queries.d.ts.map +1 -0
  12. package/dist/build-queries.js +103 -0
  13. package/dist/build-queries.js.map +1 -0
  14. package/dist/cleanup-registry.d.ts +4 -0
  15. package/dist/cleanup-registry.d.ts.map +1 -0
  16. package/dist/cleanup-registry.js +11 -0
  17. package/dist/cleanup-registry.js.map +1 -0
  18. package/dist/config.d.ts +18 -51
  19. package/dist/config.d.ts.map +1 -1
  20. package/dist/config.js +9 -40
  21. package/dist/config.js.map +1 -1
  22. package/dist/editable.d.ts +7 -0
  23. package/dist/editable.d.ts.map +1 -0
  24. package/dist/editable.js +24 -0
  25. package/dist/editable.js.map +1 -0
  26. package/dist/errors.d.ts +29 -0
  27. package/dist/errors.d.ts.map +1 -0
  28. package/dist/errors.js +119 -0
  29. package/dist/errors.js.map +1 -0
  30. package/dist/fire-event.d.ts +7 -25
  31. package/dist/fire-event.d.ts.map +1 -1
  32. package/dist/fire-event.js +9 -29
  33. package/dist/fire-event.js.map +1 -1
  34. package/dist/frame-sync.d.ts +3 -0
  35. package/dist/frame-sync.d.ts.map +1 -0
  36. package/dist/frame-sync.js +30 -0
  37. package/dist/frame-sync.js.map +1 -0
  38. package/dist/index.d.ts +16 -11
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +10 -6
  41. package/dist/index.js.map +1 -1
  42. package/dist/matchers.d.ts +55 -0
  43. package/dist/matchers.d.ts.map +1 -0
  44. package/dist/matchers.js +103 -0
  45. package/dist/matchers.js.map +1 -0
  46. package/dist/pretty-widget.d.ts +21 -25
  47. package/dist/pretty-widget.d.ts.map +1 -1
  48. package/dist/pretty-widget.js +69 -115
  49. package/dist/pretty-widget.js.map +1 -1
  50. package/dist/queries.d.ts +130 -177
  51. package/dist/queries.d.ts.map +1 -1
  52. package/dist/queries.js +212 -325
  53. package/dist/queries.js.map +1 -1
  54. package/dist/register-test-hooks.d.ts +2 -0
  55. package/dist/register-test-hooks.d.ts.map +1 -0
  56. package/dist/register-test-hooks.js +15 -0
  57. package/dist/register-test-hooks.js.map +1 -0
  58. package/dist/render-hook.d.ts +14 -35
  59. package/dist/render-hook.d.ts.map +1 -1
  60. package/dist/render-hook.js +8 -45
  61. package/dist/render-hook.js.map +1 -1
  62. package/dist/render.d.ts +11 -41
  63. package/dist/render.d.ts.map +1 -1
  64. package/dist/render.js +129 -118
  65. package/dist/render.js.map +1 -1
  66. package/dist/role-helpers.d.ts +16 -51
  67. package/dist/role-helpers.d.ts.map +1 -1
  68. package/dist/role-helpers.js +39 -58
  69. package/dist/role-helpers.js.map +1 -1
  70. package/dist/screen.d.ts +6 -63
  71. package/dist/screen.d.ts.map +1 -1
  72. package/dist/screen.js +21 -109
  73. package/dist/screen.js.map +1 -1
  74. package/dist/screenshot.d.ts +20 -23
  75. package/dist/screenshot.d.ts.map +1 -1
  76. package/dist/screenshot.js +89 -48
  77. package/dist/screenshot.js.map +1 -1
  78. package/dist/suggestions.d.ts +22 -0
  79. package/dist/suggestions.d.ts.map +1 -0
  80. package/dist/suggestions.js +56 -0
  81. package/dist/suggestions.js.map +1 -0
  82. package/dist/traversal.d.ts +10 -8
  83. package/dist/traversal.d.ts.map +1 -1
  84. package/dist/traversal.js +28 -13
  85. package/dist/traversal.js.map +1 -1
  86. package/dist/types.d.ts +103 -172
  87. package/dist/types.d.ts.map +1 -1
  88. package/dist/types.js.map +1 -1
  89. package/dist/user-event/adjustment.d.ts +8 -0
  90. package/dist/user-event/adjustment.d.ts.map +1 -0
  91. package/dist/user-event/adjustment.js +33 -0
  92. package/dist/user-event/adjustment.js.map +1 -0
  93. package/dist/user-event/click.d.ts +7 -0
  94. package/dist/user-event/click.d.ts.map +1 -0
  95. package/dist/user-event/click.js +65 -0
  96. package/dist/user-event/click.js.map +1 -0
  97. package/dist/user-event/controller.d.ts +7 -0
  98. package/dist/user-event/controller.d.ts.map +1 -0
  99. package/dist/user-event/controller.js +28 -0
  100. package/dist/user-event/controller.js.map +1 -0
  101. package/dist/user-event/dispatch.d.ts +7 -0
  102. package/dist/user-event/dispatch.d.ts.map +1 -0
  103. package/dist/user-event/dispatch.js +10 -0
  104. package/dist/user-event/dispatch.js.map +1 -0
  105. package/dist/user-event/event-wrapper.d.ts +3 -0
  106. package/dist/user-event/event-wrapper.d.ts.map +1 -0
  107. package/dist/user-event/event-wrapper.js +48 -0
  108. package/dist/user-event/event-wrapper.js.map +1 -0
  109. package/dist/user-event/gesture.d.ts +31 -0
  110. package/dist/user-event/gesture.d.ts.map +1 -0
  111. package/dist/user-event/gesture.js +105 -0
  112. package/dist/user-event/gesture.js.map +1 -0
  113. package/dist/user-event/index.d.ts +44 -0
  114. package/dist/user-event/index.d.ts.map +1 -0
  115. package/dist/user-event/index.js +38 -0
  116. package/dist/user-event/index.js.map +1 -0
  117. package/dist/user-event/keyboard.d.ts +9 -0
  118. package/dist/user-event/keyboard.d.ts.map +1 -0
  119. package/dist/user-event/keyboard.js +173 -0
  120. package/dist/user-event/keyboard.js.map +1 -0
  121. package/dist/user-event/pointer.d.ts +6 -0
  122. package/dist/user-event/pointer.d.ts.map +1 -0
  123. package/dist/user-event/pointer.js +27 -0
  124. package/dist/user-event/pointer.js.map +1 -0
  125. package/dist/user-event/selection.d.ts +4 -0
  126. package/dist/user-event/selection.d.ts.map +1 -0
  127. package/dist/user-event/selection.js +106 -0
  128. package/dist/user-event/selection.js.map +1 -0
  129. package/dist/user-event/state.d.ts +6 -0
  130. package/dist/user-event/state.d.ts.map +1 -0
  131. package/dist/user-event/state.js +2 -0
  132. package/dist/user-event/state.js.map +1 -0
  133. package/dist/user-event/text.d.ts +17 -0
  134. package/dist/user-event/text.d.ts.map +1 -0
  135. package/dist/user-event/text.js +107 -0
  136. package/dist/user-event/text.js.map +1 -0
  137. package/dist/wait-for.d.ts +13 -32
  138. package/dist/wait-for.d.ts.map +1 -1
  139. package/dist/wait-for.js +62 -73
  140. package/dist/wait-for.js.map +1 -1
  141. package/dist/widget-accessible-properties.d.ts +33 -0
  142. package/dist/widget-accessible-properties.d.ts.map +1 -0
  143. package/dist/widget-accessible-properties.js +215 -0
  144. package/dist/widget-accessible-properties.js.map +1 -0
  145. package/dist/within.d.ts +9 -26
  146. package/dist/within.d.ts.map +1 -1
  147. package/dist/within.js +15 -25
  148. package/dist/within.js.map +1 -1
  149. package/package.json +21 -12
  150. package/src/act.ts +68 -0
  151. package/src/bound-queries.ts +36 -0
  152. package/src/build-queries.ts +185 -0
  153. package/src/cleanup-registry.ts +14 -0
  154. package/src/config.ts +28 -59
  155. package/src/editable.ts +30 -0
  156. package/src/errors.ts +130 -0
  157. package/src/fire-event.ts +11 -38
  158. package/src/frame-sync.ts +34 -0
  159. package/src/index.ts +60 -18
  160. package/src/matchers.ts +200 -0
  161. package/src/pretty-widget.ts +99 -138
  162. package/src/queries.ts +321 -425
  163. package/src/register-test-hooks.ts +16 -0
  164. package/src/render-hook.tsx +31 -44
  165. package/src/render.tsx +161 -149
  166. package/src/role-helpers.ts +47 -67
  167. package/src/screen.ts +21 -114
  168. package/src/screenshot.ts +104 -55
  169. package/src/suggestions.ts +87 -0
  170. package/src/traversal.ts +32 -18
  171. package/src/types.ts +115 -176
  172. package/src/user-event/adjustment.ts +49 -0
  173. package/src/user-event/click.ts +70 -0
  174. package/src/user-event/controller.ts +44 -0
  175. package/src/user-event/dispatch.ts +23 -0
  176. package/src/user-event/event-wrapper.ts +54 -0
  177. package/src/user-event/gesture.ts +154 -0
  178. package/src/user-event/index.ts +74 -0
  179. package/src/user-event/keyboard.ts +204 -0
  180. package/src/user-event/pointer.ts +34 -0
  181. package/src/user-event/selection.ts +122 -0
  182. package/src/user-event/state.ts +6 -0
  183. package/src/user-event/text.ts +137 -0
  184. package/src/wait-for.ts +79 -80
  185. package/src/widget-accessible-properties.ts +244 -0
  186. package/src/within.ts +26 -27
  187. package/dist/bind-queries.d.ts +0 -14
  188. package/dist/bind-queries.d.ts.map +0 -1
  189. package/dist/bind-queries.js +0 -29
  190. package/dist/bind-queries.js.map +0 -1
  191. package/dist/error-builder.d.ts +0 -28
  192. package/dist/error-builder.d.ts.map +0 -1
  193. package/dist/error-builder.js +0 -81
  194. package/dist/error-builder.js.map +0 -1
  195. package/dist/timing.d.ts +0 -18
  196. package/dist/timing.d.ts.map +0 -1
  197. package/dist/timing.js +0 -18
  198. package/dist/timing.js.map +0 -1
  199. package/dist/user-event.d.ts +0 -138
  200. package/dist/user-event.d.ts.map +0 -1
  201. package/dist/user-event.js +0 -411
  202. package/dist/user-event.js.map +0 -1
  203. package/dist/widget-text.d.ts +0 -69
  204. package/dist/widget-text.d.ts.map +0 -1
  205. package/dist/widget-text.js +0 -177
  206. package/dist/widget-text.js.map +0 -1
  207. package/dist/widget.d.ts +0 -3
  208. package/dist/widget.d.ts.map +0 -1
  209. package/dist/widget.js +0 -13
  210. package/dist/widget.js.map +0 -1
  211. package/src/bind-queries.ts +0 -52
  212. package/src/error-builder.ts +0 -102
  213. package/src/timing.ts +0 -17
  214. package/src/user-event.ts +0 -492
  215. package/src/widget-text.ts +0 -202
  216. package/src/widget.ts +0 -15
@@ -1 +0,0 @@
1
- {"version":3,"file":"widget-text.js","sourceRoot":"","sources":["../src/widget-text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AAErC,MAAM,YAAY,GAAG,CAAC,MAAkB,EAAiB,EAAE;IACvD,MAAM,OAAO,GAAG,MAAmB,CAAC;IACpC,MAAM,aAAa,GAAG,MAAyB,CAAC;IAChD,OAAO,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,IAAI,IAAI,CAAC;AACrE,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,MAAkB,EAAiB,EAAE;IACzD,IAAI,UAAU,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QAChE,OAAQ,MAAM,CAAC,QAAQ,EAAa,IAAI,IAAI,CAAC;IACjD,CAAC;IAED,IAAI,SAAS,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QAC9D,OAAQ,MAAM,CAAC,OAAO,EAAa,IAAI,IAAI,CAAC;IAChD,CAAC;IAED,IAAI,UAAU,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QAChE,OAAQ,MAAM,CAAC,QAAQ,EAAa,IAAI,IAAI,CAAC;IACjD,CAAC;IAED,OAAO,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC;AACvE,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAAC,MAAkB,EAAY,EAAE;IAC9D,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;IAEnC,OAAO,KAAK,EAAE,CAAC;QACX,IAAI,KAAK,CAAC,iBAAiB,EAAE,KAAK,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YACzD,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,SAAS;gBAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC;QACD,KAAK,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;IACnC,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,MAAkB,EAAY,EAAE;IACxD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;IAEnC,OAAO,KAAK,EAAE,CAAC;QACX,IAAI,KAAK,CAAC,iBAAiB,EAAE,KAAK,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YACzD,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,SAAS;gBAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1C,KAAK,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;IACnC,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAkB,EAAiB,EAAE;IAC/D,MAAM,IAAI,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;IACxC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAEpC,MAAM,WAAW,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACrD,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAChE,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAkB,EAAiB,EAAE;IACvE,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,MAAkB,EAAiB,EAAE;IACzE,MAAM,IAAI,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;IACxC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAEpC,IAAI,IAAI,KAAK,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAClC,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,KAAK,GAAG,MAAmB,CAAC;YAClC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,IAAI,EAAE,CAAC;gBACP,OAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC;YACnC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAE5B,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC/C,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjE,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAkB,EAAiB,EAAE;IACjE,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;AAC5B,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAkB,EAAkB,EAAE;IACxE,MAAM,IAAI,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;IAExC,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC;QACjC,KAAK,GAAG,CAAC,cAAc,CAAC,KAAK;YACzB,OAAQ,MAA0B,CAAC,SAAS,EAAE,CAAC;QACnD,KAAK,GAAG,CAAC,cAAc,CAAC,aAAa;YACjC,OAAQ,MAA2B,CAAC,SAAS,EAAE,CAAC;QACpD,KAAK,GAAG,CAAC,cAAc,CAAC,MAAM;YAC1B,OAAQ,MAAqB,CAAC,SAAS,EAAE,CAAC;QAC9C;YACI,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAkB,EAAkB,EAAE;IACxE,MAAM,IAAI,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;IAExC,IAAI,IAAI,KAAK,GAAG,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;QAC5C,OAAQ,MAA2B,CAAC,SAAS,EAAE,CAAC;IACpD,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,MAAkB,EAAkB,EAAE;IACzE,IAAI,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC;IAChC,CAAC;IAED,IAAI,MAAM,YAAY,GAAG,CAAC,YAAY,EAAE,CAAC;QACrC,OAAO,MAAM,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,IAAI,IAAI,CAAC;IACtD,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,MAAkB,EAAkB,EAAE;IACzE,MAAM,IAAI,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;IAExC,IAAI,IAAI,KAAK,GAAG,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;QAClC,OAAQ,MAAyB,CAAC,UAAU,EAAE,CAAC;IACnD,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC"}
package/dist/widget.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import * as Gtk from "@gtkx/ffi/gtk";
2
- export declare const isEditable: (widget: unknown) => widget is Gtk.Editable;
3
- //# sourceMappingURL=widget.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../src/widget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AAQrC,eAAO,MAAM,UAAU,GAAI,QAAQ,OAAO,KAAG,MAAM,IAAI,GAAG,CAAC,QAM1D,CAAC"}
package/dist/widget.js DELETED
@@ -1,13 +0,0 @@
1
- import * as Gtk from "@gtkx/ffi/gtk";
2
- const EDITABLE_ROLES = new Set([
3
- Gtk.AccessibleRole.TEXT_BOX,
4
- Gtk.AccessibleRole.SEARCH_BOX,
5
- Gtk.AccessibleRole.SPIN_BUTTON,
6
- ]);
7
- export const isEditable = (widget) => {
8
- if (!(widget instanceof Gtk.Widget)) {
9
- return false;
10
- }
11
- return EDITABLE_ROLES.has(widget.getAccessibleRole());
12
- };
13
- //# sourceMappingURL=widget.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"widget.js","sourceRoot":"","sources":["../src/widget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AAErC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC3B,GAAG,CAAC,cAAc,CAAC,QAAQ;IAC3B,GAAG,CAAC,cAAc,CAAC,UAAU;IAC7B,GAAG,CAAC,cAAc,CAAC,WAAW;CACjC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAe,EAA0B,EAAE;IAClE,IAAI,CAAC,CAAC,MAAM,YAAY,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;AAC1D,CAAC,CAAC"}
@@ -1,52 +0,0 @@
1
- import type * as Gtk from "@gtkx/ffi/gtk";
2
- import * as queries from "./queries.js";
3
- import type { Container } from "./traversal.js";
4
- import type { BoundQueries, ByRoleOptions, TextMatch, TextMatchOptions } from "./types.js";
5
-
6
- type ContainerOrGetter = Container | (() => Container);
7
-
8
- const resolveContainer = (containerOrGetter: ContainerOrGetter): Container =>
9
- typeof containerOrGetter === "function" ? containerOrGetter() : containerOrGetter;
10
-
11
- /**
12
- * Binds all query functions to a container.
13
- *
14
- * @param containerOrGetter - The container to bind queries to, or a function that returns it
15
- * @returns Object with all query methods bound to the container
16
- *
17
- * @internal
18
- */
19
- export const bindQueries = (containerOrGetter: ContainerOrGetter): BoundQueries => ({
20
- queryByRole: (role: Gtk.AccessibleRole, options?: ByRoleOptions) =>
21
- queries.queryByRole(resolveContainer(containerOrGetter), role, options),
22
- queryByLabelText: (text: TextMatch, options?: TextMatchOptions) =>
23
- queries.queryByLabelText(resolveContainer(containerOrGetter), text, options),
24
- queryByText: (text: TextMatch, options?: TextMatchOptions) =>
25
- queries.queryByText(resolveContainer(containerOrGetter), text, options),
26
- queryByTestId: (testId: TextMatch, options?: TextMatchOptions) =>
27
- queries.queryByTestId(resolveContainer(containerOrGetter), testId, options),
28
- queryAllByRole: (role: Gtk.AccessibleRole, options?: ByRoleOptions) =>
29
- queries.queryAllByRole(resolveContainer(containerOrGetter), role, options),
30
- queryAllByLabelText: (text: TextMatch, options?: TextMatchOptions) =>
31
- queries.queryAllByLabelText(resolveContainer(containerOrGetter), text, options),
32
- queryAllByText: (text: TextMatch, options?: TextMatchOptions) =>
33
- queries.queryAllByText(resolveContainer(containerOrGetter), text, options),
34
- queryAllByTestId: (testId: TextMatch, options?: TextMatchOptions) =>
35
- queries.queryAllByTestId(resolveContainer(containerOrGetter), testId, options),
36
- findByRole: (role: Gtk.AccessibleRole, options?: ByRoleOptions) =>
37
- queries.findByRole(resolveContainer(containerOrGetter), role, options),
38
- findByLabelText: (text: TextMatch, options?: TextMatchOptions) =>
39
- queries.findByLabelText(resolveContainer(containerOrGetter), text, options),
40
- findByText: (text: TextMatch, options?: TextMatchOptions) =>
41
- queries.findByText(resolveContainer(containerOrGetter), text, options),
42
- findByTestId: (testId: TextMatch, options?: TextMatchOptions) =>
43
- queries.findByTestId(resolveContainer(containerOrGetter), testId, options),
44
- findAllByRole: (role: Gtk.AccessibleRole, options?: ByRoleOptions) =>
45
- queries.findAllByRole(resolveContainer(containerOrGetter), role, options),
46
- findAllByLabelText: (text: TextMatch, options?: TextMatchOptions) =>
47
- queries.findAllByLabelText(resolveContainer(containerOrGetter), text, options),
48
- findAllByText: (text: TextMatch, options?: TextMatchOptions) =>
49
- queries.findAllByText(resolveContainer(containerOrGetter), text, options),
50
- findAllByTestId: (testId: TextMatch, options?: TextMatchOptions) =>
51
- queries.findAllByTestId(resolveContainer(containerOrGetter), testId, options),
52
- });
@@ -1,102 +0,0 @@
1
- import type * as Gtk from "@gtkx/ffi/gtk";
2
- import { getConfig } from "./config.js";
3
- import { prettyWidget } from "./pretty-widget.js";
4
- import { formatRole, prettyRoles } from "./role-helpers.js";
5
- import type { Container } from "./traversal.js";
6
- import type { ByRoleOptions, TextMatch } from "./types.js";
7
-
8
- type QueryType = "role" | "text" | "labelText" | "testId";
9
-
10
- const formatTextMatcher = (text: TextMatch): string => {
11
- if (typeof text === "function") {
12
- return "custom function";
13
- }
14
- if (text instanceof RegExp) {
15
- return text.toString();
16
- }
17
- return `'${text}'`;
18
- };
19
-
20
- const formatByRoleDescription = (role: Gtk.AccessibleRole, options?: ByRoleOptions): string => {
21
- const parts = [`role '${formatRole(role).toUpperCase()}'`];
22
- if (options?.name) parts.push(`name ${formatTextMatcher(options.name)}`);
23
- if (options?.checked !== undefined) parts.push(`checked=${options.checked}`);
24
- if (options?.pressed !== undefined) parts.push(`pressed=${options.pressed}`);
25
- if (options?.selected !== undefined) parts.push(`selected=${options.selected}`);
26
- if (options?.expanded !== undefined) parts.push(`expanded=${options.expanded}`);
27
- if (options?.level !== undefined) parts.push(`level=${options.level}`);
28
- return parts.join(" and ");
29
- };
30
-
31
- const formatQueryDescription = (
32
- queryType: QueryType,
33
- args: { role?: Gtk.AccessibleRole; text?: TextMatch; testId?: TextMatch; options?: ByRoleOptions },
34
- ): string => {
35
- switch (queryType) {
36
- case "role":
37
- return formatByRoleDescription(args.role as Gtk.AccessibleRole, args.options);
38
- case "text":
39
- return `text ${formatTextMatcher(args.text as TextMatch)}`;
40
- case "labelText":
41
- return `label text ${formatTextMatcher(args.text as TextMatch)}`;
42
- case "testId":
43
- return `test id ${formatTextMatcher(args.testId as TextMatch)}`;
44
- }
45
- };
46
-
47
- /**
48
- * Builds an error for when no elements match a query.
49
- */
50
- export const buildNotFoundError = (
51
- container: Container,
52
- queryType: QueryType,
53
- args: { role?: Gtk.AccessibleRole; text?: TextMatch; testId?: TextMatch; options?: ByRoleOptions },
54
- ): Error => {
55
- const config = getConfig();
56
- const description = formatQueryDescription(queryType, args);
57
- const lines: string[] = [`Unable to find an element with ${description}`];
58
-
59
- if (config.showSuggestions && queryType === "role") {
60
- lines.push("");
61
- lines.push("Here are the accessible roles:");
62
- lines.push("");
63
- lines.push(prettyRoles(container));
64
- }
65
-
66
- lines.push("");
67
- lines.push(prettyWidget(container, { highlight: false }));
68
-
69
- const message = lines.join("\n");
70
- return config.getElementError(message, container);
71
- };
72
-
73
- /**
74
- * Builds an error for when multiple elements match a query but only one was expected.
75
- */
76
- export const buildMultipleFoundError = (
77
- container: Container,
78
- queryType: QueryType,
79
- args: { role?: Gtk.AccessibleRole; text?: TextMatch; testId?: TextMatch; options?: ByRoleOptions },
80
- count: number,
81
- ): Error => {
82
- const config = getConfig();
83
- const description = formatQueryDescription(queryType, args);
84
- const lines: string[] = [`Found ${count} elements with ${description}, but expected only one`];
85
-
86
- lines.push("");
87
- lines.push(prettyWidget(container, { highlight: false }));
88
-
89
- const message = lines.join("\n");
90
- return config.getElementError(message, container);
91
- };
92
-
93
- /**
94
- * Builds a timeout error with the last query error message.
95
- */
96
- export const buildTimeoutError = (timeout: number, lastError: Error | null): Error => {
97
- const baseMessage = `Timed out after ${timeout}ms`;
98
- if (lastError) {
99
- return new Error(`${baseMessage}.\n\n${lastError.message}`);
100
- }
101
- return new Error(baseMessage);
102
- };
package/src/timing.ts DELETED
@@ -1,17 +0,0 @@
1
- /**
2
- * Yields to the event loop, allowing pending GTK events to process.
3
- *
4
- * Use this after actions that trigger async widget updates.
5
- *
6
- * @returns Promise that resolves on the next event loop tick
7
- *
8
- * @example
9
- * ```tsx
10
- * import { tick } from "@gtkx/testing";
11
- *
12
- * widget.setSensitive(false);
13
- * await tick(); // Wait for GTK to process the change
14
- * expect(widget.getSensitive()).toBe(false);
15
- * ```
16
- */
17
- export const tick = (): Promise<void> => new Promise((resolve) => setTimeout(resolve, 0));