@appium/fake-driver 6.0.1 → 6.1.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 (111) hide show
  1. package/build/lib/commands/alert.d.ts +10 -13
  2. package/build/lib/commands/alert.d.ts.map +1 -1
  3. package/build/lib/commands/alert.js +39 -46
  4. package/build/lib/commands/alert.js.map +1 -1
  5. package/build/lib/commands/contexts.d.ts +9 -13
  6. package/build/lib/commands/contexts.d.ts.map +1 -1
  7. package/build/lib/commands/contexts.js +55 -62
  8. package/build/lib/commands/contexts.js.map +1 -1
  9. package/build/lib/commands/element.d.ts +23 -26
  10. package/build/lib/commands/element.d.ts.map +1 -1
  11. package/build/lib/commands/element.js +100 -89
  12. package/build/lib/commands/element.js.map +1 -1
  13. package/build/lib/commands/find.d.ts +14 -17
  14. package/build/lib/commands/find.d.ts.map +1 -1
  15. package/build/lib/commands/find.js +66 -63
  16. package/build/lib/commands/find.js.map +1 -1
  17. package/build/lib/commands/general.d.ts +25 -28
  18. package/build/lib/commands/general.d.ts.map +1 -1
  19. package/build/lib/commands/general.js +90 -75
  20. package/build/lib/commands/general.js.map +1 -1
  21. package/build/lib/desired-caps.d.ts +14 -0
  22. package/build/lib/desired-caps.d.ts.map +1 -0
  23. package/build/lib/desired-caps.js +16 -0
  24. package/build/lib/desired-caps.js.map +1 -0
  25. package/build/lib/doctor/common.d.ts +11 -0
  26. package/build/lib/doctor/common.d.ts.map +1 -0
  27. package/build/lib/doctor/common.js +25 -0
  28. package/build/lib/doctor/common.js.map +1 -0
  29. package/build/lib/doctor/fake1.d.ts +3 -0
  30. package/build/lib/doctor/fake1.d.ts.map +1 -0
  31. package/build/lib/doctor/fake1.js +6 -0
  32. package/build/lib/doctor/fake1.js.map +1 -0
  33. package/build/lib/doctor/fake2.d.ts +3 -0
  34. package/build/lib/doctor/fake2.d.ts.map +1 -0
  35. package/build/lib/doctor/fake2.js +6 -0
  36. package/build/lib/doctor/fake2.js.map +1 -0
  37. package/build/lib/driver.d.ts +128 -156
  38. package/build/lib/driver.d.ts.map +1 -1
  39. package/build/lib/driver.js +146 -154
  40. package/build/lib/driver.js.map +1 -1
  41. package/build/lib/fake-app.d.ts +37 -45
  42. package/build/lib/fake-app.d.ts.map +1 -1
  43. package/build/lib/fake-app.js +61 -38
  44. package/build/lib/fake-app.js.map +1 -1
  45. package/build/lib/fake-driver-schema.d.ts +16 -11
  46. package/build/lib/fake-driver-schema.d.ts.map +1 -1
  47. package/build/lib/fake-driver-schema.js +2 -17
  48. package/build/lib/fake-driver-schema.js.map +1 -1
  49. package/build/lib/fake-element.d.ts +27 -26
  50. package/build/lib/fake-element.d.ts.map +1 -1
  51. package/build/lib/fake-element.js +19 -19
  52. package/build/lib/fake-element.js.map +1 -1
  53. package/build/lib/index.d.ts +2 -3
  54. package/build/lib/index.d.ts.map +1 -1
  55. package/build/lib/index.js +2 -6
  56. package/build/lib/index.js.map +1 -1
  57. package/build/lib/logger.d.ts +1 -2
  58. package/build/lib/logger.d.ts.map +1 -1
  59. package/build/lib/logger.js +2 -2
  60. package/build/lib/logger.js.map +1 -1
  61. package/build/lib/scripts/fake-error.d.ts.map +1 -1
  62. package/build/lib/scripts/fake-error.js.map +1 -1
  63. package/build/lib/scripts/fake-stdin.d.ts.map +1 -1
  64. package/build/lib/scripts/fake-stdin.js.map +1 -1
  65. package/build/lib/scripts/fake-success.d.ts.map +1 -1
  66. package/build/lib/scripts/fake-success.js +3 -6
  67. package/build/lib/scripts/fake-success.js.map +1 -1
  68. package/build/lib/server.d.ts +2 -1
  69. package/build/lib/server.d.ts.map +1 -1
  70. package/build/lib/server.js +3 -5
  71. package/build/lib/server.js.map +1 -1
  72. package/build/lib/types.d.ts +1 -1
  73. package/build/lib/types.d.ts.map +1 -1
  74. package/lib/commands/alert.ts +31 -61
  75. package/lib/commands/contexts.ts +50 -73
  76. package/lib/commands/element.ts +122 -135
  77. package/lib/commands/find.ts +100 -115
  78. package/lib/commands/general.ts +122 -127
  79. package/lib/desired-caps.ts +16 -0
  80. package/lib/doctor/common.ts +26 -0
  81. package/lib/doctor/fake1.ts +3 -0
  82. package/lib/doctor/fake2.ts +3 -0
  83. package/lib/driver.ts +321 -0
  84. package/lib/fake-app.ts +234 -0
  85. package/lib/fake-driver-schema.ts +43 -0
  86. package/lib/fake-element.ts +128 -0
  87. package/lib/{index.js → index.ts} +5 -9
  88. package/lib/logger.ts +3 -0
  89. package/lib/scripts/{fake-success.js → fake-success.ts} +1 -1
  90. package/lib/{server.js → server.ts} +3 -4
  91. package/lib/types.ts +1 -1
  92. package/package.json +10 -14
  93. package/tsconfig.json +2 -1
  94. package/build/lib/commands/index.d.ts +0 -14
  95. package/build/lib/commands/index.d.ts.map +0 -1
  96. package/build/lib/commands/index.js +0 -16
  97. package/build/lib/commands/index.js.map +0 -1
  98. package/build/lib/commands/mixin.d.ts +0 -11
  99. package/build/lib/commands/mixin.d.ts.map +0 -1
  100. package/build/lib/commands/mixin.js +0 -16
  101. package/build/lib/commands/mixin.js.map +0 -1
  102. package/lib/commands/index.ts +0 -14
  103. package/lib/commands/mixin.ts +0 -13
  104. package/lib/driver.js +0 -356
  105. package/lib/fake-app.js +0 -190
  106. package/lib/fake-driver-schema.js +0 -35
  107. package/lib/fake-element.js +0 -117
  108. package/lib/logger.js +0 -5
  109. package/test/fixtures/app.xml +0 -38
  110. /package/lib/scripts/{fake-error.js → fake-error.ts} +0 -0
  111. /package/lib/scripts/{fake-stdin.js → fake-stdin.ts} +0 -0
