@wdio/browserstack-service 7.32.4 → 7.34.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.
- package/build/accessibility-handler.d.ts +39 -0
- package/build/accessibility-handler.d.ts.map +1 -0
- package/build/accessibility-handler.js +258 -0
- package/build/cleanup.d.ts +5 -0
- package/build/cleanup.d.ts.map +1 -0
- package/build/cleanup.js +23 -0
- package/build/constants.d.ts +3 -0
- package/build/constants.d.ts.map +1 -1
- package/build/constants.js +6 -2
- package/build/cucumber-types.d.ts +17 -0
- package/build/cucumber-types.d.ts.map +1 -1
- package/build/index.d.ts +5 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +5 -1
- package/build/insights-handler.d.ts +19 -3
- package/build/insights-handler.d.ts.map +1 -1
- package/build/insights-handler.js +275 -17
- package/build/launcher.d.ts +6 -0
- package/build/launcher.d.ts.map +1 -1
- package/build/launcher.js +164 -0
- package/build/log4jsAppender.d.ts +2 -0
- package/build/log4jsAppender.d.ts.map +1 -0
- package/build/log4jsAppender.js +26 -0
- package/build/logPatcher.d.ts +13 -0
- package/build/logPatcher.d.ts.map +1 -0
- package/build/logPatcher.js +43 -0
- package/build/logReportingAPI.d.ts +12 -0
- package/build/logReportingAPI.d.ts.map +1 -0
- package/build/logReportingAPI.js +61 -0
- package/build/reporter.d.ts +6 -1
- package/build/reporter.d.ts.map +1 -1
- package/build/reporter.js +42 -1
- package/build/request-handler.d.ts +1 -0
- package/build/request-handler.d.ts.map +1 -1
- package/build/request-handler.js +5 -0
- package/build/scripts/test-event-scripts.d.ts +10 -0
- package/build/scripts/test-event-scripts.d.ts.map +1 -0
- package/build/scripts/test-event-scripts.js +73 -0
- package/build/service.d.ts +6 -3
- package/build/service.d.ts.map +1 -1
- package/build/service.js +50 -7
- package/build/types.d.ts +43 -1
- package/build/types.d.ts.map +1 -1
- package/build/util.d.ts +48 -1
- package/build/util.d.ts.map +1 -1
- package/build/util.js +448 -11
- package/package.json +6 -5
package/build/service.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Services, Capabilities, Options, Frameworks } from '@wdio/types';
|
|
2
2
|
import type { Browser, MultiRemoteBrowser } from 'webdriverio';
|
|
3
3
|
import type { BrowserstackConfig, MultiRemoteAction } from './types';
|
|
4
|
-
import type { Pickle, Feature, ITestCaseHookParameter } from './cucumber-types';
|
|
4
|
+
import type { Pickle, Feature, ITestCaseHookParameter, CucumberHook } from './cucumber-types';
|
|
5
5
|
export default class BrowserstackService implements Services.ServiceInstance {
|
|
6
6
|
private _caps;
|
|
7
7
|
private _config;
|
|
@@ -17,6 +17,9 @@ export default class BrowserstackService implements Services.ServiceInstance {
|
|
|
17
17
|
private _observability;
|
|
18
18
|
private _currentTest?;
|
|
19
19
|
private _insightsHandler?;
|
|
20
|
+
private _accessibility;
|
|
21
|
+
private _accessibilityHandler?;
|
|
22
|
+
private _turboScale;
|
|
20
23
|
constructor(options: BrowserstackConfig & Options.Testrunner, _caps: Capabilities.RemoteCapability, _config: Options.Testrunner);
|
|
21
24
|
_updateCaps(fn: (caps: Capabilities.Capabilities | Capabilities.DesiredCapabilities) => void): void;
|
|
22
25
|
beforeSession(config: Omit<Options.Testrunner, 'capabilities'>): void;
|
|
@@ -29,8 +32,8 @@ export default class BrowserstackService implements Services.ServiceInstance {
|
|
|
29
32
|
* and `suite.fullTitle` is `undefined`, so no alternative to use for the job name.
|
|
30
33
|
*/
|
|
31
34
|
beforeSuite(suite: Frameworks.Suite): Promise<void>;
|
|
32
|
-
beforeHook(test: Frameworks.Test, context: any): Promise<void>;
|
|
33
|
-
afterHook(test: Frameworks.Test, context: unknown, result: Frameworks.TestResult): Promise<void>;
|
|
35
|
+
beforeHook(test: Frameworks.Test | CucumberHook, context: any): Promise<void>;
|
|
36
|
+
afterHook(test: Frameworks.Test | CucumberHook, context: unknown, result: Frameworks.TestResult): Promise<void>;
|
|
34
37
|
beforeTest(test: Frameworks.Test): Promise<void>;
|
|
35
38
|
afterTest(test: Frameworks.Test, context: never, results: Frameworks.TestResult): Promise<void>;
|
|
36
39
|
after(result: number): Promise<void>;
|
package/build/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC9E,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAE9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
package/build/service.js
CHANGED
|
@@ -11,6 +11,7 @@ const insights_handler_1 = __importDefault(require("./insights-handler"));
|
|
|
11
11
|
const util_1 = require("./util");
|
|
12
12
|
const reporter_1 = __importDefault(require("./reporter"));
|
|
13
13
|
const performance_tester_1 = __importDefault(require("./performance-tester"));
|
|
14
|
+
const accessibility_handler_1 = __importDefault(require("./accessibility-handler"));
|
|
14
15
|
const log = (0, logger_1.default)('@wdio/browserstack-service');
|
|
15
16
|
class BrowserstackService {
|
|
16
17
|
constructor(options, _caps, _config) {
|
|
@@ -26,12 +27,17 @@ class BrowserstackService {
|
|
|
26
27
|
// added to maintain backward compatibility with webdriverIO v5
|
|
27
28
|
this._config || (this._config = this._options);
|
|
28
29
|
this._observability = this._options.testObservability;
|
|
30
|
+
this._accessibility = this._options.accessibility;
|
|
31
|
+
this._turboScale = this._options.turboScale;
|
|
29
32
|
if (this._observability) {
|
|
30
33
|
(_a = this._config.reporters) === null || _a === void 0 ? void 0 : _a.push(reporter_1.default);
|
|
31
34
|
if (process.env.BROWSERSTACK_O11Y_PERF_MEASUREMENT) {
|
|
32
35
|
performance_tester_1.default.startMonitoring('performance-report-service.csv');
|
|
33
36
|
}
|
|
34
37
|
}
|
|
38
|
+
if (process.env.BROWSERSTACK_TURBOSCALE) {
|
|
39
|
+
this._turboScale = process.env.BROWSERSTACK_TURBOSCALE === 'true';
|
|
40
|
+
}
|
|
35
41
|
// Cucumber specific
|
|
36
42
|
const strict = Boolean(this._config.cucumberOpts && this._config.cucumberOpts.strict);
|
|
37
43
|
// See https://github.com/cucumber/cucumber-js/blob/master/src/runtime/index.ts#L136
|
|
@@ -67,9 +73,13 @@ class BrowserstackService {
|
|
|
67
73
|
if (this._isAppAutomate()) {
|
|
68
74
|
this._sessionBaseUrl = 'https://api-cloud.browserstack.com/app-automate/sessions';
|
|
69
75
|
}
|
|
76
|
+
if (this._turboScale) {
|
|
77
|
+
this._sessionBaseUrl = 'https://api.browserstack.com/automate-turboscale/v1/sessions';
|
|
78
|
+
}
|
|
70
79
|
this._scenariosThatRan = [];
|
|
71
80
|
if (this._observability && this._browser) {
|
|
72
81
|
try {
|
|
82
|
+
(0, util_1.patchConsoleLogs)();
|
|
73
83
|
this._insightsHandler = new insights_handler_1.default(this._browser, this._browser.capabilities, this._isAppAutomate(), this._browser.sessionId, this._config.framework);
|
|
74
84
|
await this._insightsHandler.before();
|
|
75
85
|
/**
|
|
@@ -92,6 +102,15 @@ class BrowserstackService {
|
|
|
92
102
|
crash_reporter_1.default.uploadCrashReport(`Error in service class before function: ${err}`, err && err.stack);
|
|
93
103
|
}
|
|
94
104
|
}
|
|
105
|
+
if (this._browser && (0, util_1.isBrowserstackSession)(this._browser)) {
|
|
106
|
+
try {
|
|
107
|
+
this._accessibilityHandler = new accessibility_handler_1.default(this._browser, this._caps, this._isAppAutomate(), this._config.framework, this._accessibility, this._options.accessibilityOptions);
|
|
108
|
+
await this._accessibilityHandler.before();
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
log.error(`[Accessibility Test Run] Error in service class before function: ${err}`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
95
114
|
return await this._printSessionURL();
|
|
96
115
|
}
|
|
97
116
|
/**
|
|
@@ -102,7 +121,9 @@ class BrowserstackService {
|
|
|
102
121
|
* and `suite.fullTitle` is `undefined`, so no alternative to use for the job name.
|
|
103
122
|
*/
|
|
104
123
|
async beforeSuite(suite) {
|
|
124
|
+
var _a;
|
|
105
125
|
this._suiteTitle = suite.title;
|
|
126
|
+
(_a = this._accessibilityHandler) === null || _a === void 0 ? void 0 : _a.setSuiteFile(suite.file);
|
|
106
127
|
if (suite.title && suite.title !== 'Jasmine__TopLevel__Suite') {
|
|
107
128
|
await this._setSessionName(suite.title);
|
|
108
129
|
}
|
|
@@ -118,7 +139,7 @@ class BrowserstackService {
|
|
|
118
139
|
await ((_a = this._insightsHandler) === null || _a === void 0 ? void 0 : _a.afterHook(test, result));
|
|
119
140
|
}
|
|
120
141
|
async beforeTest(test) {
|
|
121
|
-
var _a, _b;
|
|
142
|
+
var _a, _b, _c;
|
|
122
143
|
this._currentTest = test;
|
|
123
144
|
let suiteTitle = this._suiteTitle;
|
|
124
145
|
if (test.fullName) {
|
|
@@ -135,15 +156,17 @@ class BrowserstackService {
|
|
|
135
156
|
await this._setSessionName(suiteTitle, test);
|
|
136
157
|
await this._setAnnotation(`Test: ${(_a = test.fullName) !== null && _a !== void 0 ? _a : test.title}`);
|
|
137
158
|
await ((_b = this._insightsHandler) === null || _b === void 0 ? void 0 : _b.beforeTest(test));
|
|
159
|
+
await ((_c = this._accessibilityHandler) === null || _c === void 0 ? void 0 : _c.beforeTest(suiteTitle, test));
|
|
138
160
|
}
|
|
139
161
|
async afterTest(test, context, results) {
|
|
140
|
-
var _a;
|
|
162
|
+
var _a, _b;
|
|
141
163
|
this._specsRan = true;
|
|
142
164
|
const { error, passed } = results;
|
|
143
165
|
if (!passed) {
|
|
144
166
|
this._failReasons.push((error && error.message) || 'Unknown Error');
|
|
145
167
|
}
|
|
146
168
|
await ((_a = this._insightsHandler) === null || _a === void 0 ? void 0 : _a.afterTest(test, results));
|
|
169
|
+
await ((_b = this._accessibilityHandler) === null || _b === void 0 ? void 0 : _b.afterTest(this._suiteTitle, test));
|
|
147
170
|
}
|
|
148
171
|
async after(result) {
|
|
149
172
|
var _a, _b;
|
|
@@ -177,23 +200,26 @@ class BrowserstackService {
|
|
|
177
200
|
* For CucumberJS
|
|
178
201
|
*/
|
|
179
202
|
async beforeFeature(uri, feature) {
|
|
203
|
+
var _a;
|
|
180
204
|
this._suiteTitle = feature.name;
|
|
181
205
|
await this._setSessionName(feature.name);
|
|
182
206
|
await this._setAnnotation(`Feature: ${feature.name}`);
|
|
207
|
+
await ((_a = this._insightsHandler) === null || _a === void 0 ? void 0 : _a.beforeFeature(uri, feature));
|
|
183
208
|
}
|
|
184
209
|
/**
|
|
185
210
|
* Runs before a Cucumber Scenario.
|
|
186
211
|
* @param world world object containing information on pickle and test step
|
|
187
212
|
*/
|
|
188
213
|
async beforeScenario(world) {
|
|
189
|
-
var _a;
|
|
214
|
+
var _a, _b;
|
|
190
215
|
this._currentTest = world;
|
|
191
216
|
await ((_a = this._insightsHandler) === null || _a === void 0 ? void 0 : _a.beforeScenario(world));
|
|
217
|
+
await ((_b = this._accessibilityHandler) === null || _b === void 0 ? void 0 : _b.beforeScenario(world));
|
|
192
218
|
const scenarioName = world.pickle.name || 'unknown scenario';
|
|
193
219
|
await this._setAnnotation(`Scenario: ${scenarioName}`);
|
|
194
220
|
}
|
|
195
221
|
async afterScenario(world) {
|
|
196
|
-
var _a, _b;
|
|
222
|
+
var _a, _b, _c;
|
|
197
223
|
this._specsRan = true;
|
|
198
224
|
const status = (_a = world.result) === null || _a === void 0 ? void 0 : _a.status.toLowerCase();
|
|
199
225
|
if (status !== 'skipped') {
|
|
@@ -207,6 +233,7 @@ class BrowserstackService {
|
|
|
207
233
|
this._failReasons.push(exception);
|
|
208
234
|
}
|
|
209
235
|
await ((_b = this._insightsHandler) === null || _b === void 0 ? void 0 : _b.afterScenario(world));
|
|
236
|
+
await ((_c = this._accessibilityHandler) === null || _c === void 0 ? void 0 : _c.afterScenario(world));
|
|
210
237
|
}
|
|
211
238
|
async beforeStep(step, scenario) {
|
|
212
239
|
var _a;
|
|
@@ -278,6 +305,13 @@ class BrowserstackService {
|
|
|
278
305
|
}
|
|
279
306
|
const sessionUrl = `${this._sessionBaseUrl}/${sessionId}.json`;
|
|
280
307
|
log.debug(`Updating Browserstack session at ${sessionUrl} with request body: `, requestBody);
|
|
308
|
+
if (this._turboScale) {
|
|
309
|
+
return got_1.default.patch(sessionUrl, {
|
|
310
|
+
json: requestBody,
|
|
311
|
+
username: this._config.user,
|
|
312
|
+
password: this._config.key
|
|
313
|
+
});
|
|
314
|
+
}
|
|
281
315
|
return got_1.default.put(sessionUrl, {
|
|
282
316
|
json: requestBody,
|
|
283
317
|
username: this._config.user,
|
|
@@ -291,17 +325,26 @@ class BrowserstackService {
|
|
|
291
325
|
await this._multiRemoteAction(async (sessionId, browserName) => {
|
|
292
326
|
const sessionUrl = `${this._sessionBaseUrl}/${sessionId}.json`;
|
|
293
327
|
log.debug(`Requesting Browserstack session URL at ${sessionUrl}`);
|
|
294
|
-
|
|
328
|
+
let browserUrl;
|
|
329
|
+
const reqOpts = {
|
|
295
330
|
username: this._config.user,
|
|
296
331
|
password: this._config.key,
|
|
297
332
|
responseType: 'json'
|
|
298
|
-
}
|
|
333
|
+
};
|
|
334
|
+
if (this._turboScale) {
|
|
335
|
+
const response = await (0, got_1.default)(sessionUrl, reqOpts);
|
|
336
|
+
browserUrl = response.body.url;
|
|
337
|
+
}
|
|
338
|
+
else {
|
|
339
|
+
const response = await (0, got_1.default)(sessionUrl, reqOpts);
|
|
340
|
+
browserUrl = response.body.automation_session.browser_url;
|
|
341
|
+
}
|
|
299
342
|
if (!this._browser) {
|
|
300
343
|
return;
|
|
301
344
|
}
|
|
302
345
|
const capabilities = (0, util_1.getBrowserCapabilities)(this._browser, this._caps, browserName);
|
|
303
346
|
const browserString = (0, util_1.getBrowserDescription)(capabilities);
|
|
304
|
-
log.info(`${browserString} session: ${
|
|
347
|
+
log.info(`${browserString} session: ${browserUrl}`);
|
|
305
348
|
});
|
|
306
349
|
}
|
|
307
350
|
async _setSessionName(suiteTitle, test) {
|
package/build/types.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import type { Capabilities, Options } from '@wdio/types';
|
|
1
|
+
import type { Capabilities, Options, Frameworks } from '@wdio/types';
|
|
2
2
|
export interface SessionResponse {
|
|
3
3
|
automation_session: {
|
|
4
4
|
browser_url: string;
|
|
5
5
|
};
|
|
6
6
|
}
|
|
7
|
+
export interface TurboScaleSessionResponse {
|
|
8
|
+
url: string;
|
|
9
|
+
}
|
|
7
10
|
export type MultiRemoteAction = (sessionId: string, browserName?: string) => Promise<any>;
|
|
8
11
|
export type AppConfig = {
|
|
9
12
|
id?: string;
|
|
@@ -47,6 +50,20 @@ export interface BrowserstackConfig {
|
|
|
47
50
|
* For e.g. buildName, projectName, BrowserStack access credentials, etc.
|
|
48
51
|
*/
|
|
49
52
|
testObservabilityOptions?: TestObservabilityOptions;
|
|
53
|
+
/**
|
|
54
|
+
* Set this to true to enable BrowserStack Accessibility Automation which will
|
|
55
|
+
* automically conduct accessibility testing on your pre-existing test builds
|
|
56
|
+
* and generate health reports which can be viewed in the Accessibility dashboard.
|
|
57
|
+
* @default false
|
|
58
|
+
*/
|
|
59
|
+
accessibility?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Customise the Accessibility-related config options under this key.
|
|
62
|
+
* For e.g. wcagVersion, bestPractice issues, needsReview issues etc.
|
|
63
|
+
*/
|
|
64
|
+
accessibilityOptions?: {
|
|
65
|
+
[key: string]: any;
|
|
66
|
+
};
|
|
50
67
|
/**
|
|
51
68
|
* Set this with app file path present locally on your device or
|
|
52
69
|
* app hashed id returned after uploading app to BrowserStack or
|
|
@@ -112,6 +129,12 @@ export interface BrowserstackConfig {
|
|
|
112
129
|
* @default true
|
|
113
130
|
*/
|
|
114
131
|
setSessionStatus?: boolean;
|
|
132
|
+
/**
|
|
133
|
+
* Set this to true while running tests on the automation grid created using BrowserStack Automate TurboScale
|
|
134
|
+
* to automatically set the session name and status for quick debugging.
|
|
135
|
+
* @default false
|
|
136
|
+
*/
|
|
137
|
+
turboScale?: boolean;
|
|
115
138
|
}
|
|
116
139
|
export interface PlatformMeta {
|
|
117
140
|
sessionId?: string;
|
|
@@ -135,6 +158,13 @@ export interface TestMeta {
|
|
|
135
158
|
name: string;
|
|
136
159
|
};
|
|
137
160
|
examples?: string[];
|
|
161
|
+
hookType?: string;
|
|
162
|
+
testRunId?: string;
|
|
163
|
+
}
|
|
164
|
+
export interface CurrentRunInfo {
|
|
165
|
+
uuid?: string;
|
|
166
|
+
test?: Frameworks.Test;
|
|
167
|
+
finished?: boolean;
|
|
138
168
|
}
|
|
139
169
|
export interface TestData {
|
|
140
170
|
uuid?: string;
|
|
@@ -174,6 +204,9 @@ export interface UserConfig {
|
|
|
174
204
|
buildTag?: string;
|
|
175
205
|
bstackServiceVersion?: string;
|
|
176
206
|
buildIdentifier?: string;
|
|
207
|
+
accessibilityOptions?: {
|
|
208
|
+
[key: string]: any;
|
|
209
|
+
};
|
|
177
210
|
}
|
|
178
211
|
export interface UploadType {
|
|
179
212
|
event_type: string;
|
|
@@ -181,6 +214,15 @@ export interface UploadType {
|
|
|
181
214
|
test_run?: TestData;
|
|
182
215
|
logs?: any[];
|
|
183
216
|
}
|
|
217
|
+
export interface StdLog {
|
|
218
|
+
timestamp: string;
|
|
219
|
+
kind: string;
|
|
220
|
+
level?: string;
|
|
221
|
+
message?: string;
|
|
222
|
+
http_response?: any;
|
|
223
|
+
test_run_uuid?: string;
|
|
224
|
+
hook_run_uuid?: string;
|
|
225
|
+
}
|
|
184
226
|
export interface LaunchResponse {
|
|
185
227
|
jwt: string;
|
|
186
228
|
build_hashed_id: string;
|
package/build/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/build/util.d.ts
CHANGED
|
@@ -5,8 +5,10 @@ import https from 'https';
|
|
|
5
5
|
import type { Browser, MultiRemoteBrowser } from 'webdriverio';
|
|
6
6
|
import type { Capabilities, Frameworks, Options } from '@wdio/types';
|
|
7
7
|
import { BeforeCommandArgs, AfterCommandArgs } from '@wdio/reporter';
|
|
8
|
+
import type { Method } from 'got';
|
|
8
9
|
import type { ITestCaseHookParameter } from './cucumber-types';
|
|
9
10
|
import { UploadType, BrowserstackConfig } from './types';
|
|
11
|
+
import RequestQueueHandler from './request-handler';
|
|
10
12
|
export declare const DEFAULT_REQUEST_CONFIG: {
|
|
11
13
|
agent: {
|
|
12
14
|
http: http.Agent;
|
|
@@ -35,6 +37,7 @@ export declare function getBrowserCapabilities(browser: Browser<'async'> | Multi
|
|
|
35
37
|
*/
|
|
36
38
|
export declare function isBrowserstackCapability(cap?: Capabilities.Capabilities): boolean;
|
|
37
39
|
export declare function getParentSuiteName(fullTitle: string, testSuiteTitle: string): string;
|
|
40
|
+
export declare function errorHandler(fn: Function): (...args: any) => any;
|
|
38
41
|
export declare function o11yErrorHandler(fn: Function): (...args: any) => any;
|
|
39
42
|
type ClassType = {
|
|
40
43
|
new (...args: any[]): any;
|
|
@@ -47,17 +50,33 @@ export declare function getCiInfo(): {
|
|
|
47
50
|
build_url: string | undefined;
|
|
48
51
|
job_name: string | undefined;
|
|
49
52
|
build_number: string | undefined;
|
|
53
|
+
} | {
|
|
54
|
+
name: string;
|
|
55
|
+
build_url: string | undefined;
|
|
56
|
+
job_name: string | null;
|
|
57
|
+
build_number: string | undefined;
|
|
50
58
|
} | {
|
|
51
59
|
name: string;
|
|
52
60
|
build_url: null;
|
|
61
|
+
job_name: string | undefined;
|
|
62
|
+
build_number: string | undefined;
|
|
63
|
+
} | {
|
|
64
|
+
name: string;
|
|
65
|
+
build_url: string;
|
|
53
66
|
job_name: null;
|
|
54
67
|
build_number: null;
|
|
55
68
|
} | {
|
|
56
69
|
name: string;
|
|
57
|
-
build_url:
|
|
70
|
+
build_url: null;
|
|
58
71
|
job_name: null;
|
|
59
72
|
build_number: string | undefined;
|
|
73
|
+
} | {
|
|
74
|
+
name: string;
|
|
75
|
+
build_url: null;
|
|
76
|
+
job_name: string | null;
|
|
77
|
+
build_number: string | null;
|
|
60
78
|
} | null;
|
|
79
|
+
export declare function nodeRequest(requestType: Method, apiEndpoint: string, options: any, apiUrl: string, timeout?: number): Promise<Object>;
|
|
61
80
|
export declare function getGitMetaData(): Promise<{
|
|
62
81
|
name?: undefined;
|
|
63
82
|
sha?: undefined;
|
|
@@ -119,6 +138,34 @@ export declare function getObservabilityProject(options: BrowserstackConfig & Op
|
|
|
119
138
|
export declare function getObservabilityBuild(options: BrowserstackConfig & Options.Testrunner, bstackBuildName?: string): string;
|
|
120
139
|
export declare function getObservabilityBuildTags(options: BrowserstackConfig & Options.Testrunner, bstackBuildTag?: string): string[];
|
|
121
140
|
export declare function frameworkSupportsHook(hook: string, framework?: string): boolean;
|
|
141
|
+
export declare function getFailureObject(error: string | Error): {
|
|
142
|
+
failure: {
|
|
143
|
+
backtrace: string[];
|
|
144
|
+
}[];
|
|
145
|
+
failure_reason: string;
|
|
146
|
+
failure_type: string | null;
|
|
147
|
+
};
|
|
148
|
+
export declare function patchConsoleLogs(): void;
|
|
122
149
|
export declare const sleep: (ms?: number) => Promise<unknown>;
|
|
150
|
+
export declare function pushDataToQueue(data: UploadType, requestQueueHandler?: RequestQueueHandler | undefined): Promise<void>;
|
|
151
|
+
export declare const validateCapsWithA11y: (deviceName?: any, platformMeta?: {
|
|
152
|
+
[key: string]: any;
|
|
153
|
+
} | undefined, chromeOptions?: any) => boolean;
|
|
154
|
+
export declare const shouldScanTestForAccessibility: (suiteTitle: string | undefined, testTitle: string, accessibilityOptions?: {
|
|
155
|
+
[key: string]: any;
|
|
156
|
+
} | undefined) => boolean | undefined;
|
|
157
|
+
export declare const isAccessibilityAutomationSession: (accessibilityFlag?: boolean | string) => boolean | "" | undefined;
|
|
158
|
+
export declare const createAccessibilityTestRun: (...args: any) => any;
|
|
159
|
+
export declare const getA11yResults: (browser: any, isBrowserStackSession?: boolean, isAccessibility?: boolean | string) => Promise<{
|
|
160
|
+
[key: string]: any;
|
|
161
|
+
}[]>;
|
|
162
|
+
export declare const getA11yResultsSummary: (browser: any, isBrowserStackSession?: boolean, isAccessibility?: boolean | string) => Promise<{
|
|
163
|
+
[key: string]: any;
|
|
164
|
+
}>;
|
|
165
|
+
export declare const stopAccessibilityTestRun: (...args: any) => any;
|
|
166
|
+
export declare function getBrowserStackUser(config: Options.Testrunner): string | undefined;
|
|
167
|
+
export declare function getBrowserStackKey(config: Options.Testrunner): string | undefined;
|
|
168
|
+
export declare function isUndefined(value: any): boolean;
|
|
169
|
+
export declare function isTrue(value?: any): boolean;
|
|
123
170
|
export {};
|
|
124
171
|
//# sourceMappingURL=util.d.ts.map
|
package/build/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;AAEA,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
|