appium-xcuitest-driver 10.3.0 → 10.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (252) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/lib/commands/active-app-info.d.ts +9 -0
  3. package/build/lib/commands/active-app-info.d.ts.map +1 -0
  4. package/build/lib/commands/active-app-info.js +14 -0
  5. package/build/lib/commands/active-app-info.js.map +1 -0
  6. package/build/lib/commands/alert.d.ts +42 -45
  7. package/build/lib/commands/alert.d.ts.map +1 -1
  8. package/build/lib/commands/alert.js +66 -62
  9. package/build/lib/commands/alert.js.map +1 -1
  10. package/build/lib/commands/app-management.d.ts +150 -153
  11. package/build/lib/commands/app-management.d.ts.map +1 -1
  12. package/build/lib/commands/app-management.js +300 -286
  13. package/build/lib/commands/app-management.js.map +1 -1
  14. package/build/lib/commands/app-strings.d.ts +14 -17
  15. package/build/lib/commands/app-strings.d.ts.map +1 -1
  16. package/build/lib/commands/app-strings.js +23 -24
  17. package/build/lib/commands/app-strings.js.map +1 -1
  18. package/build/lib/commands/appearance.d.ts +19 -22
  19. package/build/lib/commands/appearance.d.ts.map +1 -1
  20. package/build/lib/commands/appearance.js +56 -56
  21. package/build/lib/commands/appearance.js.map +1 -1
  22. package/build/lib/commands/audit.d.ts +22 -17
  23. package/build/lib/commands/audit.d.ts.map +1 -1
  24. package/build/lib/commands/audit.js +17 -18
  25. package/build/lib/commands/audit.js.map +1 -1
  26. package/build/lib/commands/battery.d.ts +11 -14
  27. package/build/lib/commands/battery.d.ts.map +1 -1
  28. package/build/lib/commands/battery.js +36 -37
  29. package/build/lib/commands/battery.js.map +1 -1
  30. package/build/lib/commands/biometric.d.ts +30 -33
  31. package/build/lib/commands/biometric.d.ts.map +1 -1
  32. package/build/lib/commands/biometric.js +42 -41
  33. package/build/lib/commands/biometric.js.map +1 -1
  34. package/build/lib/commands/certificate.d.ts +48 -45
  35. package/build/lib/commands/certificate.d.ts.map +1 -1
  36. package/build/lib/commands/certificate.js +218 -205
  37. package/build/lib/commands/certificate.js.map +1 -1
  38. package/build/lib/commands/clipboard.d.ts +19 -22
  39. package/build/lib/commands/clipboard.d.ts.map +1 -1
  40. package/build/lib/commands/clipboard.js +30 -30
  41. package/build/lib/commands/clipboard.js.map +1 -1
  42. package/build/lib/commands/condition.d.ts +49 -26
  43. package/build/lib/commands/condition.d.ts.map +1 -1
  44. package/build/lib/commands/condition.js +87 -86
  45. package/build/lib/commands/condition.js.map +1 -1
  46. package/build/lib/commands/content-size.d.ts +26 -29
  47. package/build/lib/commands/content-size.d.ts.map +1 -1
  48. package/build/lib/commands/content-size.js +36 -36
  49. package/build/lib/commands/content-size.js.map +1 -1
  50. package/build/lib/commands/context.d.ts +161 -108
  51. package/build/lib/commands/context.d.ts.map +1 -1
  52. package/build/lib/commands/context.js +530 -517
  53. package/build/lib/commands/context.js.map +1 -1
  54. package/build/lib/commands/deviceInfo.d.ts +9 -12
  55. package/build/lib/commands/deviceInfo.d.ts.map +1 -1
  56. package/build/lib/commands/deviceInfo.js +17 -18
  57. package/build/lib/commands/deviceInfo.js.map +1 -1
  58. package/build/lib/commands/element.d.ts +102 -105
  59. package/build/lib/commands/element.d.ts.map +1 -1
  60. package/build/lib/commands/element.js +337 -323
  61. package/build/lib/commands/element.js.map +1 -1
  62. package/build/lib/commands/execute.d.ts +24 -19
  63. package/build/lib/commands/execute.d.ts.map +1 -1
  64. package/build/lib/commands/execute.js +63 -62
  65. package/build/lib/commands/execute.js.map +1 -1
  66. package/build/lib/commands/file-movement.d.ts +77 -80
  67. package/build/lib/commands/file-movement.d.ts.map +1 -1
  68. package/build/lib/commands/file-movement.js +130 -124
  69. package/build/lib/commands/file-movement.js.map +1 -1
  70. package/build/lib/commands/find.d.ts +18 -21
  71. package/build/lib/commands/find.d.ts.map +1 -1
  72. package/build/lib/commands/find.js +158 -156
  73. package/build/lib/commands/find.js.map +1 -1
  74. package/build/lib/commands/general.d.ts +124 -116
  75. package/build/lib/commands/general.d.ts.map +1 -1
  76. package/build/lib/commands/general.js +248 -232
  77. package/build/lib/commands/general.js.map +1 -1
  78. package/build/lib/commands/geolocation.d.ts +43 -46
  79. package/build/lib/commands/geolocation.d.ts.map +1 -1
  80. package/build/lib/commands/geolocation.js +10 -11
  81. package/build/lib/commands/geolocation.js.map +1 -1
  82. package/build/lib/commands/gesture.d.ts +273 -276
  83. package/build/lib/commands/gesture.d.ts.map +1 -1
  84. package/build/lib/commands/gesture.js +506 -492
  85. package/build/lib/commands/gesture.js.map +1 -1
  86. package/build/lib/commands/increase-contrast.d.ts +20 -23
  87. package/build/lib/commands/increase-contrast.d.ts.map +1 -1
  88. package/build/lib/commands/increase-contrast.js +30 -30
  89. package/build/lib/commands/increase-contrast.js.map +1 -1
  90. package/build/lib/commands/iohid.d.ts +1370 -1373
  91. package/build/lib/commands/iohid.d.ts.map +1 -1
  92. package/build/lib/commands/iohid.js +30 -31
  93. package/build/lib/commands/iohid.js.map +1 -1
  94. package/build/lib/commands/keyboard.d.ts +29 -32
  95. package/build/lib/commands/keyboard.d.ts.map +1 -1
  96. package/build/lib/commands/keyboard.js +53 -51
  97. package/build/lib/commands/keyboard.js.map +1 -1
  98. package/build/lib/commands/keychains.d.ts +9 -12
  99. package/build/lib/commands/keychains.d.ts.map +1 -1
  100. package/build/lib/commands/keychains.js +13 -14
  101. package/build/lib/commands/keychains.js.map +1 -1
  102. package/build/lib/commands/localization.d.ts +16 -19
  103. package/build/lib/commands/localization.d.ts.map +1 -1
  104. package/build/lib/commands/localization.js +25 -26
  105. package/build/lib/commands/localization.js.map +1 -1
  106. package/build/lib/commands/location.d.ts +36 -39
  107. package/build/lib/commands/location.d.ts.map +1 -1
  108. package/build/lib/commands/location.js +99 -98
  109. package/build/lib/commands/location.js.map +1 -1
  110. package/build/lib/commands/lock.d.ts +21 -24
  111. package/build/lib/commands/lock.d.ts.map +1 -1
  112. package/build/lib/commands/lock.js +39 -38
  113. package/build/lib/commands/lock.js.map +1 -1
  114. package/build/lib/commands/log.d.ts +43 -37
  115. package/build/lib/commands/log.d.ts.map +1 -1
  116. package/build/lib/commands/log.js +174 -171
  117. package/build/lib/commands/log.js.map +1 -1
  118. package/build/lib/commands/memory.d.ts +9 -12
  119. package/build/lib/commands/memory.d.ts.map +1 -1
  120. package/build/lib/commands/memory.js +37 -38
  121. package/build/lib/commands/memory.js.map +1 -1
  122. package/build/lib/commands/navigation.d.ts +30 -33
  123. package/build/lib/commands/navigation.d.ts.map +1 -1
  124. package/build/lib/commands/navigation.js +92 -92
  125. package/build/lib/commands/navigation.js.map +1 -1
  126. package/build/lib/commands/notifications.d.ts +26 -29
  127. package/build/lib/commands/notifications.d.ts.map +1 -1
  128. package/build/lib/commands/notifications.js +53 -53
  129. package/build/lib/commands/notifications.js.map +1 -1
  130. package/build/lib/commands/pasteboard.d.ts +21 -24
  131. package/build/lib/commands/pasteboard.d.ts.map +1 -1
  132. package/build/lib/commands/pasteboard.js +37 -37
  133. package/build/lib/commands/pasteboard.js.map +1 -1
  134. package/build/lib/commands/pcap.d.ts +39 -26
  135. package/build/lib/commands/pcap.d.ts.map +1 -1
  136. package/build/lib/commands/pcap.js +81 -81
  137. package/build/lib/commands/pcap.js.map +1 -1
  138. package/build/lib/commands/performance.d.ts +63 -44
  139. package/build/lib/commands/performance.d.ts.map +1 -1
  140. package/build/lib/commands/performance.js +105 -105
  141. package/build/lib/commands/performance.js.map +1 -1
  142. package/build/lib/commands/permissions.d.ts +33 -36
  143. package/build/lib/commands/permissions.d.ts.map +1 -1
  144. package/build/lib/commands/permissions.js +66 -65
  145. package/build/lib/commands/permissions.js.map +1 -1
  146. package/build/lib/commands/proxy-helper.d.ts +12 -15
  147. package/build/lib/commands/proxy-helper.d.ts.map +1 -1
  148. package/build/lib/commands/proxy-helper.js +53 -54
  149. package/build/lib/commands/proxy-helper.js.map +1 -1
  150. package/build/lib/commands/record-audio.d.ts +49 -29
  151. package/build/lib/commands/record-audio.d.ts.map +1 -1
  152. package/build/lib/commands/record-audio.js +100 -104
  153. package/build/lib/commands/record-audio.js.map +1 -1
  154. package/build/lib/commands/recordscreen.d.ts +54 -18
  155. package/build/lib/commands/recordscreen.d.ts.map +1 -1
  156. package/build/lib/commands/recordscreen.js +127 -129
  157. package/build/lib/commands/recordscreen.js.map +1 -1
  158. package/build/lib/commands/screenshots.d.ts +14 -17
  159. package/build/lib/commands/screenshots.d.ts.map +1 -1
  160. package/build/lib/commands/screenshots.js +108 -107
  161. package/build/lib/commands/screenshots.js.map +1 -1
  162. package/build/lib/commands/simctl.d.ts +11 -14
  163. package/build/lib/commands/simctl.d.ts.map +1 -1
  164. package/build/lib/commands/simctl.js +23 -26
  165. package/build/lib/commands/simctl.js.map +1 -1
  166. package/build/lib/commands/source.d.ts +14 -17
  167. package/build/lib/commands/source.d.ts.map +1 -1
  168. package/build/lib/commands/source.js +40 -43
  169. package/build/lib/commands/source.js.map +1 -1
  170. package/build/lib/commands/timeouts.d.ts +44 -33
  171. package/build/lib/commands/timeouts.d.ts.map +1 -1
  172. package/build/lib/commands/timeouts.js +65 -63
  173. package/build/lib/commands/timeouts.js.map +1 -1
  174. package/build/lib/commands/web.d.ts +247 -197
  175. package/build/lib/commands/web.d.ts.map +1 -1
  176. package/build/lib/commands/web.js +815 -786
  177. package/build/lib/commands/web.js.map +1 -1
  178. package/build/lib/commands/xctest-record-screen.d.ts +63 -66
  179. package/build/lib/commands/xctest-record-screen.d.ts.map +1 -1
  180. package/build/lib/commands/xctest-record-screen.js +103 -102
  181. package/build/lib/commands/xctest-record-screen.js.map +1 -1
  182. package/build/lib/commands/xctest.d.ts +55 -51
  183. package/build/lib/commands/xctest.d.ts.map +1 -1
  184. package/build/lib/commands/xctest.js +116 -117
  185. package/build/lib/commands/xctest.js.map +1 -1
  186. package/build/lib/driver.d.ts +278 -1597
  187. package/build/lib/driver.d.ts.map +1 -1
  188. package/build/lib/driver.js +319 -235
  189. package/build/lib/driver.js.map +1 -1
  190. package/build/lib/execute-method-map.d.ts.map +1 -1
  191. package/build/lib/execute-method-map.js +9 -0
  192. package/build/lib/execute-method-map.js.map +1 -1
  193. package/lib/commands/active-app-info.js +12 -0
  194. package/lib/commands/alert.js +68 -65
  195. package/lib/commands/app-management.js +308 -301
  196. package/lib/commands/app-strings.js +24 -26
  197. package/lib/commands/appearance.js +54 -56
  198. package/lib/commands/audit.js +18 -20
  199. package/lib/commands/battery.js +35 -37
  200. package/lib/commands/biometric.js +44 -46
  201. package/lib/commands/certificate.js +226 -215
  202. package/lib/commands/clipboard.js +30 -32
  203. package/lib/commands/condition.js +98 -100
  204. package/lib/commands/content-size.js +36 -38
  205. package/lib/commands/context.js +495 -490
  206. package/lib/commands/deviceInfo.js +19 -20
  207. package/lib/commands/element.js +367 -357
  208. package/lib/commands/execute.js +72 -72
  209. package/lib/commands/file-movement.js +132 -134
  210. package/lib/commands/find.js +160 -159
  211. package/lib/commands/general.js +238 -231
  212. package/lib/commands/geolocation.js +6 -14
  213. package/lib/commands/gesture.js +525 -515
  214. package/lib/commands/increase-contrast.js +30 -32
  215. package/lib/commands/iohid.js +32 -34
  216. package/lib/commands/keyboard.js +49 -51
  217. package/lib/commands/keychains.js +12 -14
  218. package/lib/commands/localization.js +24 -26
  219. package/lib/commands/location.js +102 -104
  220. package/lib/commands/lock.js +38 -38
  221. package/lib/commands/log.js +197 -198
  222. package/lib/commands/memory.js +40 -42
  223. package/lib/commands/navigation.js +96 -100
  224. package/lib/commands/notifications.js +57 -59
  225. package/lib/commands/pasteboard.js +37 -39
  226. package/lib/commands/pcap.js +84 -86
  227. package/lib/commands/performance.js +132 -133
  228. package/lib/commands/permissions.js +67 -69
  229. package/lib/commands/proxy-helper.js +60 -61
  230. package/lib/commands/record-audio.js +115 -120
  231. package/lib/commands/recordscreen.js +145 -149
  232. package/lib/commands/screenshots.js +116 -116
  233. package/lib/commands/simctl.js +25 -29
  234. package/lib/commands/source.js +42 -46
  235. package/lib/commands/timeouts.js +59 -63
  236. package/lib/commands/web.js +878 -858
  237. package/lib/commands/xctest-record-screen.js +103 -105
  238. package/lib/commands/xctest.js +134 -139
  239. package/lib/driver.js +287 -235
  240. package/lib/execute-method-map.ts +9 -0
  241. package/npm-shrinkwrap.json +2 -2
  242. package/package.json +1 -1
  243. package/build/lib/commands/activeAppInfo.d.ts +0 -12
  244. package/build/lib/commands/activeAppInfo.d.ts.map +0 -1
  245. package/build/lib/commands/activeAppInfo.js +0 -15
  246. package/build/lib/commands/activeAppInfo.js.map +0 -1
  247. package/build/lib/commands/index.d.ts +0 -96
  248. package/build/lib/commands/index.d.ts.map +0 -1
  249. package/build/lib/commands/index.js +0 -100
  250. package/build/lib/commands/index.js.map +0 -1
  251. package/lib/commands/activeAppInfo.js +0 -14
  252. package/lib/commands/index.js +0 -95