@@ -1,19 +1,16 @@
1
- import { Element } from '@appium/types';
2
- import { FakeElement } from '../fake-element';
3
- import { FakeDriver } from '../driver';
4
- interface FakeDriverFindMixin {
5
- getExistingElementForNode(node: FakeElement): string | null;
6
- wrapNewEl(obj: FakeElement): Element;
7
- findElOrEls(this: FakeDriver, strategy: string, selector: string, mult: true, context?: any): Promise<Element[]>;
8
- findElOrEls(this: FakeDriver, strategy: string, selector: string, mult: false, context?: any): Promise<Element>;
9
- findElement(strategy: string, selector: string): Promise<Element>;
10
- findElements(strategy: string, selector: string): Promise<Element[]>;
11
- findElementFromElement(elementId: string, strategy: string, selector: string): Promise<Element>;
12
- findElementsFromElement(elementId: string, strategy: string, selector: string): Promise<Element[]>;
13
- }
14
- declare module '../driver' {
15
- interface FakeDriver extends FakeDriverFindMixin {
16
- }
17
- }
1
+ import type { Element } from '@appium/types';
2
+ import { FakeElement, type XmlNodeLike } from '../fake-element';
3
+ import type { FakeDriver } from '../driver';
4
+ /** Find an existing element id in elMap for the same underlying node (reference equality). */
5
+ export declare function getExistingElementForNode(this: FakeDriver, node: FakeElement): string | null;
6
+ /** Accepts either a FakeElement (reuse existing id) or a raw XmlNodeLike from xpath. */
7
+ export declare function wrapNewEl(this: FakeDriver, obj: FakeElement | XmlNodeLike): Element;
8
+ declare function findElOrElsImpl<Ctx = unknown>(this: FakeDriver, strategy: string, selector: string, mult: true, context?: Ctx): Promise<Element[]>;
9
+ declare function findElOrElsImpl<Ctx = unknown>(this: FakeDriver, strategy: string, selector: string, mult: false, context?: Ctx): Promise<Element>;
10
+ export declare const findElOrEls: typeof findElOrElsImpl;
11
+ export declare function findElement(this: FakeDriver, strategy: string, selector: string): Promise<Element>;
12
+ export declare function findElements(this: FakeDriver, strategy: string, selector: string): Promise<Element[]>;
13
+ export declare function findElementFromElement(this: FakeDriver, strategy: string, selector: string, elementId: string): Promise<Element>;
14
+ export declare function findElementsFromElement(this: FakeDriver, strategy: string, selector: string, elementId: string): Promise<Element[]>;
18
15
  export {};
