@gtkx/testing 1.6.0 → 2.0.0-beta.10

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 (132) hide show
  1. package/README.md +47 -44
  2. package/dist/accessible-native.d.ts +1 -1
  3. package/dist/accessible-native.d.ts.map +1 -1
  4. package/dist/accessible-native.js +29 -8
  5. package/dist/accessible-native.js.map +1 -1
  6. package/dist/build-queries.d.ts +9 -9
  7. package/dist/build-queries.d.ts.map +1 -1
  8. package/dist/build-queries.js +2 -1
  9. package/dist/build-queries.js.map +1 -1
  10. package/dist/config.d.ts.map +1 -1
  11. package/dist/config.js +1 -3
  12. package/dist/config.js.map +1 -1
  13. package/dist/fire-event.d.ts +3 -3
  14. package/dist/fire-event.d.ts.map +1 -1
  15. package/dist/fire-event.js +14 -4
  16. package/dist/fire-event.js.map +1 -1
  17. package/dist/matchers.d.ts +52 -56
  18. package/dist/matchers.d.ts.map +1 -1
  19. package/dist/matchers.js +4 -16
  20. package/dist/matchers.js.map +1 -1
  21. package/dist/queries.d.ts +37 -133
  22. package/dist/queries.d.ts.map +1 -1
  23. package/dist/queries.js +48 -136
  24. package/dist/queries.js.map +1 -1
  25. package/dist/query-helpers.d.ts +2 -2
  26. package/dist/query-helpers.d.ts.map +1 -1
  27. package/dist/query-helpers.js +10 -3
  28. package/dist/query-helpers.js.map +1 -1
  29. package/dist/render.d.ts.map +1 -1
  30. package/dist/render.js +4 -0
  31. package/dist/render.js.map +1 -1
  32. package/dist/role-helpers.d.ts +1 -1
  33. package/dist/role-helpers.d.ts.map +1 -1
  34. package/dist/role-helpers.js +2 -1
  35. package/dist/role-helpers.js.map +1 -1
  36. package/dist/screenshot.d.ts +1 -1
  37. package/dist/screenshot.d.ts.map +1 -1
  38. package/dist/screenshot.js +26 -8
  39. package/dist/screenshot.js.map +1 -1
  40. package/dist/suggestions.d.ts +1 -1
  41. package/dist/suggestions.d.ts.map +1 -1
  42. package/dist/suggestions.js +3 -1
  43. package/dist/suggestions.js.map +1 -1
  44. package/dist/traversal.d.ts +4 -4
  45. package/dist/traversal.d.ts.map +1 -1
  46. package/dist/traversal.js +25 -7
  47. package/dist/traversal.js.map +1 -1
  48. package/dist/types.d.ts +10 -10
  49. package/dist/types.d.ts.map +1 -1
  50. package/dist/types.js.map +1 -1
  51. package/dist/user-event/adjustment.d.ts +2 -14
  52. package/dist/user-event/adjustment.d.ts.map +1 -1
  53. package/dist/user-event/adjustment.js +2 -14
  54. package/dist/user-event/adjustment.js.map +1 -1
  55. package/dist/user-event/click.d.ts +20 -45
  56. package/dist/user-event/click.d.ts.map +1 -1
  57. package/dist/user-event/click.js +31 -50
  58. package/dist/user-event/click.js.map +1 -1
  59. package/dist/user-event/controller.d.ts +5 -5
  60. package/dist/user-event/controller.d.ts.map +1 -1
  61. package/dist/user-event/controller.js +5 -2
  62. package/dist/user-event/controller.js.map +1 -1
  63. package/dist/user-event/gesture.d.ts +9 -43
  64. package/dist/user-event/gesture.d.ts.map +1 -1
  65. package/dist/user-event/gesture.js +9 -43
  66. package/dist/user-event/gesture.js.map +1 -1
  67. package/dist/user-event/index.d.ts +38 -107
  68. package/dist/user-event/index.d.ts.map +1 -1
  69. package/dist/user-event/index.js +29 -30
  70. package/dist/user-event/index.js.map +1 -1
  71. package/dist/user-event/keyboard.d.ts +1 -1
  72. package/dist/user-event/keyboard.d.ts.map +1 -1
  73. package/dist/user-event/keyboard.js +24 -3
  74. package/dist/user-event/keyboard.js.map +1 -1
  75. package/dist/user-event/list-row-click.d.ts +1 -1
  76. package/dist/user-event/list-row-click.d.ts.map +1 -1
  77. package/dist/user-event/list-row-click.js +2 -1
  78. package/dist/user-event/list-row-click.js.map +1 -1
  79. package/dist/user-event/pointer.d.ts.map +1 -1
  80. package/dist/user-event/pointer.js +9 -11
  81. package/dist/user-event/pointer.js.map +1 -1
  82. package/dist/user-event/selection.d.ts +4 -20
  83. package/dist/user-event/selection.d.ts.map +1 -1
  84. package/dist/user-event/selection.js +11 -23
  85. package/dist/user-event/selection.js.map +1 -1
  86. package/dist/user-event/text.d.ts +5 -34
  87. package/dist/user-event/text.d.ts.map +1 -1
  88. package/dist/user-event/text.js +5 -34
  89. package/dist/user-event/text.js.map +1 -1
  90. package/dist/wait-for.d.ts +2 -2
  91. package/dist/wait-for.d.ts.map +1 -1
  92. package/dist/wait-for.js +6 -4
  93. package/dist/wait-for.js.map +1 -1
  94. package/dist/widget-accessible-properties.d.ts +4 -3
  95. package/dist/widget-accessible-properties.d.ts.map +1 -1
  96. package/dist/widget-accessible-properties.js +38 -51
  97. package/dist/widget-accessible-properties.js.map +1 -1
  98. package/dist/widget-getters.d.ts +7 -9
  99. package/dist/widget-getters.d.ts.map +1 -1
  100. package/dist/widget-getters.js.map +1 -1
  101. package/dist/widget-target.d.ts +4 -0
  102. package/dist/widget-target.d.ts.map +1 -0
  103. package/dist/widget-target.js +9 -0
  104. package/dist/widget-target.js.map +1 -0
  105. package/package.json +17 -10
  106. package/src/accessible-native.ts +45 -9
  107. package/src/build-queries.ts +60 -30
  108. package/src/config.ts +1 -3
  109. package/src/fire-event.ts +32 -8
  110. package/src/matchers.ts +63 -85
  111. package/src/queries.ts +94 -156
  112. package/src/query-helpers.ts +17 -9
  113. package/src/render.tsx +7 -2
  114. package/src/role-helpers.ts +3 -1
  115. package/src/screenshot.ts +49 -8
  116. package/src/suggestions.ts +3 -1
  117. package/src/traversal.ts +35 -11
  118. package/src/types.ts +14 -10
  119. package/src/user-event/adjustment.ts +2 -14
  120. package/src/user-event/click.ts +40 -58
  121. package/src/user-event/controller.ts +8 -5
  122. package/src/user-event/gesture.ts +9 -43
  123. package/src/user-event/index.ts +149 -132
  124. package/src/user-event/keyboard.ts +33 -4
  125. package/src/user-event/list-row-click.ts +2 -2
  126. package/src/user-event/pointer.ts +11 -15
  127. package/src/user-event/selection.ts +15 -25
  128. package/src/user-event/text.ts +5 -34
  129. package/src/wait-for.ts +9 -6
  130. package/src/widget-accessible-properties.ts +61 -69
  131. package/src/widget-getters.ts +11 -13
  132. package/src/widget-target.ts +11 -0