@@ -1,31 +1,29 @@
1
1
  import {parseLocalizableStrings} from '../app-utils';
2
2
 
3
- export default {
4
- /**
5
- * Return the language-specific strings for an app
6
- *
7
- * @param {string} language - The language abbreviation to fetch app strings mapping for.
8
- * If no language is provided then strings for the 'en language would be returned
9
- * @param {string|null} [stringFile=null] - Relative path to the corresponding .strings
10
- * file starting from the corresponding .lproj folder, e.g., `base/main.strings`. If omitted,
11
- * then Appium will make its best guess where the file is.
12
- *
13
- * @returns {Promise<import('@appium/types').StringRecord<string>>} A record of localized keys to localized text
14
- *
15
- * @this {XCUITestDriver}
16
- */
17
- async getStrings(language, stringFile = null) {
18
- this.log.debug(`Gettings strings for language '${language}' and string file '${stringFile}'`);
19
- return await parseLocalizableStrings.bind(this)(
20
- {
21
- ...this.opts,
22
- language,
23
- stringFile,
24
- strictMode: true,
25
- },
26
- );
27
- },
28
- };
3
+ /**
4
+ * Return the language-specific strings for an app
5
+ *
6
+ * @param {string} language - The language abbreviation to fetch app strings mapping for.
7
+ * If no language is provided then strings for the 'en language would be returned
8
+ * @param {string|null} [stringFile=null] - Relative path to the corresponding .strings
9
+ * file starting from the corresponding .lproj folder, e.g., `base/main.strings`. If omitted,
10
+ * then Appium will make its best guess where the file is.
11
+ *
12
+ * @returns {Promise<import('@appium/types').StringRecord<string>>} A record of localized keys to localized text
13
+ *
14
+ * @this {XCUITestDriver}
15
+ */
16
+ export async function getStrings(language, stringFile = null) {
17
+ this.log.debug(`Gettings strings for language '${language}' and string file '${stringFile}'`);
18
+ return await parseLocalizableStrings.bind(this)(
19
+ {
20
+ ...this.opts,
21
+ language,
22
+ stringFile,
23
+ strictMode: true,
24
+ },
25
+ );
26
+ }
29
27
 