19
16
  //# sourceMappingURL=find.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../lib/commands/find.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,UAAU,EAAC,MAAM,WAAW,CAAC;AA+DrC,UAAU,mBAAmB;IAC3B,yBAAyB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC;IAC5D,SAAS,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC;IAErC,WAAW,CACT,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACtB,WAAW,CACT,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,KAAK,EACX,OAAO,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACrE,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChG,uBAAuB,CACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;CACvB;AAED,OAAO,QAAQ,WAAW,CAAC;IACzB,UAAU,UAAW,SAAQ,mBAAmB;KAAG;CACpD"}
1
+ {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../lib/commands/find.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAC,WAAW,EAAE,KAAK,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,WAAW,CAAC;AAK1C,8FAA8F;AAC9F,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,WAAW,GAChB,MAAM,GAAG,IAAI,CAOf;AAED,wFAAwF;AACxF,wBAAgB,SAAS,CACvB,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,WAAW,GAAG,WAAW,GAC7B,OAAO,CAuBT;AAED,iBAAe,eAAe,CAAC,GAAG,GAAG,OAAO,EAC1C,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AACtB,iBAAe,eAAe,CAAC,GAAG,GAAG,OAAO,EAC1C,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,KAAK,EACX,OAAO,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC,OAAO,CAAC,CAAC;AA2CpB,eAAO,MAAM,WAAW,wBAAkB,CAAC;AAE3C,wBAAsB,WAAW,CAC/B,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAElB;AAID,wBAAsB,YAAY,CAChC,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,EAAE,CAAC,CAEpB;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,EAAE,CAAC,CAGpB"}
@@ -3,13 +3,53 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.findElOrEls = void 0;
7
+ exports.getExistingElementForNode = getExistingElementForNode;
8
+ exports.wrapNewEl = wrapNewEl;
9
+ exports.findElement = findElement;
10
+ exports.findElements = findElements;
11
+ exports.findElementFromElement = findElementFromElement;
12
+ exports.findElementsFromElement = findElementsFromElement;
6
13
  const lodash_1 = __importDefault(require("lodash"));
7
14
  const driver_1 = require("appium/driver");
8
15
  const fake_element_1 = require("../fake-element");
9
16
  const support_1 = require("appium/support");
10
- const mixin_1 = require("./mixin");
11
17
  const { W3C_WEB_ELEMENT_IDENTIFIER } = support_1.util;
12
- async function findElOrEls(strategy, selector, mult, context) {
18
+ /** Find an existing element id in elMap for the same underlying node (reference equality). */
19
+ function getExistingElementForNode(node) {
20
+ for (const [id, el] of lodash_1.default.toPairs(this.elMap)) {
21
+ if (el.node === node.node) {
22
+ return id;
23
+ }
24
+ }
25
+ return null;
26
+ }
27
+ /** Accepts either a FakeElement (reuse existing id) or a raw XmlNodeLike from xpath. */
28
+ function wrapNewEl(obj) {
29
+ const node = lodash_1.default.has(obj, 'node') && obj.node
30
+ ? obj.node
31
+ : obj;
32
+ if (lodash_1.default.has(obj, 'node')) {
33
+ const existingElId = this.getExistingElementForNode(obj);
34
+ if (existingElId) {
35
+ return { ELEMENT: existingElId, [W3C_WEB_ELEMENT_IDENTIFIER]: existingElId };
36
+ }
37
+ }
38
+ else {
39
+ // raw node: reuse id if we already have an element for this node
40
+ for (const [id, el] of lodash_1.default.toPairs(this.elMap)) {
41
+ if (el.node === node) {
42
+ return { ELEMENT: id, [W3C_WEB_ELEMENT_IDENTIFIER]: id };
43
+ }
44
+ }
45
+ }
46
+ this.maxElId++;
47
+ const maxElId = this.maxElId.toString();
48
+ this.elMap[maxElId] = new fake_element_1.FakeElement(node, this.appModel);
49
+ return { ELEMENT: maxElId, [W3C_WEB_ELEMENT_IDENTIFIER]: maxElId };
50
+ }
51
+ async function findElOrElsImpl(strategy, selector, mult, context) {
52
+ // Map WebDriver locator strategy to FakeApp query method name.
13
53
  const qMap = {
14
54
  xpath: 'xpathQuery',
15
55
  id: 'idQuery',
@@ -18,77 +58,40 @@ async function findElOrEls(strategy, selector, mult, context) {
18
58
  'tag name': 'classQuery',
19
59
  'css selector': 'cssQuery',
20
60
  };
21
- // TODO this error checking should probably be part of MJSONWP?
22
61
  if (!lodash_1.default.includes(lodash_1.default.keys(qMap), strategy)) {
23
62
  throw new driver_1.errors.UnknownCommandError();
24
63
  }
25
64
  if (selector === 'badsel') {
26
65
  throw new driver_1.errors.InvalidSelectorError();
27
66
  }
28
- const els = this.appModel[qMap[strategy]](selector, context);
29
- let retval;
67
+ const methodName = qMap[strategy];
68
+ const raw = this.appModel[methodName].call(this.appModel, selector, context);
69
+ const els = lodash_1.default.isArray(raw) ? raw : raw ? [raw] : [];
30
70
  if (els.length) {
31
71
  if (mult) {
32
- const allEls = [];
33
- for (const el of els) {
34
- allEls.push(this.wrapNewEl(el));
35
- }
36
- retval = allEls;
72
+ return els.map((el) => this.wrapNewEl(el));
37
73
  }
38
- else {
39
- retval = this.wrapNewEl(els[0]);
40
- }
41
- }
42
- else if (mult) {
43
- retval = [];
74
+ return this.wrapNewEl(els[0]);
44
75
  }
45
- else {
46
- throw new driver_1.errors.NoSuchElementError();
76
+ if (mult) {
77
+ return [];
47
78
  }
48
- return retval;
79
+ throw new driver_1.errors.NoSuchElementError();
80
+ }
81
+ exports.findElOrEls = findElOrElsImpl;
82
+ async function findElement(strategy, selector) {
83
+ return this.findElOrEls(strategy, selector, false);
84
+ }
85
+ // Protocol passes (strategy, selector, elementId) for find-from-element routes.
86
+ async function findElements(strategy, selector) {
87
+ return this.findElOrEls(strategy, selector, true);
88
+ }
89
+ async function findElementFromElement(strategy, selector, elementId) {
90
+ const el = this.getElement(elementId);
91
+ return this.findElOrEls(strategy, selector, false, el.xmlFragment);
92
+ }
93
+ async function findElementsFromElement(strategy, selector, elementId) {
94
+ const el = this.getElement(elementId);
95
+ return this.findElOrEls(strategy, selector, true, el.xmlFragment);
49
96
  }
50
- const FindMixin = {
51
- getExistingElementForNode(node) {
52
- for (const [id, el] of lodash_1.default.toPairs(this.elMap)) {
53
- if (el.node === node) {
54
- return id;
55
- }
56
- }
57
- return null;
58
- },
59
- wrapNewEl(obj) {
60
- // first check and see if we already have a ref to this element
61
- const existingElId = this.getExistingElementForNode(obj);
62
- if (existingElId) {
63
- return { ELEMENT: existingElId, [W3C_WEB_ELEMENT_IDENTIFIER]: existingElId };
64
- }
65
- // otherwise add the element to the map
66
- this.maxElId++;
67
- const maxElId = this.maxElId.toString();
68
- this.elMap[maxElId] = new fake_element_1.FakeElement(obj, this.appModel);
69
- return { ELEMENT: maxElId, [W3C_WEB_ELEMENT_IDENTIFIER]: maxElId };
70
- },
71
- findElOrEls,
72
- /**
73
- * This should override whatever's in ExternalDriver
74
- * @param {string} strategy Strategy
75
- * @param {string} selector Selector
76
- * @this {FakeDriver}
77
- */
78
- async findElement(strategy, selector) {
79
- return this.findElOrEls(strategy, selector, false);
80
- },
81
- async findElements(strategy, selector) {
82
- return this.findElOrEls(strategy, selector, true);
83
- },
84
- async findElementFromElement(strategy, selector, elementId) {
85
- const el = this.getElement(elementId);
86
- return this.findElOrEls(strategy, selector, false, el.xmlFragment);
87
- },
88
- async findElementsFromElement(strategy, selector, elementId) {
89
- const el = this.getElement(elementId);
90
- return this.findElOrEls(strategy, selector, true, el.xmlFragment);
91
- },
92
- };
93
- (0, mixin_1.mixin)(FindMixin);
94
97
  //# sourceMappingURL=find.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"find.js","sourceRoot":"","sources":["../../../lib/commands/find.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"find.js","sourceRoot":"","sources":["../../../lib/commands/find.ts"],"names":[],"mappings":"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"}
@@ -1,29 +1,26 @@
1
- import { ActionSequence, Location, Rect, Size } from '@appium/types';
2
- import type { Orientation } from '../driver';
3
- interface FakeDriverGeneralMixin {
4
- title(): Promise<string>;
5
- keys(value: string | string[]): Promise<void>;
6
- setGeoLocation(location: Location): Promise<Location>;
7
- getGeoLocation(): Promise<Location>;
8
- getPageSource(): Promise<string>;
9
- getOrientation(): Promise<string>;
10
- setOrientation(orientation: Orientation): Promise<void>;
11
- getScreenshot(): Promise<string>;
12
- getWindowSize(): Promise<Size>;
13
- getWindowRect(): Promise<Rect>;
14
- performActions(actions: ActionSequence[]): Promise<void>;
15
- releaseActions(): Promise<void>;
16
- mobileShake(): Promise<void>;
17
- doubleClick(): Promise<void>;
18
- execute(script: string, args: any[]): Promise<any>;
19
- fakeAddition(a: number, b: number, c?: number): Promise<number>;
20
- getLog(type: string): Promise<any>;
21
- getUrl(): Promise<string>;
22
- bidiNavigate(context: string, url: string): Promise<void>;
23
- }
24
- declare module '../driver' {
25
- interface FakeDriver extends FakeDriverGeneralMixin {
26
- }
27
- }
28
- export {};
1
+ import type { ActionSequence, Location, Rect, Size, Orientation } from '@appium/types';
2
+ import type { FakeDriver } from '../driver';
3
+ /** Requires webview context (title comes from active document). */
4
+ export declare function title(this: FakeDriver): Promise<string>;
5
+ export declare function keys(this: FakeDriver, value: string | string[]): Promise<void>;
6
+ export declare function setGeoLocation(this: FakeDriver, location: Location): Promise<Location>;
7
+ export declare function getGeoLocation(this: FakeDriver): Promise<Location>;
8
+ export declare function getPageSource(this: FakeDriver): Promise<string>;
9
+ export declare function getOrientation(this: FakeDriver): Promise<string>;
10
+ export declare function setOrientation(this: FakeDriver, o: Orientation): Promise<void>;
11
+ export declare function getScreenshot(this: FakeDriver): Promise<string>;
12
+ export declare function getWindowSize(this: FakeDriver): Promise<Size>;
13
+ export declare function getWindowRect(this: FakeDriver): Promise<Rect>;
14
+ export declare function performActions(this: FakeDriver, actions: ActionSequence[]): Promise<void>;
15
+ export declare function releaseActions(this: FakeDriver): Promise<void>;
16
+ /** Supported log types: 'actions'. TODO: add more log types if needed for tests. */
17
+ export declare function getLog(this: FakeDriver, type: string): Promise<ActionSequence[][]>;
18
+ export declare function mobileShake(this: FakeDriver): Promise<void>;
19
+ export declare function doubleClick(this: FakeDriver): Promise<void>;
20
+ export declare function execute(this: FakeDriver, script: string, args: any[]): Promise<any>;
21
+ export declare function fakeAddition(this: FakeDriver, num1: number, num2: number, num3?: number): Promise<number>;
22
+ /** Get current URL. Returns empty string until bidiNavigate (or equivalent) sets one. @see https://w3c.github.io/webdriver/#get-current-url */
23
+ export declare function getUrl(this: FakeDriver): Promise<string>;
24
+ /** Set current URL (used by Bidi browsingContext.navigate). */
25
+ export declare function bidiNavigate(this: FakeDriver, context: string, url: string): Promise<void>;
29
26
  //# sourceMappingURL=general.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../lib/commands/general.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAC,MAAM,eAAe,CAAC;AAInE,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;AAI3C,UAAU,sBAAsB;IAC9B,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtD,cAAc,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpC,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACnD,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAE1B,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3D;AAED,OAAO,QAAQ,WAAW,CAAC;IACzB,UAAU,UAAW,SAAQ,sBAAsB;KAAG;CACvD"}
1
+ {"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../lib/commands/general.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAErF,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,WAAW,CAAC;AAI1C,mEAAmE;AACnE,wBAAsB,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAG7D;AAED,wBAAsB,IAAI,CACxB,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,QAAQ,CAAC,CAInB;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAExE;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAErE;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAEtE;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,UAAU,EAChB,CAAC,EAAE,WAAW,GACb,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAErE;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,cAAc,EAAE,GACxB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAG;AAExE,oFAAoF;AACpF,wBAAsB,MAAM,CAC1B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAO7B;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjE;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAG;AAErE,wBAAsB,OAAO,CAC3B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,EAAE,GACV,OAAO,CAAC,GAAG,CAAC,CAEd;AAED,wBAAsB,YAAY,CAChC,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,SAAI,GACP,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,+IAA+I;AAC/I,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAE9D;AAED,+DAA+D;AAC/D,wBAAsB,YAAY,CAChC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAEf"}
@@ -1,80 +1,95 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.title = title;
4
+ exports.keys = keys;
5
+ exports.setGeoLocation = setGeoLocation;
6
+ exports.getGeoLocation = getGeoLocation;
7
+ exports.getPageSource = getPageSource;
8
+ exports.getOrientation = getOrientation;
9
+ exports.setOrientation = setOrientation;
10
+ exports.getScreenshot = getScreenshot;
11
+ exports.getWindowSize = getWindowSize;
12
+ exports.getWindowRect = getWindowRect;
13
+ exports.performActions = performActions;
14
+ exports.releaseActions = releaseActions;
15
+ exports.getLog = getLog;
16
+ exports.mobileShake = mobileShake;
17
+ exports.doubleClick = doubleClick;
18
+ exports.execute = execute;
19
+ exports.fakeAddition = fakeAddition;
20
+ exports.getUrl = getUrl;
21
+ exports.bidiNavigate = bidiNavigate;
3
22
  const driver_1 = require("appium/driver");
4
- const mixin_1 = require("./mixin");
5
23
  const ORIENTATIONS = new Set(['LANDSCAPE', 'PORTRAIT']);
6
- const GeneralMixin = {
7
- async title() {
8
- this.assertWebviewContext();
9
- return this.appModel.title;
10
- },
11
- async keys(value) {
12
- if (!this.focusedElId) {
13
- throw new driver_1.errors.InvalidElementStateError();
14
- }
15
- await this.setValue(value, this.focusedElId);
16
- },
17
- async setGeoLocation(location) {
18
- // TODO test this adequately once WD bug is fixed
19
- this.appModel.lat = location.latitude;
20
- this.appModel.long = location.longitude;
21
- return location;
22
- },
23
- async getGeoLocation() {
24
- return this.appModel.currentGeoLocation;
25
- },
26
- async getPageSource() {
27
- return this.appModel.rawXml;
28
- },
29
- async getOrientation() {
30
- return this.appModel.orientation;
31
- },
32
- async setOrientation(o) {
33
- if (!ORIENTATIONS.has(o)) {
34
- throw new driver_1.errors.UnknownError('Orientation must be LANDSCAPE or PORTRAIT');
35
- }
36
- this.appModel.orientation = o;
37
- },
38
- async getScreenshot() {
39
- return this.appModel.getScreenshot();
40
- },
41
- async getWindowSize() {
42
- return { width: this.appModel.width, height: this.appModel.height };
43
- },
44
- async getWindowRect() {
45
- return { width: this.appModel.width, height: this.appModel.height, x: 0, y: 0 };
46
- },
47
- async performActions(actions) {
48
- this.appModel.actionLog.push(actions);
49
- },
50
- async releaseActions() { },
51
- async getLog(type) {
52
- switch (type) {
53
- case 'actions':
54
- return this.appModel.actionLog;
55
- default:
56
- throw new Error(`Don't understand log type '${type}'`);
57
- }
58
- },
59
- async mobileShake() {
60
- this.shook = true;
61
- },
62
- async doubleClick() { },
63
- async execute(script, args) {
64
- return await this.executeMethod(script, args);
65
- },
66
- /**
67
- * Add two or maybe even three numbers
68
- */
69
- async fakeAddition(num1, num2, num3 = 0) {
70
- return num1 + num2 + (num3 ?? 0);
71
- },
72
- async getUrl() {
73
- return this.url;
74
- },
75
- async bidiNavigate(context, url) {
76
- this.url = url;
77
- },
78
- };
79
- (0, mixin_1.mixin)(GeneralMixin);
24
+ /** Requires webview context (title comes from active document). */
25
+ async function title() {
26
+ this.assertWebviewContext();
27
+ return this.appModel.title;
28
+ }
29
+ async function keys(value) {
30
+ if (!this.focusedElId) {
31
+ throw new driver_1.errors.InvalidElementStateError();
32
+ }
33
+ await this.setValue(value, this.focusedElId);
34
+ }
35
+ async function setGeoLocation(location) {
36
+ this.appModel.lat = location.latitude;
37
+ this.appModel.long = location.longitude;
38
+ return location;
39
+ }
40
+ async function getGeoLocation() {
41
+ return this.appModel.currentGeoLocation;
42
+ }
43
+ async function getPageSource() {
44
+ return this.appModel.rawXml;
45
+ }
46
+ async function getOrientation() {
47
+ return this.appModel.orientation;
48
+ }
49
+ async function setOrientation(o) {
50
+ if (!ORIENTATIONS.has(o)) {
51
+ throw new driver_1.errors.UnknownError('Orientation must be LANDSCAPE or PORTRAIT');
52
+ }
53
+ this.appModel.orientation = o;
54
+ }
55
+ async function getScreenshot() {
56
+ return this.appModel.getScreenshot();
57
+ }
58
+ async function getWindowSize() {
59
+ return { width: this.appModel.width, height: this.appModel.height };
60
+ }
61
+ async function getWindowRect() {
62
+ return { width: this.appModel.width, height: this.appModel.height, x: 0, y: 0 };
63
+ }
64
+ async function performActions(actions) {
65
+ this.appModel.actionLog.push(actions);
66
+ }
67
+ async function releaseActions() { }
68
+ /** Supported log types: 'actions'. TODO: add more log types if needed for tests. */
69
+ async function getLog(type) {
70
+ switch (type) {
71
+ case 'actions':
72
+ return this.appModel.actionLog;
73
+ default:
74
+ throw new Error(`Don't understand log type '${type}'`);
75
+ }
76
+ }
77
+ async function mobileShake() {
78
+ this.shook = true;
79
+ }
80
+ async function doubleClick() { }
81
+ async function execute(script, args) {
82
+ return await this.executeMethod(script, args);
83
+ }
84
+ async function fakeAddition(num1, num2, num3 = 0) {
85
+ return num1 + num2 + (num3 ?? 0);
86
+ }
87
+ /** Get current URL. Returns empty string until bidiNavigate (or equivalent) sets one. @see https://w3c.github.io/webdriver/#get-current-url */
88
+ async function getUrl() {
89
+ return this.url ?? '';
90
+ }
91
+ /** Set current URL (used by Bidi browsingContext.navigate). */
92
+ async function bidiNavigate(context, url) {
93
+ this.url = url;
94
+ }
80
95
  //# sourceMappingURL=general.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"general.js","sourceRoot":"","sources":["../../../lib/commands/general.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"general.js","sourceRoot":"","sources":["../../../lib/commands/general.ts"],"names":[],"mappings":";;AAOA,sBAGC;AAED,oBAQC;AAED,wCAOC;AAED,wCAEC;AAED,sCAEC;AAED,wCAEC;AAED,wCAQC;AAED,sCAEC;AAED,sCAEC;AAED,sCAEC;AAED,wCAKC;AAED,wCAAwE;AAGxE,wBAUC;AAED,kCAEC;AAED,kCAAqE;AAErE,0BAMC;AAED,oCAOC;AAGD,wBAEC;AAGD,oCAMC;AAzHD,0CAAqC;AAGrC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAS,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;AAEhE,mEAAmE;AAC5D,KAAK,UAAU,KAAK;IACzB,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC7B,CAAC;AAEM,KAAK,UAAU,IAAI,CAExB,KAAwB;IAExB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,IAAI,eAAM,CAAC,wBAAwB,EAAE,CAAC;IAC9C,CAAC;IACD,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAC/C,CAAC;AAEM,KAAK,UAAU,cAAc,CAElC,QAAkB;IAElB,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACtC,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC;IACxC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAEM,KAAK,UAAU,cAAc;IAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC;AAC1C,CAAC;AAEM,KAAK,UAAU,aAAa;IACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC9B,CAAC;AAEM,KAAK,UAAU,cAAc;IAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;AACnC,CAAC;AAEM,KAAK,UAAU,cAAc,CAElC,CAAc;IAEd,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,eAAM,CAAC,YAAY,CAAC,2CAA2C,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC;AAChC,CAAC;AAEM,KAAK,UAAU,aAAa;IACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;AACvC,CAAC;AAEM,KAAK,UAAU,aAAa;IACjC,OAAO,EAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAC,CAAC;AACpE,CAAC;AAEM,KAAK,UAAU,aAAa;IACjC,OAAO,EAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC;AAChF,CAAC;AAEM,KAAK,UAAU,cAAc,CAElC,OAAyB;IAEzB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC;AAEM,KAAK,UAAU,cAAc,KAAmC,CAAC;AAExE,oFAAoF;AAC7E,KAAK,UAAU,MAAM,CAE1B,IAAY;IAEZ,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,SAAS;YACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QACjC;YACE,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,GAAG,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,WAAW;IAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACpB,CAAC;AAEM,KAAK,UAAU,WAAW,KAAmC,CAAC;AAE9D,KAAK,UAAU,OAAO,CAE3B,MAAc,EACd,IAAW;IAEX,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAChD,CAAC;AAEM,KAAK,UAAU,YAAY,CAEhC,IAAY,EACZ,IAAY,EACZ,IAAI,GAAG,CAAC;IAER,OAAO,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACnC,CAAC;AAED,+IAA+I;AACxI,KAAK,UAAU,MAAM;IAC1B,OAAO,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;AACxB,CAAC;AAED,+DAA+D;AACxD,KAAK,UAAU,YAAY,CAEhC,OAAe,EACf,GAAW;IAEX,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AACjB,CAAC"}
@@ -0,0 +1,14 @@
1
+ export declare const desiredCapConstraints: {
2
+ readonly app: {
3
+ readonly presence: true;
4
+ readonly isString: true;
5
+ };
6
+ readonly uniqueApp: {
7
+ readonly isBoolean: true;
8
+ };
9
+ readonly runClock: {
10
+ readonly isBoolean: true;
11
+ };
12
+ };
13
+ export type FakeDriverConstraints = typeof desiredCapConstraints;
14
+ //# sourceMappingURL=desired-caps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"desired-caps.d.ts","sourceRoot":"","sources":["../../lib/desired-caps.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB;;;;;;;;;;;CAWF,CAAC;AAEjC,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.desiredCapConstraints = void 0;
4
+ exports.desiredCapConstraints = {
5
+ app: {
6
+ presence: true,
7
+ isString: true,
8
+ },
9
+ uniqueApp: {
10
+ isBoolean: true,
11
+ },
12
+ runClock: {
13
+ isBoolean: true,
14
+ },
15
+ };
16
+ //# sourceMappingURL=desired-caps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"desired-caps.js","sourceRoot":"","sources":["../../lib/desired-caps.ts"],"names":[],"mappings":";;;AAEa,QAAA,qBAAqB,GAAG;IACnC,GAAG,EAAE;QACH,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;KACf;IACD,SAAS,EAAE;QACT,SAAS,EAAE,IAAI;KAChB;IACD,QAAQ,EAAE;QACR,SAAS,EAAE,IAAI;KAChB;CAC6B,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { IDoctorCheck, AppiumLogger, DoctorCheckResult } from '@appium/types';
2
+ export declare class EnvVarAndPathCheck implements IDoctorCheck {
3
+ private readonly varName;
4
+ log: AppiumLogger;
5
+ constructor(varName: string);
6
+ diagnose(): Promise<DoctorCheckResult>;
7
+ fix(): Promise<string>;
8
+ hasAutofix(): boolean;
9
+ isOptional(): boolean;
10
+ }
11
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../lib/doctor/common.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAEjF,qBAAa,kBAAmB,YAAW,YAAY;IAGzC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,GAAG,EAAG,YAAY,CAAC;gBAEU,OAAO,EAAE,MAAM;IAEtC,QAAQ,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAMtC,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5B,UAAU,IAAI,OAAO;IAIrB,UAAU,IAAI,OAAO;CAGtB"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EnvVarAndPathCheck = void 0;
4
+ const support_1 = require("appium/support");
5
+ class EnvVarAndPathCheck {
6
+ varName;
7
+ log;
8
+ constructor(varName) {
9
+ this.varName = varName;
10
+ }
11
+ async diagnose() {
12
+ return support_1.doctor.ok(`${this.varName} environment variable is always set because it's fake`);
13
+ }
14
+ async fix() {
15
+ return `Make sure the environment variable ${this.varName} is properly configured for the Appium server process`;
16
+ }
17
+ hasAutofix() {
18
+ return false;
19
+ }
20
+ isOptional() {
21
+ return false;
22
+ }
23
+ }
24
+ exports.EnvVarAndPathCheck = EnvVarAndPathCheck;
25
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../lib/doctor/common.ts"],"names":[],"mappings":";;;AAAA,4CAAsC;AAGtC,MAAa,kBAAkB;IAGA;IAF7B,GAAG,CAAgB;IAEnB,YAA6B,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;IAEhD,KAAK,CAAC,QAAQ;QACZ,OAAO,gBAAM,CAAC,EAAE,CACd,GAAG,IAAI,CAAC,OAAO,uDAAuD,CACvE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,GAAG;QACP,OAAO,sCAAsC,IAAI,CAAC,OAAO,uDAAuD,CAAC;IACnH,CAAC;IAED,UAAU;QACR,OAAO,KAAK,CAAC;IACf,CAAC;IAED,UAAU;QACR,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAtBD,gDAsBC"}
@@ -0,0 +1,3 @@
1
+ import { EnvVarAndPathCheck } from './common';
2
+ export declare const fakeCheck1: EnvVarAndPathCheck;
3
+ //# sourceMappingURL=fake1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fake1.d.ts","sourceRoot":"","sources":["../../../lib/doctor/fake1.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,UAAU,CAAC;AAE5C,eAAO,MAAM,UAAU,oBAAkC,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fakeCheck1 = void 0;
4
+ const common_1 = require("./common");
5
+ exports.fakeCheck1 = new common_1.EnvVarAndPathCheck('FAKE1');
6
+ //# sourceMappingURL=fake1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fake1.js","sourceRoot":"","sources":["../../../lib/doctor/fake1.ts"],"names":[],"mappings":";;;AAAA,qCAA4C;AAE/B,QAAA,UAAU,GAAG,IAAI,2BAAkB,CAAC,OAAO,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { EnvVarAndPathCheck } from './common';
2
+ export declare const fakeCheck2: EnvVarAndPathCheck;
3
+ //# sourceMappingURL=fake2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fake2.d.ts","sourceRoot":"","sources":["../../../lib/doctor/fake2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,UAAU,CAAC;AAE5C,eAAO,MAAM,UAAU,oBAAkC,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fakeCheck2 = void 0;
4
+ const common_1 = require("./common");
5
+ exports.fakeCheck2 = new common_1.EnvVarAndPathCheck('FAKE2');
6
+ //# sourceMappingURL=fake2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fake2.js","sourceRoot":"","sources":["../../../lib/doctor/fake2.ts"],"names":[],"mappings":";;;AAAA,qCAA4C;AAE/B,QAAA,UAAU,GAAG,IAAI,2BAAkB,CAAC,OAAO,CAAC,CAAC"}