appium-xcuitest-driver 10.14.6 → 10.14.7

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 (235) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/lib/index.d.ts +5 -0
  3. package/build/lib/index.d.ts.map +1 -0
  4. package/build/{index.js → lib/index.js} +2 -2
  5. package/build/lib/index.js.map +1 -0
  6. package/build/test/functional/basic/alert-e2e-specs.d.ts +2 -0
  7. package/build/test/functional/basic/alert-e2e-specs.d.ts.map +1 -0
  8. package/build/test/functional/basic/alert-e2e-specs.js +129 -0
  9. package/build/test/functional/basic/alert-e2e-specs.js.map +1 -0
  10. package/build/test/functional/basic/basic-e2e-specs.d.ts +2 -0
  11. package/build/test/functional/basic/basic-e2e-specs.d.ts.map +1 -0
  12. package/build/test/functional/basic/basic-e2e-specs.js +268 -0
  13. package/build/test/functional/basic/basic-e2e-specs.js.map +1 -0
  14. package/build/test/functional/basic/element-e2e-specs.d.ts +2 -0
  15. package/build/test/functional/basic/element-e2e-specs.d.ts.map +1 -0
  16. package/build/test/functional/basic/element-e2e-specs.js +354 -0
  17. package/build/test/functional/basic/element-e2e-specs.js.map +1 -0
  18. package/build/test/functional/basic/find-e2e-specs.d.ts +2 -0
  19. package/build/test/functional/basic/find-e2e-specs.d.ts.map +1 -0
  20. package/build/test/functional/basic/find-e2e-specs.js +434 -0
  21. package/build/test/functional/basic/find-e2e-specs.js.map +1 -0
  22. package/build/test/functional/basic/gesture-e2e-specs.d.ts +2 -0
  23. package/build/test/functional/basic/gesture-e2e-specs.d.ts.map +1 -0
  24. package/build/test/functional/basic/gesture-e2e-specs.js +211 -0
  25. package/build/test/functional/basic/gesture-e2e-specs.js.map +1 -0
  26. package/build/test/functional/desired.d.ts +26 -0
  27. package/build/test/functional/desired.d.ts.map +1 -0
  28. package/build/test/functional/desired.js +124 -0
  29. package/build/test/functional/desired.js.map +1 -0
  30. package/build/test/functional/device/accessibility-e2e-specs.d.ts +2 -0
  31. package/build/test/functional/device/accessibility-e2e-specs.d.ts.map +1 -0
  32. package/build/test/functional/device/accessibility-e2e-specs.js +117 -0
  33. package/build/test/functional/device/accessibility-e2e-specs.js.map +1 -0
  34. package/build/test/functional/device/file-movement-e2e-specs.d.ts +2 -0
  35. package/build/test/functional/device/file-movement-e2e-specs.d.ts.map +1 -0
  36. package/build/test/functional/device/file-movement-e2e-specs.js +141 -0
  37. package/build/test/functional/device/file-movement-e2e-specs.js.map +1 -0
  38. package/build/test/functional/device/otherApps-e2e-specs.d.ts +2 -0
  39. package/build/test/functional/device/otherApps-e2e-specs.d.ts.map +1 -0
  40. package/build/test/functional/device/otherApps-e2e-specs.js +66 -0
  41. package/build/test/functional/device/otherApps-e2e-specs.js.map +1 -0
  42. package/build/test/functional/device/passwords-e2e-specs.d.ts +2 -0
  43. package/build/test/functional/device/passwords-e2e-specs.d.ts.map +1 -0
  44. package/build/test/functional/device/passwords-e2e-specs.js +91 -0
  45. package/build/test/functional/device/passwords-e2e-specs.js.map +1 -0
  46. package/build/test/functional/device/performance-e2e-specs.d.ts +2 -0
  47. package/build/test/functional/device/performance-e2e-specs.d.ts.map +1 -0
  48. package/build/test/functional/device/performance-e2e-specs.js +72 -0
  49. package/build/test/functional/device/performance-e2e-specs.js.map +1 -0
  50. package/build/test/functional/driver/driver-e2e-specs.d.ts +2 -0
  51. package/build/test/functional/driver/driver-e2e-specs.d.ts.map +1 -0
  52. package/build/test/functional/driver/driver-e2e-specs.js +296 -0
  53. package/build/test/functional/driver/driver-e2e-specs.js.map +1 -0
  54. package/build/test/functional/helpers/element.d.ts +4 -0
  55. package/build/test/functional/helpers/element.d.ts.map +1 -0
  56. package/build/test/functional/helpers/element.js +8 -0
  57. package/build/test/functional/helpers/element.js.map +1 -0
  58. package/build/test/functional/helpers/ports.d.ts +6 -0
  59. package/build/test/functional/helpers/ports.d.ts.map +1 -0
  60. package/build/test/functional/helpers/ports.js +29 -0
  61. package/build/test/functional/helpers/ports.js.map +1 -0
  62. package/build/test/functional/helpers/session.d.ts +7 -0
  63. package/build/test/functional/helpers/session.d.ts.map +1 -0
  64. package/build/test/functional/helpers/session.js +39 -0
  65. package/build/test/functional/helpers/session.js.map +1 -0
  66. package/build/test/functional/helpers/simulator.d.ts +12 -0
  67. package/build/test/functional/helpers/simulator.d.ts.map +1 -0
  68. package/build/test/functional/helpers/simulator.js +51 -0
  69. package/build/test/functional/helpers/simulator.js.map +1 -0
  70. package/build/test/functional/long/typing-stress-e2e-specs.d.ts +2 -0
  71. package/build/test/functional/long/typing-stress-e2e-specs.d.ts.map +1 -0
  72. package/build/test/functional/long/typing-stress-e2e-specs.js +84 -0
  73. package/build/test/functional/long/typing-stress-e2e-specs.js.map +1 -0
  74. package/build/test/functional/tv/tvos-e2e-specs.d.ts +2 -0
  75. package/build/test/functional/tv/tvos-e2e-specs.d.ts.map +1 -0
  76. package/build/test/functional/tv/tvos-e2e-specs.js +83 -0
  77. package/build/test/functional/tv/tvos-e2e-specs.js.map +1 -0
  78. package/build/test/functional/web/helpers.d.ts +28 -0
  79. package/build/test/functional/web/helpers.d.ts.map +1 -0
  80. package/build/test/functional/web/helpers.js +137 -0
  81. package/build/test/functional/web/helpers.js.map +1 -0
  82. package/build/test/functional/web/safari-alerts-e2e-specs.d.ts +2 -0
  83. package/build/test/functional/web/safari-alerts-e2e-specs.d.ts.map +1 -0
  84. package/build/test/functional/web/safari-alerts-e2e-specs.js +109 -0
  85. package/build/test/functional/web/safari-alerts-e2e-specs.js.map +1 -0
  86. package/build/test/functional/web/safari-basic-e2e-specs.d.ts +2 -0
  87. package/build/test/functional/web/safari-basic-e2e-specs.d.ts.map +1 -0
  88. package/build/test/functional/web/safari-basic-e2e-specs.js +425 -0
  89. package/build/test/functional/web/safari-basic-e2e-specs.js.map +1 -0
  90. package/build/test/functional/web/safari-execute-e2e-specs.d.ts +2 -0
  91. package/build/test/functional/web/safari-execute-e2e-specs.d.ts.map +1 -0
  92. package/build/test/functional/web/safari-execute-e2e-specs.js +167 -0
  93. package/build/test/functional/web/safari-execute-e2e-specs.js.map +1 -0
  94. package/build/test/functional/web/safari-nativewebtap-e2e-specs.d.ts +2 -0
  95. package/build/test/functional/web/safari-nativewebtap-e2e-specs.d.ts.map +1 -0
  96. package/build/test/functional/web/safari-nativewebtap-e2e-specs.js +323 -0
  97. package/build/test/functional/web/safari-nativewebtap-e2e-specs.js.map +1 -0
  98. package/build/test/functional/web/safari-ssl-e2e-specs.d.ts +2 -0
  99. package/build/test/functional/web/safari-ssl-e2e-specs.d.ts.map +1 -0
  100. package/build/test/functional/web/safari-ssl-e2e-specs.js +131 -0
  101. package/build/test/functional/web/safari-ssl-e2e-specs.js.map +1 -0
  102. package/build/test/functional/web/safari-window-e2e-specs.d.ts +2 -0
  103. package/build/test/functional/web/safari-window-e2e-specs.d.ts.map +1 -0
  104. package/build/test/functional/web/safari-window-e2e-specs.js +263 -0
  105. package/build/test/functional/web/safari-window-e2e-specs.js.map +1 -0
  106. package/build/test/setup.d.ts +19 -0
  107. package/build/test/setup.d.ts.map +1 -0
  108. package/build/test/setup.js +117 -0
  109. package/build/test/setup.js.map +1 -0
  110. package/build/test/unit/app-infos-cache-specs.d.ts +2 -0
  111. package/build/test/unit/app-infos-cache-specs.d.ts.map +1 -0
  112. package/build/test/unit/app-infos-cache-specs.js +101 -0
  113. package/build/test/unit/app-infos-cache-specs.js.map +1 -0
  114. package/build/test/unit/app-utils-specs.d.ts +2 -0
  115. package/build/test/unit/app-utils-specs.d.ts.map +1 -0
  116. package/build/test/unit/app-utils-specs.js +131 -0
  117. package/build/test/unit/app-utils-specs.js.map +1 -0
  118. package/build/test/unit/commands/activeAppInfo-specs.d.ts +2 -0
  119. package/build/test/unit/commands/activeAppInfo-specs.d.ts.map +1 -0
  120. package/build/test/unit/commands/activeAppInfo-specs.js +74 -0
  121. package/build/test/unit/commands/activeAppInfo-specs.js.map +1 -0
  122. package/build/test/unit/commands/alert-specs.d.ts +2 -0
  123. package/build/test/unit/commands/alert-specs.d.ts.map +1 -0
  124. package/build/test/unit/commands/alert-specs.js +111 -0
  125. package/build/test/unit/commands/alert-specs.js.map +1 -0
  126. package/build/test/unit/commands/context-specs.d.ts +2 -0
  127. package/build/test/unit/commands/context-specs.d.ts.map +1 -0
  128. package/build/test/unit/commands/context-specs.js +119 -0
  129. package/build/test/unit/commands/context-specs.js.map +1 -0
  130. package/build/test/unit/commands/deviceinfo-specs.d.ts +2 -0
  131. package/build/test/unit/commands/deviceinfo-specs.d.ts.map +1 -0
  132. package/build/test/unit/commands/deviceinfo-specs.js +67 -0
  133. package/build/test/unit/commands/deviceinfo-specs.js.map +1 -0
  134. package/build/test/unit/commands/element-specs.d.ts +2 -0
  135. package/build/test/unit/commands/element-specs.d.ts.map +1 -0
  136. package/build/test/unit/commands/element-specs.js +419 -0
  137. package/build/test/unit/commands/element-specs.js.map +1 -0
  138. package/build/test/unit/commands/file-movement-specs.d.ts +2 -0
  139. package/build/test/unit/commands/file-movement-specs.d.ts.map +1 -0
  140. package/build/test/unit/commands/file-movement-specs.js +81 -0
  141. package/build/test/unit/commands/file-movement-specs.js.map +1 -0
  142. package/build/test/unit/commands/find-specs.d.ts +2 -0
  143. package/build/test/unit/commands/find-specs.d.ts.map +1 -0
  144. package/build/test/unit/commands/find-specs.js +106 -0
  145. package/build/test/unit/commands/find-specs.js.map +1 -0
  146. package/build/test/unit/commands/general-specs.d.ts +2 -0
  147. package/build/test/unit/commands/general-specs.d.ts.map +1 -0
  148. package/build/test/unit/commands/general-specs.js +154 -0
  149. package/build/test/unit/commands/general-specs.js.map +1 -0
  150. package/build/test/unit/commands/gesture-specs.d.ts +2 -0
  151. package/build/test/unit/commands/gesture-specs.d.ts.map +1 -0
  152. package/build/test/unit/commands/gesture-specs.js +263 -0
  153. package/build/test/unit/commands/gesture-specs.js.map +1 -0
  154. package/build/test/unit/commands/location-specs.d.ts +2 -0
  155. package/build/test/unit/commands/location-specs.d.ts.map +1 -0
  156. package/build/test/unit/commands/location-specs.js +141 -0
  157. package/build/test/unit/commands/location-specs.js.map +1 -0
  158. package/build/test/unit/commands/pasteboard-specs.d.ts +2 -0
  159. package/build/test/unit/commands/pasteboard-specs.d.ts.map +1 -0
  160. package/build/test/unit/commands/pasteboard-specs.js +65 -0
  161. package/build/test/unit/commands/pasteboard-specs.js.map +1 -0
  162. package/build/test/unit/commands/proxy-helper-specs.d.ts +2 -0
  163. package/build/test/unit/commands/proxy-helper-specs.d.ts.map +1 -0
  164. package/build/test/unit/commands/proxy-helper-specs.js +88 -0
  165. package/build/test/unit/commands/proxy-helper-specs.js.map +1 -0
  166. package/build/test/unit/commands/screenshots-specs.d.ts +2 -0
  167. package/build/test/unit/commands/screenshots-specs.d.ts.map +1 -0
  168. package/build/test/unit/commands/screenshots-specs.js +71 -0
  169. package/build/test/unit/commands/screenshots-specs.js.map +1 -0
  170. package/build/test/unit/commands/session-specs.d.ts +2 -0
  171. package/build/test/unit/commands/session-specs.d.ts.map +1 -0
  172. package/build/test/unit/commands/session-specs.js +49 -0
  173. package/build/test/unit/commands/session-specs.js.map +1 -0
  174. package/build/test/unit/commands/simctl-specs.d.ts +2 -0
  175. package/build/test/unit/commands/simctl-specs.d.ts.map +1 -0
  176. package/build/test/unit/commands/simctl-specs.js +54 -0
  177. package/build/test/unit/commands/simctl-specs.js.map +1 -0
  178. package/build/test/unit/commands/source-specs.d.ts +2 -0
  179. package/build/test/unit/commands/source-specs.d.ts.map +1 -0
  180. package/build/test/unit/commands/source-specs.js +55 -0
  181. package/build/test/unit/commands/source-specs.js.map +1 -0
  182. package/build/test/unit/commands/ssl-certificate-specs.d.ts +2 -0
  183. package/build/test/unit/commands/ssl-certificate-specs.d.ts.map +1 -0
  184. package/build/test/unit/commands/ssl-certificate-specs.js +16 -0
  185. package/build/test/unit/commands/ssl-certificate-specs.js.map +1 -0
  186. package/build/test/unit/commands/xctest-specs.d.ts +2 -0
  187. package/build/test/unit/commands/xctest-specs.d.ts.map +1 -0
  188. package/build/test/unit/commands/xctest-specs.js +116 -0
  189. package/build/test/unit/commands/xctest-specs.js.map +1 -0
  190. package/build/test/unit/css-converter-specs.d.ts +2 -0
  191. package/build/test/unit/css-converter-specs.d.ts.map +1 -0
  192. package/build/test/unit/css-converter-specs.js +99 -0
  193. package/build/test/unit/css-converter-specs.js.map +1 -0
  194. package/build/test/unit/device-connections-factory-specs.d.ts +2 -0
  195. package/build/test/unit/device-connections-factory-specs.d.ts.map +1 -0
  196. package/build/test/unit/device-connections-factory-specs.js +88 -0
  197. package/build/test/unit/device-connections-factory-specs.js.map +1 -0
  198. package/build/test/unit/driver-specs.d.ts +2 -0
  199. package/build/test/unit/driver-specs.d.ts.map +1 -0
  200. package/build/test/unit/driver-specs.js +358 -0
  201. package/build/test/unit/driver-specs.js.map +1 -0
  202. package/build/test/unit/helpers.d.ts +2 -0
  203. package/build/test/unit/helpers.d.ts.map +1 -0
  204. package/build/test/unit/helpers.js +5 -0
  205. package/build/test/unit/helpers.js.map +1 -0
  206. package/build/test/unit/language-specs.d.ts +2 -0
  207. package/build/test/unit/language-specs.d.ts.map +1 -0
  208. package/build/test/unit/language-specs.js +159 -0
  209. package/build/test/unit/language-specs.js.map +1 -0
  210. package/build/test/unit/logs-helpers-specs.d.ts +2 -0
  211. package/build/test/unit/logs-helpers-specs.d.ts.map +1 -0
  212. package/build/test/unit/logs-helpers-specs.js +71 -0
  213. package/build/test/unit/logs-helpers-specs.js.map +1 -0
  214. package/build/test/unit/processargs-specs.d.ts +2 -0
  215. package/build/test/unit/processargs-specs.d.ts.map +1 -0
  216. package/build/test/unit/processargs-specs.js +87 -0
  217. package/build/test/unit/processargs-specs.js.map +1 -0
  218. package/build/test/unit/real-device-management-specs.d.ts +2 -0
  219. package/build/test/unit/real-device-management-specs.d.ts.map +1 -0
  220. package/build/test/unit/real-device-management-specs.js +151 -0
  221. package/build/test/unit/real-device-management-specs.js.map +1 -0
  222. package/build/test/unit/simulator-management-specs.d.ts +2 -0
  223. package/build/test/unit/simulator-management-specs.d.ts.map +1 -0
  224. package/build/test/unit/simulator-management-specs.js +143 -0
  225. package/build/test/unit/simulator-management-specs.js.map +1 -0
  226. package/build/test/unit/utils-specs.d.ts +2 -0
  227. package/build/test/unit/utils-specs.d.ts.map +1 -0
  228. package/build/test/unit/utils-specs.js +132 -0
  229. package/build/test/unit/utils-specs.js.map +1 -0
  230. package/build/tsconfig.tsbuildinfo +1 -0
  231. package/lib/index.ts +5 -0
  232. package/npm-shrinkwrap.json +5 -5
  233. package/package.json +4 -7
  234. package/build/index.d.ts +0 -5
  235. package/index.js +0 -7