30
28
  /**
31
29
  * @typedef {import('../driver').XCUITestDriver} XCUITestDriver
@@ -1,71 +1,69 @@
1
1
  import _ from 'lodash';
2
2
  import {util} from 'appium/support';
3
3
 
4
- export default {
5
- /**
6
- * Set the device's UI appearance style
7
- *
8
- * @since iOS 12.0
9
- * @param {'dark'|'light'} style - The appearance style to set
10
- * @throws {Error} if the current platform does not support UI appearance changes
11
- * @this {XCUITestDriver}
12
- */
13
- async mobileSetAppearance(style) {
14
- if (!['light', 'dark'].includes(_.toLower(style))) {
15
- throw new Error(`The 'style' value is expected to equal either 'light' or 'dark'`);
16
- }
17
- if (util.compareVersions(/** @type {string} */ (this.opts.platformVersion), '<', '12.0')) {
18
- throw new Error('Changing appearance is only supported since iOS 12');
19
- }
4
+ /**
5
+ * Set the device's UI appearance style
6
+ *
7
+ * @since iOS 12.0
8
+ * @param {'dark'|'light'} style - The appearance style to set
9
+ * @throws {Error} if the current platform does not support UI appearance changes
10
+ * @this {XCUITestDriver}
11
+ */
12
+ export async function mobileSetAppearance(style) {
13
+ if (!['light', 'dark'].includes(_.toLower(style))) {
14
+ throw new Error(`The 'style' value is expected to equal either 'light' or 'dark'`);
15
+ }
16
+ if (util.compareVersions(/** @type {string} */ (this.opts.platformVersion), '<', '12.0')) {
17
+ throw new Error('Changing appearance is only supported since iOS 12');
18
+ }
20
19
 
21
- if (this.isSimulator()) {
22
- try {
23
- return void (await /** @type {import('../driver').Simulator} */ (this.device).setAppearance(style));
24
- } catch (e) {
25
- this.log.debug(e.stack);
26
- }
27
- }
20
+ if (this.isSimulator()) {
28
21
  try {
29
- return void (await this.proxyCommand('/wda/device/appearance', 'POST', {name: style}, false));
22
+ return void (await /** @type {import('../driver').Simulator} */ (this.device).setAppearance(style));
30
23
  } catch (e) {
31
24
  this.log.debug(e.stack);
32
25
  }
33
- // Fall back to the ugly Siri workaround if the current SDK is too old
34
- await this.mobileSiriCommand(`Turn ${_.toLower(style) === 'dark' ? 'on' : 'off'} dark mode`);
35
- },
26
+ }
27
+ try {
28
+ return void (await this.proxyCommand('/wda/device/appearance', 'POST', {name: style}, false));
29
+ } catch (e) {
30
+ this.log.debug(e.stack);
31
+ }
32
+ // Fall back to the ugly Siri workaround if the current SDK is too old
33
+ await this.mobileSiriCommand(`Turn ${_.toLower(style) === 'dark' ? 'on' : 'off'} dark mode`);
34
+ }
36
35
 
