@taqwright/taqwright 0.0.24
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.
- package/LICENSE +201 -0
- package/README.md +108 -0
- package/dist/auto-appium.d.ts +12 -0
- package/dist/auto-appium.js +77 -0
- package/dist/bin/branding.d.ts +6 -0
- package/dist/bin/branding.js +22 -0
- package/dist/bin/index.d.ts +2 -0
- package/dist/bin/index.js +321 -0
- package/dist/bin/init.d.ts +26 -0
- package/dist/bin/init.js +902 -0
- package/dist/bin/inspect.d.ts +9 -0
- package/dist/bin/inspect.js +91 -0
- package/dist/bin/report-branding.d.ts +2 -0
- package/dist/bin/report-branding.js +42 -0
- package/dist/branding-assets.d.ts +1 -0
- package/dist/branding-assets.js +1 -0
- package/dist/capabilities-helpers.d.ts +7 -0
- package/dist/capabilities-helpers.js +14 -0
- package/dist/capabilities.d.ts +6 -0
- package/dist/capabilities.js +86 -0
- package/dist/config.d.ts +17 -0
- package/dist/config.js +235 -0
- package/dist/discovery-setup.d.ts +1 -0
- package/dist/discovery-setup.js +61 -0
- package/dist/discovery.d.ts +17 -0
- package/dist/discovery.js +55 -0
- package/dist/docs/configuration.html +376 -0
- package/dist/docs/custom-reporters.html +265 -0
- package/dist/docs/docker.html +339 -0
- package/dist/docs/docs.js +173 -0
- package/dist/docs/generating-tests.html +161 -0
- package/dist/docs/images/taqwright-html-report.png +0 -0
- package/dist/docs/index.html +13 -0
- package/dist/docs/installation.html +686 -0
- package/dist/docs/parallel.html +271 -0
- package/dist/docs/running-tests.html +385 -0
- package/dist/docs/styles.css +460 -0
- package/dist/docs/writing-tests.html +565 -0
- package/dist/doctor.d.ts +33 -0
- package/dist/doctor.js +508 -0
- package/dist/expect.d.ts +38 -0
- package/dist/expect.js +96 -0
- package/dist/fixture/artifact-mode.d.ts +2 -0
- package/dist/fixture/artifact-mode.js +7 -0
- package/dist/fixture/index.d.ts +15 -0
- package/dist/fixture/index.js +324 -0
- package/dist/images/taqwright-html-report.png +0 -0
- package/dist/images/taqwright_favicon.png +0 -0
- package/dist/images/taqwright_logo.png +0 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +7 -0
- package/dist/inspector/codegen-appium.d.ts +3 -0
- package/dist/inspector/codegen-appium.js +228 -0
- package/dist/inspector/devices.d.ts +41 -0
- package/dist/inspector/devices.js +422 -0
- package/dist/inspector/locator-suggester.d.ts +23 -0
- package/dist/inspector/locator-suggester.js +539 -0
- package/dist/inspector/recorder.d.ts +128 -0
- package/dist/inspector/recorder.js +162 -0
- package/dist/inspector/server.d.ts +39 -0
- package/dist/inspector/server.js +1210 -0
- package/dist/inspector/session.d.ts +84 -0
- package/dist/inspector/session.js +262 -0
- package/dist/inspector/ui.d.ts +1 -0
- package/dist/inspector/ui.js +5508 -0
- package/dist/keys.d.ts +3 -0
- package/dist/keys.js +28 -0
- package/dist/locator/index.d.ts +206 -0
- package/dist/locator/index.js +1506 -0
- package/dist/logger.d.ts +5 -0
- package/dist/logger.js +5 -0
- package/dist/mobile/index.d.ts +130 -0
- package/dist/mobile/index.js +762 -0
- package/dist/network/android.d.ts +5 -0
- package/dist/network/android.js +87 -0
- package/dist/network/ca.d.ts +10 -0
- package/dist/network/ca.js +136 -0
- package/dist/network/har.d.ts +90 -0
- package/dist/network/har.js +101 -0
- package/dist/network/host-proxy.d.ts +16 -0
- package/dist/network/host-proxy.js +134 -0
- package/dist/network/index.d.ts +26 -0
- package/dist/network/index.js +105 -0
- package/dist/network/ios-sim.d.ts +3 -0
- package/dist/network/ios-sim.js +29 -0
- package/dist/network/proxy.d.ts +13 -0
- package/dist/network/proxy.js +310 -0
- package/dist/providers/appium.d.ts +23 -0
- package/dist/providers/appium.js +288 -0
- package/dist/providers/browserstack/index.d.ts +5 -0
- package/dist/providers/browserstack/index.js +77 -0
- package/dist/providers/browserstack/utils.d.ts +1 -0
- package/dist/providers/browserstack/utils.js +6 -0
- package/dist/providers/cloud.d.ts +53 -0
- package/dist/providers/cloud.js +117 -0
- package/dist/providers/emulator/index.d.ts +8 -0
- package/dist/providers/emulator/index.js +47 -0
- package/dist/providers/index.d.ts +10 -0
- package/dist/providers/index.js +33 -0
- package/dist/providers/lambdatest/index.d.ts +28 -0
- package/dist/providers/lambdatest/index.js +99 -0
- package/dist/providers/lambdatest/utils.d.ts +1 -0
- package/dist/providers/lambdatest/utils.js +6 -0
- package/dist/providers/local/index.d.ts +9 -0
- package/dist/providers/local/index.js +53 -0
- package/dist/providers/local-session.d.ts +16 -0
- package/dist/providers/local-session.js +55 -0
- package/dist/setup/archive.d.ts +2 -0
- package/dist/setup/archive.js +43 -0
- package/dist/setup/avd.d.ts +12 -0
- package/dist/setup/avd.js +103 -0
- package/dist/setup/index.d.ts +6 -0
- package/dist/setup/index.js +55 -0
- package/dist/setup/install-android.d.ts +2 -0
- package/dist/setup/install-android.js +70 -0
- package/dist/setup/install-appium.d.ts +1 -0
- package/dist/setup/install-appium.js +64 -0
- package/dist/setup/install-jdk.d.ts +1 -0
- package/dist/setup/install-jdk.js +58 -0
- package/dist/setup/paths.d.ts +16 -0
- package/dist/setup/paths.js +88 -0
- package/dist/setup/spawn-tool.d.ts +3 -0
- package/dist/setup/spawn-tool.js +11 -0
- package/dist/tracer/index.d.ts +34 -0
- package/dist/tracer/index.js +687 -0
- package/dist/tracer/proxy.d.ts +3 -0
- package/dist/tracer/proxy.js +60 -0
- package/dist/types/index.d.ts +189 -0
- package/dist/types/index.js +6 -0
- package/dist/utils.d.ts +2 -0
- package/dist/utils.js +37 -0
- package/package.json +79 -0
package/dist/keys.d.ts
ADDED
package/dist/keys.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export const KEY_TO_UNICODE = {
|
|
2
|
+
Enter: '\n',
|
|
3
|
+
Tab: '\t',
|
|
4
|
+
Backspace: '\b',
|
|
5
|
+
Space: ' ',
|
|
6
|
+
};
|
|
7
|
+
export const ANDROID_NAMED_KEYS = {
|
|
8
|
+
ArrowUp: 19,
|
|
9
|
+
ArrowDown: 20,
|
|
10
|
+
ArrowLeft: 21,
|
|
11
|
+
ArrowRight: 22,
|
|
12
|
+
Delete: 112,
|
|
13
|
+
Escape: 111,
|
|
14
|
+
Home: 122,
|
|
15
|
+
End: 123,
|
|
16
|
+
PageUp: 92,
|
|
17
|
+
PageDown: 93,
|
|
18
|
+
};
|
|
19
|
+
export const IOS_NAMED_KEYS = {
|
|
20
|
+
Enter: 'enter',
|
|
21
|
+
Tab: 'tab',
|
|
22
|
+
Backspace: 'delete',
|
|
23
|
+
ArrowUp: 'up',
|
|
24
|
+
ArrowDown: 'down',
|
|
25
|
+
ArrowLeft: 'left',
|
|
26
|
+
ArrowRight: 'right',
|
|
27
|
+
Escape: 'escape',
|
|
28
|
+
};
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import type { Client as WebDriverClient } from 'webdriver';
|
|
2
|
+
import { type BoundingBox, type LocatorDescriptor, type LocatorStrategy, Platform, type ScrollDirection } from '../types/index.js';
|
|
3
|
+
declare const DEFAULT_TIMEOUT = 30000;
|
|
4
|
+
export interface ActionOptions {
|
|
5
|
+
timeout?: number;
|
|
6
|
+
}
|
|
7
|
+
export interface WaitForOptions extends ActionOptions {
|
|
8
|
+
state?: 'visible' | 'hidden' | 'attached' | 'enabled' | 'disabled';
|
|
9
|
+
}
|
|
10
|
+
export interface LongPressOptions extends ActionOptions {
|
|
11
|
+
duration?: number;
|
|
12
|
+
}
|
|
13
|
+
export interface DragOptions extends ActionOptions {
|
|
14
|
+
duration?: number;
|
|
15
|
+
moveDuration?: number;
|
|
16
|
+
speed?: number;
|
|
17
|
+
from?: {
|
|
18
|
+
x?: number;
|
|
19
|
+
y?: number;
|
|
20
|
+
};
|
|
21
|
+
to?: {
|
|
22
|
+
x?: number;
|
|
23
|
+
y?: number;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export interface ElementSwipeOptions {
|
|
27
|
+
duration?: number;
|
|
28
|
+
distance?: number;
|
|
29
|
+
from?: {
|
|
30
|
+
x?: number;
|
|
31
|
+
y?: number;
|
|
32
|
+
};
|
|
33
|
+
to?: {
|
|
34
|
+
x?: number;
|
|
35
|
+
y?: number;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
export interface ScrollIntoViewOptions {
|
|
39
|
+
direction?: ScrollDirection;
|
|
40
|
+
maxAttempts?: number;
|
|
41
|
+
visibleTimeout?: number;
|
|
42
|
+
duration?: number;
|
|
43
|
+
distance?: number;
|
|
44
|
+
from?: {
|
|
45
|
+
x?: number;
|
|
46
|
+
y?: number;
|
|
47
|
+
};
|
|
48
|
+
to?: {
|
|
49
|
+
x?: number;
|
|
50
|
+
y?: number;
|
|
51
|
+
};
|
|
52
|
+
forceGesture?: boolean;
|
|
53
|
+
bottomMargin?: number;
|
|
54
|
+
}
|
|
55
|
+
export interface LocatorContext {
|
|
56
|
+
driver: WebDriverClient;
|
|
57
|
+
platform: Platform;
|
|
58
|
+
defaultTimeout: number;
|
|
59
|
+
}
|
|
60
|
+
export interface SelectOptionInput {
|
|
61
|
+
label?: string;
|
|
62
|
+
index?: number;
|
|
63
|
+
date?: string;
|
|
64
|
+
time?: string;
|
|
65
|
+
}
|
|
66
|
+
export interface PressSequentiallyOptions extends ActionOptions {
|
|
67
|
+
delay?: number;
|
|
68
|
+
}
|
|
69
|
+
export interface LocatorFilterOptions {
|
|
70
|
+
has?: Locator;
|
|
71
|
+
hasNot?: Locator;
|
|
72
|
+
hasText?: string | RegExp;
|
|
73
|
+
hasNotText?: string | RegExp;
|
|
74
|
+
visible?: boolean;
|
|
75
|
+
}
|
|
76
|
+
interface IndexSelector {
|
|
77
|
+
kind: 'first' | 'last' | 'nth';
|
|
78
|
+
n?: number;
|
|
79
|
+
}
|
|
80
|
+
type ChainOp = {
|
|
81
|
+
kind: 'filter';
|
|
82
|
+
filter: LocatorFilterOptions;
|
|
83
|
+
} | {
|
|
84
|
+
kind: 'and';
|
|
85
|
+
other: Locator;
|
|
86
|
+
} | {
|
|
87
|
+
kind: 'or';
|
|
88
|
+
other: Locator;
|
|
89
|
+
};
|
|
90
|
+
interface LocatorChainState {
|
|
91
|
+
parent?: Locator;
|
|
92
|
+
chainOps: ChainOp[];
|
|
93
|
+
indexSelector?: IndexSelector;
|
|
94
|
+
}
|
|
95
|
+
export declare class Locator {
|
|
96
|
+
private readonly ctx;
|
|
97
|
+
private readonly strategy;
|
|
98
|
+
private readonly state;
|
|
99
|
+
private readonly pinnedIds?;
|
|
100
|
+
constructor(ctx: LocatorContext, strategy: LocatorStrategy, state?: LocatorChainState, pinnedIds?: readonly string[]);
|
|
101
|
+
static fromStrategy(ctx: LocatorContext, strategy: LocatorStrategy): Locator;
|
|
102
|
+
private static pinnedToIds;
|
|
103
|
+
private derive;
|
|
104
|
+
private rebaseRoot;
|
|
105
|
+
click(opts?: ActionOptions): Promise<void>;
|
|
106
|
+
tap(opts?: ActionOptions): Promise<void>;
|
|
107
|
+
clickWithCoordFallback(opts?: ActionOptions): Promise<void>;
|
|
108
|
+
doubleClick(opts?: ActionOptions): Promise<void>;
|
|
109
|
+
doubleTap(opts?: ActionOptions): Promise<void>;
|
|
110
|
+
longPress(opts?: LongPressOptions): Promise<void>;
|
|
111
|
+
clear(opts?: ActionOptions): Promise<void>;
|
|
112
|
+
fill(value: string, opts?: ActionOptions): Promise<void>;
|
|
113
|
+
private typeInto;
|
|
114
|
+
private findEditableNode;
|
|
115
|
+
private findEditableDescendant;
|
|
116
|
+
private isEditableElement;
|
|
117
|
+
sendKeyStrokes(value: string, opts?: ActionOptions): Promise<void>;
|
|
118
|
+
focus(opts?: ActionOptions): Promise<void>;
|
|
119
|
+
blur(_opts?: ActionOptions): Promise<void>;
|
|
120
|
+
isChecked(opts?: ActionOptions): Promise<boolean>;
|
|
121
|
+
check(opts?: ActionOptions): Promise<void>;
|
|
122
|
+
uncheck(opts?: ActionOptions): Promise<void>;
|
|
123
|
+
private readChecked;
|
|
124
|
+
private waitForChecked;
|
|
125
|
+
press(key: string, opts?: ActionOptions): Promise<void>;
|
|
126
|
+
pressSequentially(text: string, opts?: PressSequentiallyOptions): Promise<void>;
|
|
127
|
+
selectOption(value: string | SelectOptionInput, opts?: ActionOptions): Promise<void>;
|
|
128
|
+
private detectPickerType;
|
|
129
|
+
private selectPickerWheel;
|
|
130
|
+
private selectIosDatePicker;
|
|
131
|
+
private selectAndroidSpinner;
|
|
132
|
+
private selectAndroidDatePicker;
|
|
133
|
+
private selectAndroidTimePicker;
|
|
134
|
+
private selectMenuOption;
|
|
135
|
+
screenshot(opts?: ActionOptions): Promise<Buffer>;
|
|
136
|
+
scrollIntoView(opts?: ScrollIntoViewOptions): Promise<void>;
|
|
137
|
+
private nudgeAboveBottom;
|
|
138
|
+
private scrollUntilVisible;
|
|
139
|
+
swipeLeft(opts?: ElementSwipeOptions): Promise<void>;
|
|
140
|
+
swipeRight(opts?: ElementSwipeOptions): Promise<void>;
|
|
141
|
+
swipeUp(opts?: ElementSwipeOptions): Promise<void>;
|
|
142
|
+
swipeDown(opts?: ElementSwipeOptions): Promise<void>;
|
|
143
|
+
pinchIn(opts?: ActionOptions): Promise<void>;
|
|
144
|
+
pinchOut(opts?: ActionOptions): Promise<void>;
|
|
145
|
+
private iosTwoFingerPinch;
|
|
146
|
+
dragTo(target: Locator, opts?: DragOptions): Promise<void>;
|
|
147
|
+
dragToPoint(point: {
|
|
148
|
+
x: number;
|
|
149
|
+
y: number;
|
|
150
|
+
}, opts?: DragOptions): Promise<void>;
|
|
151
|
+
isVisible(opts?: ActionOptions): Promise<boolean>;
|
|
152
|
+
isEnabled(opts?: ActionOptions): Promise<boolean>;
|
|
153
|
+
getText(opts?: ActionOptions): Promise<string>;
|
|
154
|
+
getValue(opts?: ActionOptions): Promise<string>;
|
|
155
|
+
boundingBox(opts?: ActionOptions): Promise<BoundingBox>;
|
|
156
|
+
getAttribute(name: string, opts?: ActionOptions): Promise<string | null>;
|
|
157
|
+
isFocused(opts?: ActionOptions): Promise<boolean>;
|
|
158
|
+
isEditable(opts?: ActionOptions): Promise<boolean>;
|
|
159
|
+
isInViewport(opts?: ActionOptions): Promise<boolean>;
|
|
160
|
+
isEmpty(opts?: ActionOptions): Promise<boolean>;
|
|
161
|
+
assertVisible(opts?: ActionOptions): Promise<void>;
|
|
162
|
+
assertHidden(opts?: ActionOptions): Promise<void>;
|
|
163
|
+
assertEnabled(opts?: ActionOptions): Promise<void>;
|
|
164
|
+
assertDisabled(opts?: ActionOptions): Promise<void>;
|
|
165
|
+
assertChecked(opts?: ActionOptions): Promise<void>;
|
|
166
|
+
assertUnchecked(opts?: ActionOptions): Promise<void>;
|
|
167
|
+
assertAttached(opts?: ActionOptions): Promise<void>;
|
|
168
|
+
assertEditable(opts?: ActionOptions): Promise<void>;
|
|
169
|
+
assertReadonly(opts?: ActionOptions): Promise<void>;
|
|
170
|
+
assertFocused(opts?: ActionOptions): Promise<void>;
|
|
171
|
+
assertEmpty(opts?: ActionOptions): Promise<void>;
|
|
172
|
+
assertInViewport(opts?: ActionOptions): Promise<void>;
|
|
173
|
+
assertCount(expected: number, opts?: ActionOptions): Promise<void>;
|
|
174
|
+
assertAttribute(name: string, expected: string | RegExp, opts?: ActionOptions): Promise<void>;
|
|
175
|
+
private pollBooleanQuery;
|
|
176
|
+
assertText(expected: string | RegExp, opts?: ActionOptions): Promise<void>;
|
|
177
|
+
assertContainsText(expected: string, opts?: ActionOptions): Promise<void>;
|
|
178
|
+
assertValue(expected: string | RegExp, opts?: ActionOptions): Promise<void>;
|
|
179
|
+
private assertGetter;
|
|
180
|
+
waitFor(opts?: WaitForOptions): Promise<void>;
|
|
181
|
+
filter(opts: LocatorFilterOptions): Locator;
|
|
182
|
+
first(): Locator;
|
|
183
|
+
last(): Locator;
|
|
184
|
+
nth(n: number): Locator;
|
|
185
|
+
locator(child: Locator | LocatorStrategy): Locator;
|
|
186
|
+
and(other: Locator): Locator;
|
|
187
|
+
or(other: Locator): Locator;
|
|
188
|
+
count(): Promise<number>;
|
|
189
|
+
all(): Promise<Locator[]>;
|
|
190
|
+
allInnerTexts(): Promise<string[]>;
|
|
191
|
+
allTextContents(): Promise<string[]>;
|
|
192
|
+
private readElementText;
|
|
193
|
+
private matchesState;
|
|
194
|
+
private resolveAll;
|
|
195
|
+
private resolveOnce;
|
|
196
|
+
private elementMatchesText;
|
|
197
|
+
private filterIdsByText;
|
|
198
|
+
private applyFilterOp;
|
|
199
|
+
private existsUnder;
|
|
200
|
+
private resolveVisible;
|
|
201
|
+
private resolveActionable;
|
|
202
|
+
private swipeElement;
|
|
203
|
+
private executeDrag;
|
|
204
|
+
}
|
|
205
|
+
export { DEFAULT_TIMEOUT as DEFAULT_LOCATOR_TIMEOUT };
|
|
206
|
+
export declare function buildLocatorFromDescriptor(ctx: LocatorContext, desc: LocatorDescriptor): Locator;
|