@@ -0,0 +1,419 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ // eslint-disable-next-line
40
+ const sinon_1 = require("sinon");
41
+ const driver_1 = require("../../../lib/driver");
42
+ const chai_1 = __importStar(require("chai"));
43
+ const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
44
+ chai_1.default.use(chai_as_promised_1.default);
45
+ describe('element commands', function () {
46
+ let sandbox;
47
+ /** @type {XCUITestDriver} */
48
+ let driver;
49
+ /** @type {sinon.SinonStubbedMember<XCUITestDriver['proxyCommand']>} */
50
+ let proxyStub;
51
+ before(async function () {
52
+ driver = new driver_1.XCUITestDriver({});
53
+ });
54
+ beforeEach(function () {
55
+ sandbox = (0, sinon_1.createSandbox)();
56
+ proxyStub = sandbox.stub(driver, 'proxyCommand');
57
+ });
58
+ afterEach(function () {
59
+ sandbox.restore();
60
+ });
61
+ describe('setValueImmediate', function () {
62
+ beforeEach(function () {
63
+ sandbox.stub(driver, 'setValue');
64
+ });
65
+ it('should call setValue', async function () {
66
+ await driver.setValueImmediate('hello', '2');
67
+ (0, chai_1.expect)(driver.setValue.calledOnceWithExactly('hello', '2')).to.be.true;
68
+ (0, chai_1.expect)(driver.setValue.returned(undefined)).to.be.true;
69
+ });
70
+ });
71
+ describe('getAttribute', function () {
72
+ const elementId = 2;
73
+ const attribute = 'enabled';
74
+ afterEach(function () {
75
+ (0, chai_1.expect)(proxyStub.calledOnce).to.be.true;
76
+ });
77
+ it('should properly parse boolean true attribute presented as integer', async function () {
78
+ proxyStub.resolves(1);
79
+ (0, chai_1.expect)(await driver.getAttribute(attribute, elementId)).to.eql('true');
80
+ });
81
+ it('should properly parse boolean false attribute presented as integer', async function () {
82
+ proxyStub.resolves(0);
83
+ (0, chai_1.expect)(await driver.getAttribute(attribute, elementId)).to.eql('false');
84
+ });
85
+ it('should properly parse integer attribute presented as string', async function () {
86
+ proxyStub.resolves('0');
87
+ (0, chai_1.expect)(await driver.getAttribute(attribute, elementId)).to.eql('0');
88
+ });
89
+ it('should properly parse boolean attribute presented as bool', async function () {
90
+ proxyStub.resolves(false);
91
+ (0, chai_1.expect)(await driver.getAttribute(attribute, elementId)).to.eql('false');
92
+ });
93
+ it('should properly parse null attribute', async function () {
94
+ proxyStub.resolves(null);
95
+ await chai_1.default.expect(driver.getAttribute(attribute, elementId)).to.eventually.be.null;
96
+ });
97
+ it('should properly parse string attribute', async function () {
98
+ proxyStub.resolves('value');
99
+ (0, chai_1.expect)(await driver.getAttribute(attribute, elementId)).to.eql('value');
100
+ });
101
+ });
102
+ describe('getProperty', function () {
103
+ const elementId = 2;
104
+ const property = 'enabled';
105
+ afterEach(function () {
106
+ (0, chai_1.expect)(proxyStub.calledOnce).to.be.true;
107
+ });
108
+ it('should properly parse boolean true attribute presented as integer', async function () {
109
+ proxyStub.resolves(1);
110
+ (0, chai_1.expect)(await driver.getProperty(property, elementId)).to.eql('true');
111
+ });
112
+ it('should properly parse boolean false attribute presented as integer', async function () {
113
+ proxyStub.resolves(0);
114
+ (0, chai_1.expect)(await driver.getProperty(property, elementId)).to.eql('false');
115
+ });
116
+ it('should properly parse integer attribute presented as string', async function () {
117
+ proxyStub.resolves('0');
118
+ (0, chai_1.expect)(await driver.getProperty(property, elementId)).to.eql('0');
119
+ });
120
+ it('should properly parse boolean attribute presented as bool', async function () {
121
+ proxyStub.resolves(false);
122
+ (0, chai_1.expect)(await driver.getProperty(property, elementId)).to.eql('false');
123
+ });
124
+ it('should properly parse null attribute', async function () {
125
+ proxyStub.resolves(null);
126
+ await chai_1.default.expect(driver.getProperty(property, elementId)).to.eventually.be.null;
127
+ });
128
+ it('should properly parse string attribute', async function () {
129
+ proxyStub.resolves('value');
130
+ (0, chai_1.expect)(await driver.getProperty(property, elementId)).to.eql('value');
131
+ });
132
+ });
133
+ describe('getAttribute - special contentSize', function () {
134
+ it('should call the internal method instead of WDA', async function () {
135
+ const getContentSizeStub = sandbox.stub(driver, 'getContentSize');
136
+ getContentSizeStub.resolves('foo');
137
+ (0, chai_1.expect)(await driver.getAttribute('contentSize', 2)).to.eql('foo');
138
+ (0, chai_1.expect)(proxyStub.called).to.be.false;
139
+ (0, chai_1.expect)(getContentSizeStub.calledOnce).to.be.true;
140
+ });
141
+ });
142
+ describe('getContentSize', function () {
143
+ const el = { ELEMENT: '1234' };
144
+ /** @type {sinon.SinonStubbedMember<XCUITestDriver['getAttribute']>} */
145
+ let getAttrStub;
146
+ /** @type {sinon.SinonStubbedMember<XCUITestDriver['getElementRect']>} */
147
+ let getRectStub;
148
+ /** @type {sinon.SinonStubbedMember<XCUITestDriver['findElOrEls']>} */
149
+ let findElStub;
150
+ /** @type {sinon.SinonStubbedMember<XCUITestDriver['getSize']>} */
151
+ let getSizeStub;
152
+ /** @type {sinon.SinonStubbedMember<XCUITestDriver['getLocationInView']>} */
153
+ let getLocationStub;
154
+ beforeEach(function () {
155
+ getAttrStub = sandbox.stub(driver, 'getAttribute');
156
+ getRectStub = sandbox.stub(driver, 'getElementRect');
157
+ findElStub = sandbox.stub(driver, 'findElOrEls');
158
+ getSizeStub = sandbox.stub(driver, 'getSize');
159
+ getLocationStub = sandbox.stub(driver, 'getLocationInView');
160
+ });
161
+ describe('web context', function () {
162
+ /** @type {XCUITestDriver['curContext']} */
163
+ let oldContext;
164
+ beforeEach(function () {
165
+ oldContext = driver.curContext;
166
+ driver.curContext = 'WEBVIEW';
167
+ });
168
+ afterEach(function () {
169
+ driver.curContext = oldContext;
170
+ });
171
+ it('should throw when in a web context', async function () {
172
+ await (0, chai_1.expect)(driver.getContentSize(el)).to.be.rejectedWith(/not yet implemented/);
173
+ });
174
+ });
175
+ it('should throw if trying to get contentSize of something other than table or collection', async function () {
176
+ getAttrStub.resolves('XCUIElementTypeStatusBar');
177
+ await (0, chai_1.expect)(driver.getContentSize(el)).to.be.rejectedWith(/Can't get content size for type/);
178
+ });
179
+ it('should simply get the rect if just one child', async function () {
180
+ getAttrStub.resolves('XCUIElementTypeTable');
181
+ findElStub.resolves([{ ELEMENT: 'foo' }]);
182
+ getRectStub.resolves({ x: 0, y: 0, height: 100, width: 200 });
183
+ getSizeStub.resolves({ height: 100, width: 200 });
184
+ getLocationStub.resolves({ x: 0, y: 0 });
185
+ const contentSizeObj = JSON.parse(await driver.getContentSize(el));
186
+ (0, chai_1.expect)(contentSizeObj).to.eql({
187
+ width: 200,
188
+ height: 100,
189
+ top: 0,
190
+ left: 0,
191
+ scrollableOffset: 100,
192
+ });
193
+ (0, chai_1.expect)(getRectStub.calledOnce).to.be.true;
194
+ });
195
+ it('should get simple difference in element positions of a table', async function () {
196
+ const el1 = { ELEMENT: 1 };
197
+ const el2 = { ELEMENT: 2 };
198
+ getAttrStub.resolves('XCUIElementTypeTable');
199
+ findElStub.resolves([el1, el2]);
200
+ getRectStub.withArgs(el1).resolves({ x: 0, y: 10, width: 50, height: 60 });
201
+ getRectStub.withArgs(el2).resolves({ x: 10, y: 80, width: 60, height: 100 });
202
+ getSizeStub.resolves({ height: 100, width: 200 });
203
+ getLocationStub.resolves({ x: 0, y: 0 });
204
+ const contentSizeObj = JSON.parse(await driver.getContentSize(el));
205
+ (0, chai_1.expect)(contentSizeObj).to.eql({
206
+ width: 200,
207
+ height: 100,
208
+ top: 0,
209
+ left: 0,
210
+ scrollableOffset: 170,
211
+ });
212
+ (0, chai_1.expect)(getRectStub.calledTwice).to.be.true;
213
+ });
214
+ it('should be sensitive to row items in the case of a collection view', async function () {
215
+ // set up a collection view with 3 rows of 2 elements.
216
+ // give the last row just one element
217
+ const fixtures = [
218
+ { id: 1, x: 0, y: 0, height: 50, width: 50 },
219
+ { id: 2, x: 50, y: 0, height: 50, width: 50 },
220
+ { id: 3, x: 0, y: 60, height: 50, width: 50 },
221
+ { id: 4, x: 50, y: 60, height: 50, width: 50 },
222
+ { id: 5, x: 0, y: 120, height: 50, width: 50 },
223
+ ];
224
+ const scrollableOffset = 170; // 3 rows plus space between two
225
+ getAttrStub.resolves('XCUIElementTypeCollectionView');
226
+ findElStub.resolves(fixtures.map((el) => ({ ELEMENT: el.id })));
227
+ for (const item of fixtures) {
228
+ getRectStub.withArgs({ ELEMENT: item.id }).resolves(item);
229
+ }
230
+ getSizeStub.resolves({ height: 100, width: 200 });
231
+ getLocationStub.resolves({ x: 0, y: 0 });
232
+ const contentSizeObj = JSON.parse(await driver.getContentSize(el));
233
+ (0, chai_1.expect)(contentSizeObj).to.eql({
234
+ width: 200,
235
+ height: 100,
236
+ top: 0,
237
+ left: 0,
238
+ scrollableOffset,
239
+ });
240
+ (0, chai_1.expect)(getRectStub.calledThrice).to.be.true;
241
+ });
242
+ });
243
+ describe('setValue', function () {
244
+ describe('Native contest', function () {
245
+ const elementId = 2;
246
+ const expectedEndpoint = `/element/${elementId}/value`;
247
+ const expectedMethod = 'POST';
248
+ describe('success', function () {
249
+ it('should proxy string as array of characters', async function () {
250
+ await driver.setValue('hello\uE006', elementId);
251
+ (0, chai_1.expect)(proxyStub.calledOnceWithExactly(expectedEndpoint, expectedMethod, {
252
+ value: ['h', 'e', 'l', 'l', 'o', '\n'],
253
+ })).to.be.true;
254
+ });
255
+ it('should proxy string with smileys as array of characters', async function () {
256
+ await driver.setValue('hello😀😎', elementId);
257
+ (0, chai_1.expect)(proxyStub.calledOnceWithExactly(expectedEndpoint, expectedMethod, {
258
+ value: ['h', 'e', 'l', 'l', 'o', '😀', '😎'],
259
+ })).to.be.true;
260
+ });
261
+ it('should proxy number as array of characters', async function () {
262
+ await driver.setValue(1234.56, elementId);
263
+ (0, chai_1.expect)(proxyStub.calledOnceWithExactly(expectedEndpoint, expectedMethod, {
264
+ value: ['1', '2', '3', '4', '.', '5', '6'],
265
+ })).to.be.true;
266
+ });
267
+ it('should proxy string array as array of characters', async function () {
268
+ await driver.setValue(['hel', 'lo'], elementId);
269
+ (0, chai_1.expect)(proxyStub.calledOnceWithExactly(expectedEndpoint, expectedMethod, {
270
+ value: ['h', 'e', 'l', 'l', 'o'],
271
+ })).to.be.true;
272
+ });
273
+ it('should proxy integer array as array of characters', async function () {
274
+ await driver.setValue([1234], elementId);
275
+ (0, chai_1.expect)(proxyStub.calledOnceWithExactly(expectedEndpoint, expectedMethod, {
276
+ value: ['1', '2', '3', '4'],
277
+ })).to.be.true;
278
+ });
279
+ });
280
+ describe('failure', function () {
281
+ it('should throw invalid argument exception for null', async function () {
282
+ await (0, chai_1.expect)(driver.setValue(null, elementId)).to.be.rejectedWith(/supported/);
283
+ });
284
+ it('should throw invalid argument exception for object', async function () {
285
+ await (0, chai_1.expect)(driver.setValue({ hi: 'there' }, elementId)).to.be.rejectedWith(/supported/);
286
+ });
287
+ });
288
+ });
289
+ describe('Web contest', function () {
290
+ const elementId = 2;
291
+ /** @type {sinon.SinonStubbedMember<XCUITestDriver['getAtomsElement']>} */
292
+ let atomElement;
293
+ /** @type {sinon.SinonStubbedMember<XCUITestDriver['executeAtom']>} */
294
+ let executeAtom;
295
+ /** @type {sinon.SinonStubbedMember<XCUITestDriver['setValueWithWebAtom']>} */
296
+ let setValueWithWebAtom;
297
+ const webEl = { ELEMENT: '5000', 'element-6066-11e4-a52e-4f735466cecf': '5000' };
298
+ beforeEach(function () {
299
+ driver.curContext = 'fake web context';
300
+ atomElement = sandbox.stub(driver, 'getAtomsElement').returns(webEl);
301
+ executeAtom = sandbox.stub(driver, 'executeAtom');
302
+ setValueWithWebAtom = sandbox.stub(driver, 'setValueWithWebAtom');
303
+ });
304
+ afterEach(function () {
305
+ sandbox.restore();
306
+ });
307
+ describe('setValueWithWebAtom', function () {
308
+ it('with default', async function () {
309
+ driver.opts.sendKeyStrategy = undefined;
310
+ await driver.setValue('hello\uE006😀', elementId);
311
+ (0, chai_1.expect)(atomElement.calledOnce).to.be.true;
312
+ (0, chai_1.expect)(executeAtom.calledOnce).to.be.true;
313
+ (0, chai_1.expect)(setValueWithWebAtom.calledOnceWithExactly(webEl, 'hello\uE006😀')).to.be.true;
314
+ });
315
+ it('with oneByOne', async function () {
316
+ driver.opts.sendKeyStrategy = 'oneByOne';
317
+ await driver.setValue('hello\uE006😀', elementId);
318
+ (0, chai_1.expect)(atomElement.calledOnce).to.be.true;
319
+ (0, chai_1.expect)(executeAtom.calledOnce).to.be.true;
320
+ (0, chai_1.expect)(setValueWithWebAtom.getCall(0).args).to.eql([webEl, 'h']);
321
+ (0, chai_1.expect)(setValueWithWebAtom.getCall(1).args).to.eql([webEl, 'e']);
322
+ (0, chai_1.expect)(setValueWithWebAtom.getCall(2).args).to.eql([webEl, 'l']);
323
+ (0, chai_1.expect)(setValueWithWebAtom.getCall(3).args).to.eql([webEl, 'l']);
324
+ (0, chai_1.expect)(setValueWithWebAtom.getCall(4).args).to.eql([webEl, 'o']);
325
+ (0, chai_1.expect)(setValueWithWebAtom.getCall(5).args).to.eql([webEl, '\n']);
326
+ (0, chai_1.expect)(setValueWithWebAtom.getCall(6).args).to.eql([webEl, '😀']);
327
+ });
328
+ });
329
+ });
330
+ });
331
+ describe('getLocation for web elements', function () {
332
+ /** @type {XCUITestDriver} */
333
+ let driver;
334
+ const webEl = { ELEMENT: '5000', 'element-6066-11e4-a52e-4f735466cecf': '5000' };
335
+ const fixtureXOffset = 100;
336
+ const fixtureYOffset = 200;
337
+ /** @type {sinon.SinonStubbedMember<XCUITestDriver['execute']>} */
338
+ let executeStub;
339
+ /** @type {sinon.SinonStubbedMember<XCUITestDriver['executeAtom']>} */
340
+ let atomStub;
341
+ beforeEach(function () {
342
+ driver = new driver_1.XCUITestDriver({});
343
+ driver.curContext = 'fake web context';
344
+ executeStub = sandbox.stub(driver, 'execute').resolves([fixtureXOffset, fixtureYOffset]);
345
+ sandbox.stub(driver, 'getAtomsElement').resolvesArg(0);
346
+ atomStub = sandbox.stub(driver, 'executeAtom').resolves({ x: 0, y: 0 });
347
+ proxyStub = sandbox.stub(driver, 'proxyCommand');
348
+ });
349
+ afterEach(function () {
350
+ sandbox.restore();
351
+ });
352
+ it('should get location relative to scroll by default', async function () {
353
+ const loc = await driver.getLocation(webEl);
354
+ (0, chai_1.expect)(executeStub.calledOnce).to.be.false;
355
+ (0, chai_1.expect)(atomStub.calledOnce).to.be.true;
356
+ (0, chai_1.expect)(atomStub.firstCall.args[0]).to.eql('get_top_left_coordinates');
357
+ (0, chai_1.expect)(loc.x).to.equal(0);
358
+ (0, chai_1.expect)(loc.y).to.equal(0);
359
+ });
360
+ it('should get location relative to document with absoluteWebLocations cap', async function () {
361
+ driver.opts.absoluteWebLocations = true;
362
+ const loc = await driver.getLocation(webEl);
363
+ (0, chai_1.expect)(executeStub.calledOnce).to.be.true;
364
+ (0, chai_1.expect)(atomStub.calledOnce).to.be.true;
365
+ (0, chai_1.expect)(atomStub.firstCall.args[0]).to.eql('get_top_left_coordinates');
366
+ (0, chai_1.expect)(loc.x).to.equal(fixtureXOffset);
367
+ (0, chai_1.expect)(loc.y).to.equal(fixtureYOffset);
368
+ });
369
+ });
370
+ describe('getElementRect', function () {
371
+ /** @type {XCUITestDriver} */
372
+ let driver;
373
+ /** @type {sinon.SinonStubbedMember<XCUITestDriver['getNativeRect']>} */
374
+ let getNativeRectStub;
375
+ /** @type {sinon.SinonStubbedMember<XCUITestDriver['getLocationInView']>} */
376
+ let getLocationStub;
377
+ /** @type {sinon.SinonStubbedMember<XCUITestDriver['getSize']>} */
378
+ let getSizeStub;
379
+ /** @type {sinon.SinonStubbedMember<XCUITestDriver['isWebContext']>} */
380
+ let isWebContextStub;
381
+ const elem = { ELEMENT: '5000' };
382
+ beforeEach(function () {
383
+ driver = new driver_1.XCUITestDriver({});
384
+ getNativeRectStub = sandbox
385
+ .stub(driver, 'getNativeRect')
386
+ .resolves({ x: 0, y: 50, width: 100, height: 200 });
387
+ getLocationStub = sandbox.stub(driver, 'getLocation').resolves({ x: 0, y: 50 });
388
+ getSizeStub = sandbox.stub(driver, 'getSize').resolves({ width: 100, height: 200 });
389
+ });
390
+ afterEach(function () {
391
+ sandbox.restore();
392
+ });
393
+ it('should get element rect in native context', async function () {
394
+ isWebContextStub = sandbox.stub(driver, 'isWebContext').returns(false);
395
+ const rect = await driver.getElementRect(elem);
396
+ (0, chai_1.expect)(isWebContextStub.calledOnce).to.be.true;
397
+ (0, chai_1.expect)(getNativeRectStub.calledOnce).to.be.true;
398
+ (0, chai_1.expect)(getLocationStub.calledOnce).to.be.false;
399
+ (0, chai_1.expect)(getSizeStub.calledOnce).to.be.false;
400
+ (0, chai_1.expect)(rect.x).to.eql(0);
401
+ (0, chai_1.expect)(rect.y).to.eql(50);
402
+ (0, chai_1.expect)(rect.width).to.eql(100);
403
+ (0, chai_1.expect)(rect.height).to.eql(200);
404
+ });
405
+ it('should get element rect in Web context', async function () {
406
+ isWebContextStub = sandbox.stub(driver, 'isWebContext').returns(true);
407
+ const rect = await driver.getElementRect(elem);
408
+ (0, chai_1.expect)(isWebContextStub.calledOnce).to.be.true;
409
+ (0, chai_1.expect)(getNativeRectStub.calledOnce).to.be.false;
410
+ (0, chai_1.expect)(getLocationStub.calledOnce).to.be.true;
411
+ (0, chai_1.expect)(getSizeStub.calledOnce).to.be.true;
412
+ (0, chai_1.expect)(rect.x).to.eql(0);
413
+ (0, chai_1.expect)(rect.y).to.eql(50);
414
+ (0, chai_1.expect)(rect.width).to.eql(100);
415
+ (0, chai_1.expect)(rect.height).to.eql(200);
416
+ });
417
+ });
418
+ });
419
+ //# sourceMappingURL=element-specs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"element-specs.js","sourceRoot":"","sources":["../../../../test/unit/commands/element-specs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=file-movement-specs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-movement-specs.d.ts","sourceRoot":"","sources":["../../../../test/unit/commands/file-movement-specs.ts"],"names":[],"mappings":""}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const file_movement_1 = require("../../../lib/commands/file-movement");
40
+ const support_1 = require("appium/support");
41
+ const driver_1 = require("../../../lib/driver");
42
+ const chai_1 = __importStar(require("chai"));
43
+ const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
44
+ chai_1.default.use(chai_as_promised_1.default);
45
+ describe('file-movement', function () {
46
+ describe('parseContainerPath', function () {
47
+ let driver;
48
+ beforeEach(function () {
49
+ driver = new driver_1.XCUITestDriver({});
50
+ });
51
+ afterEach(function () {
52
+ driver = null;
53
+ });
54
+ it('should parse with container', async function () {
55
+ const mntRoot = await support_1.tempDir.openDir();
56
+ const { bundleId, pathInContainer, containerType } = await file_movement_1.parseContainerPath.bind(driver)('@io.appium.example:app/Documents/file.txt', mntRoot);
57
+ (0, chai_1.expect)(bundleId).to.eql('io.appium.example');
58
+ (0, chai_1.expect)(pathInContainer).to.eql(`${mntRoot}/Documents/file.txt`);
59
+ (0, chai_1.expect)(containerType).to.eql('app');
60
+ });
61
+ it('should parse with container root', async function () {
62
+ const mntRoot = await support_1.tempDir.openDir();
63
+ const { bundleId, pathInContainer, containerType } = await file_movement_1.parseContainerPath.bind(driver)('@io.appium.example:documents/', mntRoot);
64
+ (0, chai_1.expect)(bundleId).to.eql('io.appium.example');
65
+ (0, chai_1.expect)(pathInContainer).to.eql(mntRoot);
66
+ (0, chai_1.expect)(containerType).to.eql('documents');
67
+ });
68
+ it('should parse without container', async function () {
69
+ const mntRoot = await support_1.tempDir.openDir();
70
+ const { bundleId, pathInContainer, containerType } = await file_movement_1.parseContainerPath.bind(driver)('@io.appium.example/Documents/file.txt', mntRoot);
71
+ (0, chai_1.expect)(bundleId).to.eql('io.appium.example');
72
+ (0, chai_1.expect)(pathInContainer).to.eql(`${mntRoot}/Documents/file.txt`);
73
+ (0, chai_1.expect)(containerType).equal(null);
74
+ });
75
+ it('should raise an error if no container path', async function () {
76
+ const mntRoot = await support_1.tempDir.openDir();
77
+ await (0, chai_1.expect)(file_movement_1.parseContainerPath.bind(driver)('@io.appium.example:documents', mntRoot)).to.be.rejected;
78
+ });
79
+ });
80
+ });
81
+ //# sourceMappingURL=file-movement-specs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-movement-specs.js","sourceRoot":"","sources":["../../../../test/unit/commands/file-movement-specs.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uEAAuE;AACvE,4CAAuC;AACvC,gDAAmD;AACnD,6CAAkC;AAClC,wEAA8C;AAE9C,cAAI,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAC;AAEzB,QAAQ,CAAC,eAAe,EAAE;IAExB,QAAQ,CAAC,oBAAoB,EAAE;QAC7B,IAAI,MAAM,CAAC;QAEX,UAAU,CAAC;YACT,MAAM,GAAG,IAAI,uBAAc,CAAC,EAAS,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC;YACR,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK;YACrC,MAAM,OAAO,GAAG,MAAM,iBAAO,CAAC,OAAO,EAAE,CAAC;YACxC,MAAM,EAAC,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAC,GAAG,MAAM,kCAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CACtF,2CAA2C,EAC3C,OAAO,CACR,CAAC;YAEF,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YAC7C,IAAA,aAAM,EAAC,eAAe,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,OAAO,qBAAqB,CAAC,CAAC;YAChE,IAAA,aAAM,EAAC,aAAa,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,kCAAkC,EAAE,KAAK;YAC1C,MAAM,OAAO,GAAG,MAAM,iBAAO,CAAC,OAAO,EAAE,CAAC;YACxC,MAAM,EAAC,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAC,GAAG,MAAM,kCAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CACtF,+BAA+B,EAC/B,OAAO,CACR,CAAC;YAEF,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YAC7C,IAAA,aAAM,EAAC,eAAe,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACxC,IAAA,aAAM,EAAC,aAAa,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,gCAAgC,EAAE,KAAK;YACxC,MAAM,OAAO,GAAG,MAAM,iBAAO,CAAC,OAAO,EAAE,CAAC;YACxC,MAAM,EAAC,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAC,GAAG,MAAM,kCAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CACtF,uCAAuC,EACvC,OAAO,CACR,CAAC;YAEF,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YAC7C,IAAA,aAAM,EAAC,eAAe,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,OAAO,qBAAqB,CAAC,CAAC;YAChE,IAAA,aAAM,EAAC,aAAa,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,4CAA4C,EAAE,KAAK;YACpD,MAAM,OAAO,GAAG,MAAM,iBAAO,CAAC,OAAO,EAAE,CAAC;YACxC,MAAM,IAAA,aAAM,EAAC,kCAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,8BAA8B,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC;QACxG,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=find-specs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-specs.d.ts","sourceRoot":"","sources":["../../../../test/unit/commands/find-specs.ts"],"names":[],"mappings":""}