37
- /**
38
- * Get the device's UI appearance style.
39
- *
40
- * @since Xcode SDK 11
41
- * @returns {Promise<{style: Style}>}
42
- * @this {XCUITestDriver}
43
- */
44
- async mobileGetAppearance() {
45
- if (util.compareVersions(/** @type {string} */ (this.opts.platformVersion), '<', '12.0')) {
46
- return {style: 'unsupported'};
47
- }
36
+ /**
37
+ * Get the device's UI appearance style.
38
+ *
39
+ * @since Xcode SDK 11
40
+ * @returns {Promise<{style: Style}>}
41
+ * @this {XCUITestDriver}
42
+ */
43
+ export async function mobileGetAppearance() {
44
+ if (util.compareVersions(/** @type {string} */ (this.opts.platformVersion), '<', '12.0')) {
45
+ return {style: 'unsupported'};
46
+ }
48
47
 
49
- /** @type {Style|undefined} */
50
- let style;
51
- if (this.isSimulator()) {
52
- try {
53
- style = /** @type {Style} */ (
54
- await /** @type {import('../driver').Simulator} */ (this.device).getAppearance()
55
- );
56
- } catch {}
57
- }
58
- if (!style) {
48
+ /** @type {Style|undefined} */
49
+ let style;
50
+ if (this.isSimulator()) {
51
+ try {
59
52
  style = /** @type {Style} */ (
60
- /** @type {any} */ (await this.proxyCommand('/wda/device/info', 'GET'))
61
- ?.userInterfaceStyle ?? 'unknown'
53
+ await /** @type {import('../driver').Simulator} */ (this.device).getAppearance()
62
54
  );
63
- }
64
- return {
65
- style,
66
- };
67
- },
68
- };
55
+ } catch {}
56
+ }
57
+ if (!style) {
58
+ style = /** @type {Style} */ (
59
+ /** @type {any} */ (await this.proxyCommand('/wda/device/info', 'GET'))
60
+ ?.userInterfaceStyle ?? 'unknown'
61
+ );
62
+ }
63
+ return {
64
+ style,
65
+ };
66
+ }
69
67
 