@@ -1,5 +1,11 @@
1
1
  import * as GObject from "@gtkx/gi/gobject";
2
2
  import { runInAct } from "./act.js";
3
+ const requireObject = (target) => {
4
+ if (!(target instanceof GObject.Object)) {
5
+ throw new TypeError("Expected a GObject instance");
6
+ }
7
+ return target;
8
+ };
3
9
  /**
4
10
  * Records a signal emission without delivering it, so it can be inspected or held and passed to
5
11
  * {@link fireEvent} later.
@@ -10,23 +16,27 @@ import { runInAct } from "./act.js";
10
16
  * @returns The recorded emission.
11
17
  */
12
18
  const createEvent = (target, signalName, ...args) => ({
13
- target,
19
+ target: requireObject(target),
14
20
  signalName,
15
21
  args,
16
22
  });
17
23
  const dispatchEvent = async (event) => {
24
+ const target = requireObject(event.target);
18
25
  await runInAct(() => {
19
- event.target.emit(event.signalName, ...event.args);
26
+ Reflect.apply(GObject.signalEmit, undefined, [target, event.signalName, ...event.args]);
20
27
  });
21
28
  };
29
+ const isWidgetEvent = (value) => "target" in value && "signalName" in value && "args" in value &&
30
+ typeof value.signalName === "string" && Array.isArray(value.args);
22
31
  function fireEvent(eventOrTarget, signalName, ...args) {
23
- if (!(eventOrTarget instanceof GObject.Object)) {
32
+ if (signalName === undefined && isWidgetEvent(eventOrTarget)) {
24
33
  return dispatchEvent(eventOrTarget);
25
34
  }
26
35
  if (signalName === undefined) {
27
36
  throw new Error("Unable to fire an event: pass a signal name, or an event built by createEvent.");
28
37
  }
29
- return dispatchEvent(createEvent(eventOrTarget, signalName, ...args));
38
+ const target = requireObject(eventOrTarget);
39
+ return dispatchEvent({ target, signalName, args });
30
40
  }
31
41
  export { createEvent, fireEvent };
32
42
  //# sourceMappingURL=fire-event.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fire-event.js","sourceRoot":"","sources":["../src/fire-event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAepC;;;;;;;;GAQG;AACH,MAAM,WAAW,GAAG,CAAC,MAAsB,EAAE,UAAkB,EAAE,GAAG,IAAe,EAAe,EAAE,CAAC,CAAC;IAClG,MAAM;IACN,UAAU;IACV,IAAI;CACP,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,KAAK,EAAE,KAAkB,EAAiB,EAAE;IAC9D,MAAM,QAAQ,CAAC,GAAG,EAAE;QAChB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAmBF,SAAS,SAAS,CACd,aAA2C,EAC3C,UAAmB,EACnB,GAAG,IAAe;IAElB,IAAI,CAAC,CAAC,aAAa,YAAY,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7C,OAAO,aAAa,CAAC,aAAa,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;IACtG,CAAC;IAED,OAAO,aAAa,CAAC,WAAW,CAAC,aAAa,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,OAAO,EAAE,WAAW,EAAE,SAAS,EAAoB,CAAC","sourcesContent":["import * as GObject from \"@gtkx/gi/gobject\";\nimport { runInAct } from \"./act.js\";\n\n/**\n * A signal emission built but not yet delivered. GObject has no event object to construct, so this\n * records the target, signal, and arguments {@link fireEvent} will emit.\n */\ntype WidgetEvent = {\n /** The GObject instance the signal is emitted on. */\n target: GObject.Object;\n /** Name of the signal to emit. */\n signalName: string;\n /** Arguments passed to the signal handlers. */\n args: unknown[];\n};\n\n/**\n * Records a signal emission without delivering it, so it can be inspected or held and passed to\n * {@link fireEvent} later.\n *\n * @param target The GObject instance the signal would be emitted on.\n * @param signalName Name of the signal to emit.\n * @param args Arguments to pass to the signal handlers.\n * @returns The recorded emission.\n */\nconst createEvent = (target: GObject.Object, signalName: string, ...args: unknown[]): WidgetEvent => ({\n target,\n signalName,\n args,\n});\n\nconst dispatchEvent = async (event: WidgetEvent): Promise<void> => {\n await runInAct(() => {\n event.target.emit(event.signalName, ...event.args);\n });\n};\n\n/**\n * Emits a recorded signal emission inside React's act environment, so any resulting state updates are\n * flushed before the promise resolves.\n *\n * @param event An emission built by {@link createEvent}.\n */\nfunction fireEvent(event: WidgetEvent): Promise<void>;\n/**\n * Emits a GObject signal on a widget or object inside React's act environment, so any resulting state\n * updates are flushed before the promise resolves.\n *\n * @param target The GObject instance to emit the signal on.\n * @param signalName Name of the signal to emit.\n * @param args Arguments passed to the signal handlers.\n */\nfunction fireEvent(target: GObject.Object, signalName: string, ...args: unknown[]): Promise<void>;\n\nfunction fireEvent(\n eventOrTarget: WidgetEvent | GObject.Object,\n signalName?: string,\n ...args: unknown[]\n): Promise<void> {\n if (!(eventOrTarget instanceof GObject.Object)) {\n return dispatchEvent(eventOrTarget);\n }\n\n if (signalName === undefined) {\n throw new Error(\"Unable to fire an event: pass a signal name, or an event built by createEvent.\");\n }\n\n return dispatchEvent(createEvent(eventOrTarget, signalName, ...args));\n}\n\nexport { createEvent, fireEvent, type WidgetEvent };\n"]}
1
+ {"version":3,"file":"fire-event.js","sourceRoot":"","sources":["../src/fire-event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAepC,MAAM,aAAa,GAAG,CAAC,MAAc,EAAkB,EAAE;IACrD,IAAI,CAAC,CAAC,MAAM,YAAY,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,WAAW,GAAG,CAChB,MAAwC,EACxC,UAAkB,EAClB,GAAG,IAAe,EACP,EAAE,CAAC,CAAC;IACf,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC;IAC7B,UAAU;IACV,IAAI;CACP,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,KAAK,EAAE,KAAkB,EAAiB,EAAE;IAC9D,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAE3C,MAAM,QAAQ,CAAC,GAAG,EAAE;QAChB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,KAAa,EAAwB,EAAE,CAC1D,QAAQ,IAAI,KAAK,IAAI,YAAY,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK;IAC7D,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAuBtE,SAAS,SAAS,CACd,aAA6D,EAC7D,UAAmB,EACnB,GAAG,IAAe;IAElB,IAAI,UAAU,KAAK,SAAS,IAAI,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC;QAC3D,OAAO,aAAa,CAAC,aAAa,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;IACtG,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;IAE5C,OAAO,aAAa,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,OAAO,EAAE,WAAW,EAAE,SAAS,EAAoB,CAAC","sourcesContent":["import * as GObject from \"@gtkx/gi/gobject\";\nimport { runInAct } from \"./act.js\";\n\n/**\n * A signal emission built but not yet delivered. GObject has no event object to construct, so this\n * records the target, signal, and arguments {@link fireEvent} will emit.\n */\ntype WidgetEvent = {\n /** The GObject instance the signal is emitted on. */\n target: Pick<GObject.Object, \"__type__\">;\n /** Name of the signal to emit. */\n signalName: string;\n /** Arguments passed to the signal handlers. */\n args: unknown[];\n};\n\nconst requireObject = (target: object): GObject.Object => {\n if (!(target instanceof GObject.Object)) {\n throw new TypeError(\"Expected a GObject instance\");\n }\n\n return target;\n};\n\n/**\n * Records a signal emission without delivering it, so it can be inspected or held and passed to\n * {@link fireEvent} later.\n *\n * @param target The GObject instance the signal would be emitted on.\n * @param signalName Name of the signal to emit.\n * @param args Arguments to pass to the signal handlers.\n * @returns The recorded emission.\n */\nconst createEvent = (\n target: Pick<GObject.Object, \"__type__\">,\n signalName: string,\n ...args: unknown[]\n): WidgetEvent => ({\n target: requireObject(target),\n signalName,\n args,\n});\n\nconst dispatchEvent = async (event: WidgetEvent): Promise<void> => {\n const target = requireObject(event.target);\n\n await runInAct(() => {\n Reflect.apply(GObject.signalEmit, undefined, [target, event.signalName, ...event.args]);\n });\n};\n\nconst isWidgetEvent = (value: object): value is WidgetEvent =>\n \"target\" in value && \"signalName\" in value && \"args\" in value &&\n typeof value.signalName === \"string\" && Array.isArray(value.args);\n\n/**\n * Emits a recorded signal emission inside React's act environment, so any resulting state updates are\n * flushed before the promise resolves.\n *\n * @param event An emission built by {@link createEvent}.\n */\nfunction fireEvent(event: WidgetEvent): Promise<void>;\n/**\n * Emits a GObject signal on a widget or object inside React's act environment, so any resulting state\n * updates are flushed before the promise resolves.\n *\n * @param target The GObject instance to emit the signal on.\n * @param signalName Name of the signal to emit.\n * @param args Arguments passed to the signal handlers.\n */\nfunction fireEvent(\n target: Pick<GObject.Object, \"__type__\">,\n signalName: string,\n ...args: unknown[]\n): Promise<void>;\n\nfunction fireEvent(\n eventOrTarget: WidgetEvent | Pick<GObject.Object, \"__type__\">,\n signalName?: string,\n ...args: unknown[]\n): Promise<void> {\n if (signalName === undefined && isWidgetEvent(eventOrTarget)) {\n return dispatchEvent(eventOrTarget);\n }\n\n if (signalName === undefined) {\n throw new Error(\"Unable to fire an event: pass a signal name, or an event built by createEvent.\");\n }\n\n const target = requireObject(eventOrTarget);\n\n return dispatchEvent({ target, signalName, args });\n}\n\nexport { createEvent, fireEvent, type WidgetEvent };\n"]}
@@ -1,4 +1,4 @@
1
- import type { SyncExpectationResult } from "@vitest/expect";
1
+ import type { SyncMatcherResult } from "vitest";
2
2
  import * as Gtk from "@gtkx/gi/gtk";
3
3
  import type { ByRoleOptions, Matcher, MatcherOptions } from "./types.js";
4
4
  import { type AccessibleAttributeValue } from "./accessible-native.js";
@@ -15,7 +15,7 @@ type TextContentOptions = {
15
15
  /** The expected value for a style class: an exact class name or a regular expression. */
16
16
  type ClassExpectation = string | RegExp;
17
17
  /** The outcome of a matcher: whether it passed, and the failure text built on demand. */
18
- type MatcherResult = Pick<SyncExpectationResult, "message" | "pass">;
18
+ type MatcherResult = Pick<SyncMatcherResult, "message" | "pass">;
19
19
  /** The matcher state bound as `this`, supplying the test runner's deep equality check. */
20
20
  type MatcherContext = {
21
21
  /** Compares a received value against an expected one, resolving asymmetric matchers. */
@@ -106,11 +106,11 @@ type MatcherImplementations = {
106
106
  /** Asserts the widget's accessible role. */
107
107
  toHaveRole: (received: unknown, expected: Gtk.AccessibleRole) => MatcherResult;
108
108
  /** Asserts the widget is, or is an ancestor of, the given widget. */
109
- toContainElement: (received: unknown, descendant: Gtk.Widget | null) => MatcherResult;
109
+ toContainElement: (received: unknown, descendant: Gtk.Accessible | null) => MatcherResult;
110
110
  /** Asserts the widget comes before the given widget in the widget tree, neither containing the other. */
111
- toAppearBefore: (received: unknown, other: Gtk.Widget) => MatcherResult;
111
+ toAppearBefore: (received: unknown, other: Gtk.Accessible) => MatcherResult;
112
112
  /** Asserts the widget comes after the given widget in the widget tree, neither containing the other. */
113
- toAppearAfter: (received: unknown, other: Gtk.Widget) => MatcherResult;
113
+ toAppearAfter: (received: unknown, other: Gtk.Accessible) => MatcherResult;
114
114
  /** Asserts at least one widget under the received one matches the `ByRole` query. */
115
115
  toContainAnyByRole: ContainmentMatcher<RoleQueryArgs>;
116
116
  /** Asserts exactly one widget under the received one matches the `ByRole` query. */
@@ -146,59 +146,55 @@ type MatcherImplementations = {
146
146
  declare const matchers: MatcherImplementations;
147
147
  /** Registers the widget matchers on the global `expect`, when one is available. Safe to call more than once. */
148
148
  declare const registerMatchers: () => void;
149
- declare module "@vitest/expect" {
150
- interface WidgetMatchers {
151
- toHaveDisplayValue(expected?: TextExpectation): void;
152
- toHaveTextContent(expected?: TextExpectation, options?: TextContentOptions): void;
153
- toHaveAccessibleName(expected?: TextExpectation): void;
154
- toHaveAccessibleDescription(expected?: TextExpectation): void;
155
- toHaveAccessibleErrorMessage(expected?: TextExpectation): void;
156
- toHaveSelection(expected?: TextExpectation): void;
157
- toHaveAccessibleState(state: BooleanAccessibleState, expected?: boolean): void;
158
- toHaveAccessibleState(state: TristateAccessibleState, expected?: Gtk.AccessibleTristate): void;
159
- toHaveAccessibleState(state: Gtk.AccessibleState.INVALID, expected?: Gtk.AccessibleInvalidState): void;
160
- toHaveAccessibleProperty(property: StringAccessibleProperty, expected?: string): void;
161
- toHaveAccessibleProperty(property: BooleanAccessibleProperty, expected?: boolean): void;
162
- toHaveAccessibleProperty(property: NumberAccessibleProperty, expected?: number): void;
163
- toHaveAccessibleProperty(property: Gtk.AccessibleProperty.AUTOCOMPLETE, expected?: Gtk.AccessibleAutocomplete): void;
164
- toHaveAccessibleProperty(property: Gtk.AccessibleProperty.ORIENTATION, expected?: Gtk.Orientation): void;
165
- toHaveAccessibleProperty(property: Gtk.AccessibleProperty.SORT, expected?: Gtk.AccessibleSort): void;
166
- toBeChecked(): void;
167
- toBePartiallyChecked(): void;
168
- toBePressed(): void;
169
- toBePartiallyPressed(): void;
170
- toBeDisabled(): void;
171
- toBeEnabled(): void;
172
- toBeVisible(): void;
173
- toBeRooted(): void;
174
- toBeEmptyWidget(): void;
175
- toBeInvalid(): void;
176
- toBeValid(): void;
177
- toBeRequired(): void;
178
- toHaveFocus(): void;
179
- toHaveValue(expected?: number | string): void;
180
- toHaveRole(expected: Gtk.AccessibleRole): void;
181
- toContainElement(descendant: Gtk.Widget | null): void;
182
- toAppearBefore(other: Gtk.Widget): void;
183
- toAppearAfter(other: Gtk.Widget): void;
184
- toContainAnyByRole(...args: RoleQueryArgs): void;
185
- toContainOneByRole(...args: RoleQueryArgs): void;
186
- toContainAnyByText(...args: TextQueryArgs): void;
187
- toContainOneByText(...args: TextQueryArgs): void;
188
- toContainAnyByLabelText(...args: TextQueryArgs): void;
189
- toContainOneByLabelText(...args: TextQueryArgs): void;
190
- toContainAnyByPlaceholderText(...args: TextQueryArgs): void;
191
- toContainOneByPlaceholderText(...args: TextQueryArgs): void;
192
- toContainAnyByDisplayValue(...args: TextQueryArgs): void;
193
- toContainOneByDisplayValue(...args: TextQueryArgs): void;
149
+ declare module "vitest" {
150
+ interface Matchers<R extends void | Promise<void> = void | Promise<void>, T = unknown> {
151
+ toHaveDisplayValue(expected?: TextExpectation): R;
152
+ toHaveTextContent(expected?: TextExpectation, options?: TextContentOptions): R;
153
+ toHaveAccessibleName(expected?: TextExpectation): R;
154
+ toHaveAccessibleDescription(expected?: TextExpectation): R;
155
+ toHaveAccessibleErrorMessage(expected?: TextExpectation): R;
156
+ toHaveSelection(expected?: TextExpectation): R;
157
+ toHaveAccessibleState(state: BooleanAccessibleState, expected?: boolean): R;
158
+ toHaveAccessibleState(state: TristateAccessibleState, expected?: Gtk.AccessibleTristate): R;
159
+ toHaveAccessibleState(state: Gtk.AccessibleState.INVALID, expected?: Gtk.AccessibleInvalidState): R;
160
+ toHaveAccessibleProperty(property: StringAccessibleProperty, expected?: string): R;
161
+ toHaveAccessibleProperty(property: BooleanAccessibleProperty, expected?: boolean): R;
162
+ toHaveAccessibleProperty(property: NumberAccessibleProperty, expected?: number): R;
163
+ toHaveAccessibleProperty(property: Gtk.AccessibleProperty.AUTOCOMPLETE, expected?: Gtk.AccessibleAutocomplete): R;
164
+ toHaveAccessibleProperty(property: Gtk.AccessibleProperty.ORIENTATION, expected?: Gtk.Orientation): R;
165
+ toHaveAccessibleProperty(property: Gtk.AccessibleProperty.SORT, expected?: Gtk.AccessibleSort): R;
166
+ toBeChecked(): R;
167
+ toBePartiallyChecked(): R;
168
+ toBePressed(): R;
169
+ toBePartiallyPressed(): R;
170
+ toBeDisabled(): R;
171
+ toBeEnabled(): R;
172
+ toBeVisible(): R;
173
+ toBeRooted(): R;
174
+ toBeEmptyWidget(): R;
175
+ toBeInvalid(): R;
176
+ toBeValid(): R;
177
+ toBeRequired(): R;
178
+ toHaveFocus(): R;
179
+ toHaveValue(expected?: number | string): R;
180
+ toHaveRole(expected: Gtk.AccessibleRole): R;
181
+ toContainElement(descendant: Gtk.Accessible | null): R;
182
+ toAppearBefore(other: Gtk.Accessible): R;
183
+ toAppearAfter(other: Gtk.Accessible): R;
184
+ toContainAnyByRole(...args: RoleQueryArgs): R;
185
+ toContainOneByRole(...args: RoleQueryArgs): R;
186
+ toContainAnyByText(...args: TextQueryArgs): R;
187
+ toContainOneByText(...args: TextQueryArgs): R;
188
+ toContainAnyByLabelText(...args: TextQueryArgs): R;
189
+ toContainOneByLabelText(...args: TextQueryArgs): R;
190
+ toContainAnyByPlaceholderText(...args: TextQueryArgs): R;
191
+ toContainOneByPlaceholderText(...args: TextQueryArgs): R;
192
+ toContainAnyByDisplayValue(...args: TextQueryArgs): R;
193
+ toContainOneByDisplayValue(...args: TextQueryArgs): R;
194
194
  toHaveClass(...args: (ClassExpectation | {
195
195
  exact: boolean;
196
- })[]): void;
197
- toHaveObjectProperty(name: string, expected?: unknown): void;
198
- }
199
- interface Assertion extends WidgetMatchers {
200
- }
201
- interface AsymmetricMatchersContaining extends WidgetMatchers {
196
+ })[]): R;
197
+ toHaveObjectProperty(name: string, expected?: unknown): R;
202
198
  }
203
199
  }
204
200
  export { matchers, registerMatchers, type ClassExpectation, type TextContentOptions, type TextExpectation };
@@ -1 +1 @@
1
- {"version":3,"file":"matchers.d.ts","sourceRoot":"","sources":["../src/matchers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"matchers.d.ts","sourceRoot":"","sources":["../src/matchers.ts"],"names":[],"mappings":"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"}
package/dist/matchers.js CHANGED
@@ -176,7 +176,6 @@ const isAppearingBefore = (first, second) => {
176
176
  const root = getTreeRoot(first);
177
177
  return isSeparateWidget(first, second) && root === getTreeRoot(second) && isPrecedingWidget(root, first, second);
178
178
  };
179
- const camelCase = (name) => name.replaceAll(/-([a-z])/g, (_match, letter) => letter.toUpperCase());
180
179
  const isAsymmetricMatcher = (value) => typeof value === "object" && value !== null && typeof Reflect.get(value, "asymmetricMatch") === "function";
181
180
  const isEqualValue = (context, actual, expected) => {
182
181
  if (isAsymmetricMatcher(expected)) {
@@ -217,20 +216,8 @@ function readErrorMessageText(widget) {
217
216
  const texts = targets.map((target) => getWidgetAccessibleName(target)).filter((text) => text !== null);
218
217
  return texts.length > 0 ? texts.join(" ") : null;
219
218
  }
220
- function assertReadableProperty(object, name, property, value) {
221
- if (typeof value === "function") {
222
- throw new TypeError(`toHaveObjectProperty: "${name}" is shadowed by a method of the same name; ` +
223
- `call ${property}() and assert on its result instead`);
224
- }
225
- if (value === undefined && !Reflect.has(object, property)) {
226
- throw new TypeError(`toHaveObjectProperty: no readable property "${name}" on ${describeObject(object)}; ` +
227
- "construct-only and write-only properties cannot be read back");
228
- }
229
- }
230
219
  function readObjectProperty(object, name) {
231
- const property = camelCase(name);
232
- const value = Reflect.get(object, property);
233
- assertReadableProperty(object, name, property, value);
220
+ const value = Reflect.apply(GObject.getProperty, undefined, [object, name]);
234
221
  return value;
235
222
  }
236
223
  function classEntries(entry) {
@@ -453,11 +440,12 @@ function toHaveRole(received, expected) {
453
440
  }
454
441
  function toContainElement(received, descendant) {
455
442
  const widget = asWidget(received, "toContainElement");
456
- const isPass = descendant !== null && (descendant === widget || descendant.isAncestor(widget));
443
+ const target = descendant === null ? null : asWidget(descendant, "toContainElement");
444
+ const isPass = target !== null && (target === widget || target.isAncestor(widget));
457
445
  return {
458
446
  pass: isPass,
459
447
  message: () => `expected widget ${negationPrefix(isPass)}to contain ` +
460
- `${descendant === null ? "null" : describeWidget(descendant)}\n${describeWidget(widget)}`,
448
+ `${target === null ? "null" : describeWidget(target)}\n${describeWidget(widget)}`,
461
449
  };
462
450
  }
463
451
  function toHaveClass(received, ...args) {