70
68
  /**
71
69
  * @typedef {import('../driver').XCUITestDriver} XCUITestDriver
@@ -7,26 +7,24 @@
7
7
  * @property {string} element The description of the element this issue was found for.
8
8
  */
9
9
 
10
- export default {
11
- /**
12
- * Performs accessibility audit of the current application according to the given type or multiple types.
13
- *
14
- * @since Xcode 15/iOS 17
15
- * @param {string[]?} auditTypes - One or more type names to perform the audit for.
16
- * The full list of available names could be found at
17
- * https://developer.apple.com/documentation/xctest/xcuiaccessibilityaudittype?language=objc
18
- * If no type if provided explicitly then XCUIAccessibilityAuditTypeAll is assumed.
19
- *
20
- * @returns {Promise<AccessibilityAuditItem[]>} List of found issues or an empty list
21
- *
22
- * @this {XCUITestDriver}
23
- */
24
- async mobilePerformAccessibilityAudit(auditTypes) {
25
- return /** @type {AccessibilityAuditItem[]} */ (
26
- await this.proxyCommand('/wda/performAccessibilityAudit', 'POST', {auditTypes})
27
- );
28
- },
29
- };
10
+ /**
11
+ * Performs accessibility audit of the current application according to the given type or multiple types.
12
+ *
13
+ * @since Xcode 15/iOS 17
14
+ * @param {string[]?} auditTypes - One or more type names to perform the audit for.
15
+ * The full list of available names could be found at
16
+ * https://developer.apple.com/documentation/xctest/xcuiaccessibilityaudittype?language=objc
17
+ * If no type if provided explicitly then XCUIAccessibilityAuditTypeAll is assumed.
18
+ *
19
+ * @returns {Promise<AccessibilityAuditItem[]>} List of found issues or an empty list
20
+ *
21
+ * @this {XCUITestDriver}
22
+ */
23
+ export async function mobilePerformAccessibilityAudit(auditTypes) {
24
+ return /** @type {AccessibilityAuditItem[]} */ (
25
+ await this.proxyCommand('/wda/performAccessibilityAudit', 'POST', {auditTypes})
26
+ );
27
+ }
30
28
 
31
29
  /**
32
30
  * @typedef {import('../driver').XCUITestDriver} XCUITestDriver
@@ -1,46 +1,44 @@
1
1
  import log from '../logger.js';
2
2
  import { isIos18OrNewer } from '../utils.js';
3
3
 
4
- export default {
5
- /**
6
- * Reads the battery information from the device under test.
7
- *
8
- * This endpoint only returns reliable result on real devices.
9
- *
10
- * @returns {Promise<import('./types').BatteryInfo & {advanced: Record<string, any>}>}
11
- * @this {import('../driver').XCUITestDriver}
12
- */
13
- async mobileGetBatteryInfo() {
14
- let batteryInfoFromShimService;
15
- if (isIos18OrNewer(this.opts) && this.isRealDevice()) {
16
- let remoteXPCConnection;
17
- try {
18
- const {Services} = await import('appium-ios-remotexpc');
19
- let { diagnosticsService, remoteXPC } = await Services.startDiagnosticsService(this.device.udid);
20
- remoteXPCConnection = remoteXPC;
21
- batteryInfoFromShimService = await diagnosticsService.ioregistry({
22
- ioClass: 'IOPMPowerSource',
23
- returnRawJson: true,
24
- });
25
- } catch (err) {
26
- log.error(`Failed to get battery info from DiagnosticsService: ${err.message}`);
27
- } finally {
28
- if (remoteXPCConnection) {
29
- log.info(`Closing remoteXPC connection for device ${this.device.udid}`);
30
- await remoteXPCConnection.close();
31
- }
4
+ /**
5
+ * Reads the battery information from the device under test.
6
+ *
7
+ * This endpoint only returns reliable result on real devices.
8
+ *
9
+ * @returns {Promise<import('./types').BatteryInfo & {advanced: Record<string, any>}>}
10
+ * @this {import('../driver').XCUITestDriver}
11
+ */
12
+ export async function mobileGetBatteryInfo() {
13
+ let batteryInfoFromShimService;
14
+ if (isIos18OrNewer(this.opts) && this.isRealDevice()) {
15
+ let remoteXPCConnection;
16
+ try {
17
+ const {Services} = await import('appium-ios-remotexpc');
18
+ let { diagnosticsService, remoteXPC } = await Services.startDiagnosticsService(this.device.udid);
19
+ remoteXPCConnection = remoteXPC;
20
+ batteryInfoFromShimService = await diagnosticsService.ioregistry({
21
+ ioClass: 'IOPMPowerSource',
22
+ returnRawJson: true,
23
+ });
24
+ } catch (err) {
25
+ log.error(`Failed to get battery info from DiagnosticsService: ${err.message}`);
26
+ } finally {
27
+ if (remoteXPCConnection) {
28
+ log.info(`Closing remoteXPC connection for device ${this.device.udid}`);
29
+ await remoteXPCConnection.close();
32
30
  }
33
31
  }
32
+ }
34
33
 
35
- const batteryInfoFromWda = /** @type {import('./types').BatteryInfo}} */ (
36
- await this.proxyCommand('/wda/batteryInfo', 'GET')
37
- );
38
- return {
39
- ...batteryInfoFromWda,
40
- advanced: batteryInfoFromShimService || {},
41
- };
42
- },
43
- };
34
+ const batteryInfoFromWda = /** @type {import('./types').BatteryInfo}} */ (
35
+ await this.proxyCommand('/wda/batteryInfo', 'GET')
36
+ );
37
+ return {
38
+ ...batteryInfoFromWda,
39
+ advanced: batteryInfoFromShimService || {},
40
+ };
41
+ }
44
42
 
45
43
  /**
46
44
  * @typedef {import('./types').BatteryInfo} BatteryInfo
@@ -3,52 +3,50 @@ import {assertSimulator as _assertSimulator} from '../utils';
3
3
 
4
4
  const assertSimulator = _.partial(_assertSimulator, 'Biometric enrollment');
5
5
 
6
- export default {
7
- /**
8
- * Enrolls biometric authentication on a simulated device.
9
- *
10
- * @param {boolean} isEnabled - Whether to enable/disable biometric enrollment.
11
- * @throws {Error} If enrollment fails or the device is not a Simulator.
12
- * @group Simulator Only
13
- * @this {XCUITestDriver}
14
- */
15
- async mobileEnrollBiometric(isEnabled = true) {
16
- assertSimulator(this);
17
-
18
- await /** @type {import('../driver').Simulator} */ (this.device).enrollBiometric(isEnabled);
19
- },
20
-
21
- /**
22
- * Emulates biometric match or non-match event on a simulated device.
23
- *
24
- * The biometric feature is expected to be already enrolled via {@linkcode mobileEnrollBiometric|mobile: enrollBiometric} before executing this.
25
- *
26
- * @param {import('./types').BiometricFeature} type - The biometric feature name.
27
- * @param {boolean} match - If `true`, simulate biometic match. If `false`, simulate biometric non-match.
28
- * @throws {Error} If matching fails or the device is not a Simulator.
29
- * @group Simulator Only
30
- * @this {XCUITestDriver}
31
- */
32
- async mobileSendBiometricMatch(type = 'touchId', match = true) {
33
- assertSimulator(this);
34
-
35
- await /** @type {import('../driver').Simulator} */ (this.device).sendBiometricMatch(match, type);
36
- },
37
-
38
- /**
39
- * Checks whether the biometric feature is currently enrolled on a simulated device.
40
- *
41
- * @returns {Promise<boolean>} `true` if biometric is enrolled.
42
- * @throws {Error} If the detection fails or the device is not a Simulator.
43
- * @group Simulator Only
44
- * @this {XCUITestDriver}
45
- */
46
- async mobileIsBiometricEnrolled() {
47
- assertSimulator(this);
48
-
49
- return await /** @type {import('../driver').Simulator} */ (this.device).isBiometricEnrolled();
50
- },
51
- };
6
+ /**
7
+ * Enrolls biometric authentication on a simulated device.
8
+ *
9
+ * @param {boolean} isEnabled - Whether to enable/disable biometric enrollment.
10
+ * @throws {Error} If enrollment fails or the device is not a Simulator.
11
+ * @group Simulator Only
12
+ * @this {XCUITestDriver}
13
+ */
14
+ export async function mobileEnrollBiometric(isEnabled = true) {
15
+ assertSimulator(this);
16
+
17
+ await /** @type {import('../driver').Simulator} */ (this.device).enrollBiometric(isEnabled);
18
+ }
19
+
20
+ /**
21
+ * Emulates biometric match or non-match event on a simulated device.
22
+ *
23
+ * The biometric feature is expected to be already enrolled via {@linkcode mobileEnrollBiometric|mobile: enrollBiometric} before executing this.
24
+ *
25
+ * @param {import('./types').BiometricFeature} type - The biometric feature name.
26
+ * @param {boolean} match - If `true`, simulate biometic match. If `false`, simulate biometric non-match.
27
+ * @throws {Error} If matching fails or the device is not a Simulator.
28
+ * @group Simulator Only
29
+ * @this {XCUITestDriver}
30
+ */
31
+ export async function mobileSendBiometricMatch(type = 'touchId', match = true) {
32
+ assertSimulator(this);
33
+
34
+ await /** @type {import('../driver').Simulator} */ (this.device).sendBiometricMatch(match, type);
35
+ }
36
+
37
+ /**
38
+ * Checks whether the biometric feature is currently enrolled on a simulated device.
39
+ *
40
+ * @returns {Promise<boolean>} `true` if biometric is enrolled.
41
+ * @throws {Error} If the detection fails or the device is not a Simulator.
42
+ * @group Simulator Only
43
+ * @this {XCUITestDriver}
44
+ */
45
+ export async function mobileIsBiometricEnrolled() {
46
+ assertSimulator(this);
47
+
48
+ return await /** @type {import('../driver').Simulator} */ (this.device).isBiometricEnrolled();
49
+ }
52
50
 
53
51
  /**
54
52
  * @typedef {import('../driver').XCUITestDriver} XCUITestDriver