@wdio/browserstack-service 8.48.0 → 8.48.3
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.map +1 -1
- package/build/accessibility-handler.js +13 -11
- package/build/ai-handler.d.ts.map +1 -1
- package/build/ai-handler.js +11 -0
- package/build/cli/cliLogger.d.ts +1 -0
- package/build/cli/cliLogger.d.ts.map +1 -1
- package/build/cli/cliLogger.js +23 -12
- package/build/cli/cliUtils.d.ts +18 -0
- package/build/cli/cliUtils.d.ts.map +1 -1
- package/build/cli/cliUtils.js +29 -0
- package/build/cli/frameworks/wdioMochaTestFramework.d.ts.map +1 -1
- package/build/cli/frameworks/wdioMochaTestFramework.js +4 -2
- package/build/cli/grpcClient.d.ts +19 -3
- package/build/cli/grpcClient.d.ts.map +1 -1
- package/build/cli/grpcClient.js +133 -21
- package/build/cli/index.d.ts +2 -0
- package/build/cli/index.d.ts.map +1 -1
- package/build/cli/index.js +52 -4
- package/build/cli/modules/accessibilityModule.d.ts +3 -0
- package/build/cli/modules/accessibilityModule.d.ts.map +1 -1
- package/build/cli/modules/accessibilityModule.js +75 -10
- package/build/constants.d.ts +28 -0
- package/build/constants.d.ts.map +1 -1
- package/build/constants.js +37 -1
- package/build/exitHandler.d.ts +1 -1
- package/build/exitHandler.d.ts.map +1 -1
- package/build/exitHandler.js +6 -5
- package/build/insights-handler.d.ts.map +1 -1
- package/build/insights-handler.js +33 -7
- package/build/instrumentation/funnelInstrumentation.d.ts +2 -2
- package/build/instrumentation/funnelInstrumentation.d.ts.map +1 -1
- package/build/instrumentation/funnelInstrumentation.js +30 -8
- package/build/instrumentation/performance/constants.d.ts +64 -0
- package/build/instrumentation/performance/constants.d.ts.map +1 -1
- package/build/instrumentation/performance/constants.js +73 -2
- package/build/instrumentation/performance/performance-tester.d.ts +11 -0
- package/build/instrumentation/performance/performance-tester.d.ts.map +1 -1
- package/build/instrumentation/performance/performance-tester.js +115 -12
- package/build/launcher.d.ts +1 -0
- package/build/launcher.d.ts.map +1 -1
- package/build/launcher.js +151 -6
- package/build/service.d.ts.map +1 -1
- package/build/service.js +77 -5
- package/build/testorchestration/apply-orchestration.d.ts +7 -0
- package/build/testorchestration/apply-orchestration.d.ts.map +1 -0
- package/build/testorchestration/apply-orchestration.js +42 -0
- package/build/testorchestration/helpers.d.ts +20 -0
- package/build/testorchestration/helpers.d.ts.map +1 -0
- package/build/testorchestration/helpers.js +412 -0
- package/build/testorchestration/request-utils.d.ts +23 -0
- package/build/testorchestration/request-utils.d.ts.map +1 -0
- package/build/testorchestration/request-utils.js +81 -0
- package/build/testorchestration/test-ordering-server.d.ts +33 -0
- package/build/testorchestration/test-ordering-server.d.ts.map +1 -0
- package/build/testorchestration/test-ordering-server.js +168 -0
- package/build/testorchestration/testorcherstrationhandler.d.ts +50 -0
- package/build/testorchestration/testorcherstrationhandler.d.ts.map +1 -0
- package/build/testorchestration/testorcherstrationhandler.js +133 -0
- package/build/testorchestration/testorcherstrationutils.d.ts +86 -0
- package/build/testorchestration/testorcherstrationutils.d.ts.map +1 -0
- package/build/testorchestration/testorcherstrationutils.js +379 -0
- package/build/types.d.ts +21 -0
- package/build/types.d.ts.map +1 -1
- package/build/util.d.ts +33 -4
- package/build/util.d.ts.map +1 -1
- package/build/util.js +112 -18
- package/package.json +3 -2
- package/tsconfig.prod.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessibility-handler.d.ts","sourceRoot":"","sources":["../src/accessibility-handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAEpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAEzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAajE,UAAU,oBAAoB;IAC1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACzB;
|
|
1
|
+
{"version":3,"file":"accessibility-handler.d.ts","sourceRoot":"","sources":["../src/accessibility-handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAEpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAEzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAajE,UAAU,oBAAoB;IAC1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACzB;AAsDD,cAAM,qBAAqB;IAiBnB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa;IAErB,OAAO,CAAC,aAAa;IAErB,OAAO,CAAC,UAAU,CAAC;IACnB,OAAO,CAAC,wBAAwB,CAAC;IAEjC,OAAO,CAAC,kBAAkB,CAAC;IAxB/B,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,UAAU,CAAC,CAAQ;IAC3B,OAAO,CAAC,cAAc,CAAC,CAAS;IAChC,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAA0C;IAC1D,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,qBAAqB,CAAC,CAAsB;IACpD,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAyB;IAC3D,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,QAAQ,CAAyB;gBAG7B,QAAQ,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,kBAAkB,EAC9D,aAAa,EAAE,YAAY,CAAC,gBAAgB,EACpD,QAAQ,EAAG,kBAAkB,GAAG,mBAAmB,EAC3C,aAAa,EAAE,OAAO,EAC9B,OAAO,EAAG,OAAO,CAAC,UAAU,EACpB,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,wBAAwB,CAAC,GAAE,OAAO,GAAG,MAAM,aAAA,EACnD,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,EACtB,kBAAkB,CAAC,EAAE,oBAAoB,YAAA;IAsBrD,YAAY,CAAC,QAAQ,EAAE,MAAM;IAI7B,mBAAmB,CAAC,IAAI,EAAE,YAAY,CAAC,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IA6BzF,MAAM,CAAE,SAAS,EAAE,MAAM;IAiGzB,UAAU,CAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI;IAoCjE,SAAS,CAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI;IAoCtE;;MAEE;IACI,cAAc,CAAE,KAAK,EAAE,sBAAsB;IAmC7C,aAAa,CAAE,KAAK,EAAE,sBAAsB;YAsCpC,cAAc;YAcd,iBAAiB;IAgB/B,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,kBAAkB;YAOZ,iBAAiB;IAkB/B,OAAO,CAAC,MAAM,CAAC,wBAAwB;YAWzB,cAAc;CAG/B;AAGD,QAAA,MAAM,oBAAoB,EAAE,OAAO,qBAAoE,CAAA;AACvG,KAAK,oBAAoB,GAAG,qBAAqB,CAAA;AAEjD,eAAe,oBAAoB,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference path="./@types/bstack-service-types.d.ts" />
|
|
2
2
|
import util from 'node:util';
|
|
3
3
|
import Listener from './testOps/listener.js';
|
|
4
|
-
import { getA11yResultsSummary, getAppA11yResultsSummary, getA11yResults, performA11yScan, getUniqueIdentifier, getUniqueIdentifierForCucumber, isAccessibilityAutomationSession, isAppAccessibilityAutomationSession, isBrowserstackSession, o11yClassErrorHandler, shouldScanTestForAccessibility, validateCapsWithA11y, shouldAddServiceVersion, validateCapsWithNonBstackA11y, isTrue, validateCapsWithAppA11y, getAppA11yResults, isFalse } from './util.js';
|
|
4
|
+
import { getA11yResultsSummary, getAppA11yResultsSummary, getA11yResults, performA11yScan, getUniqueIdentifier, getUniqueIdentifierForCucumber, isAccessibilityAutomationSession, isAppAccessibilityAutomationSession, isBrowserstackSession, o11yClassErrorHandler, shouldScanTestForAccessibility, validateCapsWithA11y, shouldAddServiceVersion, validateCapsWithNonBstackA11y, isTrue, validateCapsWithAppA11y, getAppA11yResults, isFalse, setBrowserstackAnnotation } from './util.js';
|
|
5
5
|
import accessibilityScripts from './scripts/accessibility-scripts.js';
|
|
6
6
|
import PerformanceTester from './instrumentation/performance/performance-tester.js';
|
|
7
7
|
import * as PERFORMANCE_SDK_EVENTS from './instrumentation/performance/constants.js';
|
|
@@ -36,7 +36,7 @@ class _AccessibilityHandler {
|
|
|
36
36
|
this._accessibilityOpts = _accessibilityOpts;
|
|
37
37
|
const caps = this._browser.capabilities;
|
|
38
38
|
this._platformA11yMeta = {
|
|
39
|
-
browser_name: caps
|
|
39
|
+
browser_name: caps?.browserName,
|
|
40
40
|
browser_version: caps?.browserVersion || caps?.version || 'latest',
|
|
41
41
|
platform_name: caps?.platformName,
|
|
42
42
|
platform_version: this._getCapabilityValue(caps, 'appium:platformVersion', 'platformVersion'),
|
|
@@ -90,6 +90,7 @@ class _AccessibilityHandler {
|
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
async before(sessionId) {
|
|
93
|
+
PerformanceTester.start(PERFORMANCE_SDK_EVENTS.CONFIG_EVENTS.ACCESSIBILITY);
|
|
93
94
|
this._sessionId = sessionId;
|
|
94
95
|
this._accessibility = isTrue(this._getCapabilityValue(this._caps, 'accessibility', 'browserstack.accessibility'));
|
|
95
96
|
//checks for running ALLY on non-bstack infra
|
|
@@ -134,6 +135,10 @@ class _AccessibilityHandler {
|
|
|
134
135
|
return results;
|
|
135
136
|
};
|
|
136
137
|
browserWithA11y.startA11yScanning = async () => {
|
|
138
|
+
if (this._testIdentifier === null) {
|
|
139
|
+
BStackLogger.warn('Accessibility scanning cannot be started from outside the test');
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
137
142
|
AccessibilityHandler._a11yScanSessionMap[sessionId] = true;
|
|
138
143
|
this._testMetadata[this._testIdentifier] = {
|
|
139
144
|
scanTestForAccessibility: true,
|
|
@@ -142,6 +147,10 @@ class _AccessibilityHandler {
|
|
|
142
147
|
await this._setAnnotation('Accessibility scanning has started');
|
|
143
148
|
};
|
|
144
149
|
browserWithA11y.stopA11yScanning = async () => {
|
|
150
|
+
if (this._testIdentifier === null) {
|
|
151
|
+
BStackLogger.warn('Accessibility scanning cannot be stopped from outside the test');
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
145
154
|
AccessibilityHandler._a11yScanSessionMap[sessionId] = false;
|
|
146
155
|
await this._setAnnotation('Accessibility scanning has stopped');
|
|
147
156
|
};
|
|
@@ -157,6 +166,7 @@ class _AccessibilityHandler {
|
|
|
157
166
|
const browser = this._browser;
|
|
158
167
|
browser.overwriteCommand(command.name, this.commandWrapper.bind(this, command), command.class === 'Element');
|
|
159
168
|
});
|
|
169
|
+
PerformanceTester.end(PERFORMANCE_SDK_EVENTS.CONFIG_EVENTS.ACCESSIBILITY);
|
|
160
170
|
}
|
|
161
171
|
async beforeTest(suiteTitle, test) {
|
|
162
172
|
try {
|
|
@@ -342,15 +352,7 @@ class _AccessibilityHandler {
|
|
|
342
352
|
script.toLowerCase().indexOf('browserstack_accessibility_automation_script') !== -1);
|
|
343
353
|
}
|
|
344
354
|
async _setAnnotation(message) {
|
|
345
|
-
|
|
346
|
-
await this._browser.execute(`browserstack_executor: ${JSON.stringify({
|
|
347
|
-
action: 'annotate',
|
|
348
|
-
arguments: {
|
|
349
|
-
data: message,
|
|
350
|
-
level: 'info'
|
|
351
|
-
}
|
|
352
|
-
})}`);
|
|
353
|
-
}
|
|
355
|
+
await setBrowserstackAnnotation(this._browser, message, Boolean(this._accessibility));
|
|
354
356
|
}
|
|
355
357
|
}
|
|
356
358
|
// https://github.com/microsoft/TypeScript/issues/6543
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-handler.d.ts","sourceRoot":"","sources":["../src/ai-handler.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,kBAAkB,MAAM,aAAa,CAAA;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAEpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"ai-handler.d.ts","sourceRoot":"","sources":["../src/ai-handler.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,kBAAkB,MAAM,aAAa,CAAA;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAEpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAIrD,cAAM,SAAS;IACX,UAAU,EAAE,mBAAmB,CAAC,mBAAmB,GAAG,mBAAmB,CAAC,iBAAiB,CAAA;IAC3F,iBAAiB,EAAE,MAAM,CAAA;;IAMnB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAIhD,UAAU,CACN,UAAU,EAAE,mBAAmB,CAAC,mBAAmB,GAAG,mBAAmB,CAAC,iBAAiB,EAC3F,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,gBAAgB,CAAC,GAAG,YAAY,CAAC,gBAAgB;IAkBxE,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAIhD,uBAAuB,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO;IAOpD,aAAa,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,mBAAmB;IA4D9J,kBAAkB,CACd,UAAU,EAAE,mBAAmB,CAAC,mBAAmB,GAAG,mBAAmB,CAAC,iBAAiB,EAC3F,MAAM,EAAE,OAAO,CAAC,UAAU,EAC1B,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,GAAG,EACT,OAAO,EAAE,MAAM;IAcnB,sBAAsB,CAClB,UAAU,EAAE,mBAAmB,CAAC,mBAAmB,GAAG,mBAAmB,CAAC,iBAAiB,EAC3F,MAAM,EAAE,OAAO,CAAC,UAAU,EAC1B,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,GAAG;IASP,KAAK,CACP,MAAM,EAAE,OAAO,CAAC,UAAU,EAC1B,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,GAAG,EACT,aAAa,EAAE,OAAO;IA0BpB,cAAc,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO;IA0BzE,QAAQ,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,YAAY,CAAC,gBAAgB,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO;CAmBjH;;AAED,wBAA8B"}
|
package/build/ai-handler.js
CHANGED
|
@@ -6,6 +6,8 @@ import { BStackLogger } from './bstackLogger.js';
|
|
|
6
6
|
import { TCG_URL, TCG_INFO, SUPPORTED_BROWSERS_FOR_AI, BSTACK_SERVICE_VERSION, BSTACK_TCG_AUTH_RESULT } from './constants.js';
|
|
7
7
|
import { handleHealingInstrumentation } from './instrumentation/funnelInstrumentation.js';
|
|
8
8
|
import { getBrowserStackUserAndKey, isBrowserstackInfra } from './util.js';
|
|
9
|
+
import PerformanceTester from './instrumentation/performance/performance-tester.js';
|
|
10
|
+
import * as PERFORMANCE_SDK_EVENTS from './instrumentation/performance/constants.js';
|
|
9
11
|
class AiHandler {
|
|
10
12
|
authResult;
|
|
11
13
|
wdioBstackVersion;
|
|
@@ -68,19 +70,28 @@ class AiHandler {
|
|
|
68
70
|
}
|
|
69
71
|
if (options.selfHeal === true && this.authResult.isHealingEnabled) {
|
|
70
72
|
BStackLogger.info('findElement failed, trying to heal');
|
|
73
|
+
PerformanceTester.start(PERFORMANCE_SDK_EVENTS.AI_EVENTS.SELF_HEAL_STEP);
|
|
71
74
|
const script = await aiSDK.BrowserstackHealing.healFailure(locatorType, locatorValue, undefined, undefined, this.authResult.userId, this.authResult.groupId, sessionId, undefined, undefined, this.authResult.isGroupAIEnabled, tcgDetails);
|
|
72
75
|
if (script) {
|
|
73
76
|
await browser.execute(script);
|
|
77
|
+
PerformanceTester.start(PERFORMANCE_SDK_EVENTS.AI_EVENTS.SELF_HEAL_GET_RESULT);
|
|
74
78
|
const tcgData = await aiSDK.BrowserstackHealing.pollResult(TCG_URL, sessionId, this.authResult.sessionToken);
|
|
79
|
+
PerformanceTester.end(PERFORMANCE_SDK_EVENTS.AI_EVENTS.SELF_HEAL_GET_RESULT);
|
|
75
80
|
if (tcgData && tcgData.selector && tcgData.value) {
|
|
76
81
|
const healedResult = await orginalFunc(tcgData.selector, tcgData.value);
|
|
77
82
|
BStackLogger.info('Healing worked, element found: ' + tcgData.selector + ': ' + tcgData.value);
|
|
83
|
+
PerformanceTester.end(PERFORMANCE_SDK_EVENTS.AI_EVENTS.SELF_HEAL_STEP);
|
|
78
84
|
return healedResult.error ? result : healedResult;
|
|
79
85
|
}
|
|
86
|
+
PerformanceTester.end(PERFORMANCE_SDK_EVENTS.AI_EVENTS.SELF_HEAL_STEP, false, 'No healed result found');
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
PerformanceTester.end(PERFORMANCE_SDK_EVENTS.AI_EVENTS.SELF_HEAL_STEP, false, 'No healing script generated');
|
|
80
90
|
}
|
|
81
91
|
}
|
|
82
92
|
}
|
|
83
93
|
catch (err) {
|
|
94
|
+
PerformanceTester.end(PERFORMANCE_SDK_EVENTS.AI_EVENTS.SELF_HEAL_STEP, false, String(err));
|
|
84
95
|
if (options.selfHeal === true) {
|
|
85
96
|
BStackLogger.warn('Something went wrong while healing. Disabling healing for this command');
|
|
86
97
|
}
|
package/build/cli/cliLogger.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export declare class BStackLogger {
|
|
|
2
2
|
static logFilePath: string;
|
|
3
3
|
static logFolderPath: string;
|
|
4
4
|
private static logFileStream;
|
|
5
|
+
private static redactCredentials;
|
|
5
6
|
static logToFile(logMessage: string, logLevel: string): void;
|
|
6
7
|
private static formatLog;
|
|
7
8
|
static info(message: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cliLogger.d.ts","sourceRoot":"","sources":["../../src/cli/cliLogger.ts"],"names":[],"mappings":"AAWA,qBAAa,YAAY;IACrB,OAAc,WAAW,SAAsC;IAC/D,OAAc,aAAa,SAAmC;IAC9D,OAAO,CAAC,MAAM,CAAC,aAAa,CAAuB;IAEnD,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"cliLogger.d.ts","sourceRoot":"","sources":["../../src/cli/cliLogger.ts"],"names":[],"mappings":"AAWA,qBAAa,YAAY;IACrB,OAAc,WAAW,SAAsC;IAC/D,OAAc,aAAa,SAAmC;IAC9D,OAAO,CAAC,MAAM,CAAC,aAAa,CAAuB;IAEnD,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAMhC,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAerD,OAAO,CAAC,MAAM,CAAC,SAAS;WAIV,IAAI,CAAC,OAAO,EAAE,MAAM;WAMpB,KAAK,CAAC,OAAO,EAAE,MAAM;WAMrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;WAUtC,IAAI,CAAC,OAAO,EAAE,MAAM;WAMpB,KAAK,CAAC,OAAO,EAAE,MAAM;WAMrB,WAAW;WAOX,YAAY;WAMZ,gBAAgB;CAKjC"}
|
package/build/cli/cliLogger.js
CHANGED
|
@@ -9,14 +9,20 @@ export class BStackLogger {
|
|
|
9
9
|
static logFilePath = path.join(process.cwd(), LOGS_FILE);
|
|
10
10
|
static logFolderPath = path.join(process.cwd(), 'logs');
|
|
11
11
|
static logFileStream;
|
|
12
|
+
static redactCredentials(logMessage) {
|
|
13
|
+
return logMessage
|
|
14
|
+
.replace(/([\\'"]*(?:username|accesskey|user|key)[\\'"]*\s*[:=]\s*[\\'"]*)([^\\'"\s,}]+)/gi, '$1')
|
|
15
|
+
.replace(/([?&](?:username|access_key|accesskey|user|key)=)([^&#\s]+)/gi, '$1');
|
|
16
|
+
}
|
|
12
17
|
static logToFile(logMessage, logLevel) {
|
|
13
18
|
try {
|
|
19
|
+
const redactedMessage = this.redactCredentials(logMessage);
|
|
14
20
|
if (!this.logFileStream) {
|
|
15
21
|
this.ensureLogsFolder();
|
|
16
22
|
this.logFileStream = fs.createWriteStream(this.logFilePath, { flags: 'a' });
|
|
17
23
|
}
|
|
18
24
|
if (this.logFileStream && this.logFileStream.writable) {
|
|
19
|
-
this.logFileStream.write(this.formatLog(
|
|
25
|
+
this.logFileStream.write(this.formatLog(redactedMessage, logLevel));
|
|
20
26
|
}
|
|
21
27
|
}
|
|
22
28
|
catch (error) {
|
|
@@ -27,29 +33,34 @@ export class BStackLogger {
|
|
|
27
33
|
return `${chalk.gray(new Date().toISOString())} ${chalk[COLORS[level]](level.toUpperCase())} ${chalk.whiteBright('@wdio/browserstack-service')} ${logMessage}\n`;
|
|
28
34
|
}
|
|
29
35
|
static info(message) {
|
|
30
|
-
this.
|
|
31
|
-
|
|
36
|
+
const redactedMessage = this.redactCredentials(message);
|
|
37
|
+
this.logToFile(redactedMessage, 'info');
|
|
38
|
+
log.info(redactedMessage);
|
|
32
39
|
}
|
|
33
40
|
static error(message) {
|
|
34
|
-
this.
|
|
35
|
-
|
|
41
|
+
const redactedMessage = this.redactCredentials(message);
|
|
42
|
+
this.logToFile(redactedMessage, 'error');
|
|
43
|
+
log.error(redactedMessage);
|
|
36
44
|
}
|
|
37
45
|
static debug(message, param) {
|
|
38
|
-
this.
|
|
46
|
+
const redactedMessage = this.redactCredentials(message);
|
|
47
|
+
this.logToFile(redactedMessage, 'debug');
|
|
39
48
|
if (param) {
|
|
40
|
-
log.debug(
|
|
49
|
+
log.debug(redactedMessage, param);
|
|
41
50
|
}
|
|
42
51
|
else {
|
|
43
|
-
log.debug(
|
|
52
|
+
log.debug(redactedMessage);
|
|
44
53
|
}
|
|
45
54
|
}
|
|
46
55
|
static warn(message) {
|
|
47
|
-
this.
|
|
48
|
-
|
|
56
|
+
const redactedMessage = this.redactCredentials(message);
|
|
57
|
+
this.logToFile(redactedMessage, 'warn');
|
|
58
|
+
log.warn(redactedMessage);
|
|
49
59
|
}
|
|
50
60
|
static trace(message) {
|
|
51
|
-
this.
|
|
52
|
-
|
|
61
|
+
const redactedMessage = this.redactCredentials(message);
|
|
62
|
+
this.logToFile(redactedMessage, 'trace');
|
|
63
|
+
log.trace(redactedMessage);
|
|
53
64
|
}
|
|
54
65
|
static clearLogger() {
|
|
55
66
|
if (this.logFileStream) {
|
package/build/cli/cliUtils.d.ts
CHANGED
|
@@ -32,6 +32,24 @@ export declare class CLIUtils {
|
|
|
32
32
|
* @returns {string}
|
|
33
33
|
*/
|
|
34
34
|
static getCurrentInstanceName(): string;
|
|
35
|
+
/**
|
|
36
|
+
* Generate a unique client worker identifier combining thread ID and process ID.
|
|
37
|
+
* This identifier is used to track worker-specific events and performance metrics
|
|
38
|
+
* across distributed test execution. Format matches the Python SDK implementation
|
|
39
|
+
* for consistency across SDKs.
|
|
40
|
+
*
|
|
41
|
+
* Format: "threadId-processId"
|
|
42
|
+
*
|
|
43
|
+
* @param context - Optional execution context with threadId and processId
|
|
44
|
+
* @returns Worker ID string in format "threadId-processId"
|
|
45
|
+
* @example
|
|
46
|
+
* const workerId = CLIUtils.getClientWorkerId() // Returns "1-12345"
|
|
47
|
+
* const workerId = CLIUtils.getClientWorkerId({ threadId: 123, processId: 456 }) // Returns "123-456"
|
|
48
|
+
*/
|
|
49
|
+
static getClientWorkerId(context?: {
|
|
50
|
+
threadId?: string | number;
|
|
51
|
+
processId?: string | number;
|
|
52
|
+
}): string;
|
|
35
53
|
/**
|
|
36
54
|
*
|
|
37
55
|
* @param {TestFrameworkState | AutomationFrameworkState} frameworkState
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cliUtils.d.ts","sourceRoot":"","sources":["../../src/cli/cliUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AAiCxB,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"cliUtils.d.ts","sourceRoot":"","sources":["../../src/cli/cliUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AAiCxB,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAyB,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAI3H,qBAAa,QAAQ;IACjB,MAAM,CAAC,yBAAyB,KAAK;IACrC,MAAM,CAAC,mBAAmB,KAAK;IAC/B,MAAM,CAAC,sBAAsB,WAAY;IAEzC,MAAM,CAAC,gBAAgB;IAIvB,MAAM,CAAC,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAOtD;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC,kBAAkB,EAAE,OAAO,EAAE,kBAAkB,GAAG,mBAAmB,EAAE,QAAQ,CAAC,EAAE,MAAM;IAqFnK,MAAM,CAAC,aAAa;IAIpB,MAAM,CAAC,cAAc;WAIR,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,GAAC,IAAI,CAAC;WAuB9D,iBAAiB,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,GAAC,IAAI,CAAC;IAgCzH,MAAM,CAAC,SAAS;IAiBhB,MAAM,CAAC,cAAc;IAsCrB,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM;IAyCxC,MAAM,CAAC,kBAAkB,gBAAuB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,OAAO,CAAC,UAAU,kBAejG;IAED,MAAM,CAAC,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,SAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAqB5E,MAAM,CAAC,oBAAoB,mBAA0B,MAAM,UAAU,MAAM,KAAG,OAAO,CAAC,MAAM,GAAC,IAAI,CAAC,CAmCjG;IAED,MAAM,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,GAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,KAAK,IAAI;IA4D/L,MAAM,CAAC,sBAAsB;IAO7B,MAAM,CAAC,4BAA4B;IAOnC,MAAM,CAAC,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM;IAmB5E;;;OAGG;IACH,MAAM,CAAC,sBAAsB;IAI7B;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,MAAM;IAMvG;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAAC,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK;IAIjE,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM;IAMvC,MAAM,CAAC,yBAAyB,CAAC,oBAAoB,EAAE,wBAAwB,EAAE,cAAc,CAAC,EAAE,MAAM;IAaxG,MAAM,CAAC,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;CAOnE"}
|
package/build/cli/cliUtils.js
CHANGED
|
@@ -41,6 +41,7 @@ export class CLIUtils {
|
|
|
41
41
|
modifiedOpts.browserStackLocalOptions = modifiedOpts.opts;
|
|
42
42
|
delete modifiedOpts.opts;
|
|
43
43
|
}
|
|
44
|
+
delete modifiedOpts.testManagementOptions;
|
|
44
45
|
modifiedOpts.testContextOptions = {
|
|
45
46
|
skipSessionName: isFalse(modifiedOpts.setSessionName),
|
|
46
47
|
skipSessionStatus: isFalse(modifiedOpts.setSessionStatus),
|
|
@@ -61,6 +62,10 @@ export class CLIUtils {
|
|
|
61
62
|
})();
|
|
62
63
|
const isNonBstackA11y = isTurboScale(options) || !shouldAddServiceVersion(config, options.testObservability);
|
|
63
64
|
const observabilityOptions = options.testObservabilityOptions || {};
|
|
65
|
+
const testManagementOptions = options.testManagementOptions || {};
|
|
66
|
+
const testPlanId = typeof testManagementOptions.testPlanId === 'string'
|
|
67
|
+
? testManagementOptions.testPlanId.trim()
|
|
68
|
+
: '';
|
|
64
69
|
const binconfig = {
|
|
65
70
|
userName: observabilityOptions.user || config.user,
|
|
66
71
|
accessKey: observabilityOptions.key || config.key,
|
|
@@ -72,6 +77,11 @@ export class CLIUtils {
|
|
|
72
77
|
binconfig.buildName = observabilityOptions.buildName || binconfig.buildName;
|
|
73
78
|
binconfig.projectName = observabilityOptions.projectName || binconfig.projectName;
|
|
74
79
|
binconfig.buildTag = this.getObservabilityBuildTags(observabilityOptions, buildTag) || [];
|
|
80
|
+
if (testPlanId.length > 0) {
|
|
81
|
+
binconfig.testManagementOptions = {
|
|
82
|
+
testPlanId
|
|
83
|
+
};
|
|
84
|
+
}
|
|
75
85
|
let caps = capabilities;
|
|
76
86
|
if (capabilities && !Array.isArray(capabilities)) {
|
|
77
87
|
caps = [capabilities];
|
|
@@ -397,6 +407,25 @@ export class CLIUtils {
|
|
|
397
407
|
static getCurrentInstanceName() {
|
|
398
408
|
return `${process.pid}:${threadId}`;
|
|
399
409
|
}
|
|
410
|
+
/**
|
|
411
|
+
* Generate a unique client worker identifier combining thread ID and process ID.
|
|
412
|
+
* This identifier is used to track worker-specific events and performance metrics
|
|
413
|
+
* across distributed test execution. Format matches the Python SDK implementation
|
|
414
|
+
* for consistency across SDKs.
|
|
415
|
+
*
|
|
416
|
+
* Format: "threadId-processId"
|
|
417
|
+
*
|
|
418
|
+
* @param context - Optional execution context with threadId and processId
|
|
419
|
+
* @returns Worker ID string in format "threadId-processId"
|
|
420
|
+
* @example
|
|
421
|
+
* const workerId = CLIUtils.getClientWorkerId() // Returns "1-12345"
|
|
422
|
+
* const workerId = CLIUtils.getClientWorkerId({ threadId: 123, processId: 456 }) // Returns "123-456"
|
|
423
|
+
*/
|
|
424
|
+
static getClientWorkerId(context) {
|
|
425
|
+
const workerThreadId = context?.threadId?.toString() || threadId.toString();
|
|
426
|
+
const workerProcessId = context?.processId?.toString() || process.pid.toString();
|
|
427
|
+
return `${workerThreadId}-${workerProcessId}`;
|
|
428
|
+
}
|
|
400
429
|
/**
|
|
401
430
|
*
|
|
402
431
|
* @param {TestFrameworkState | AutomationFrameworkState} frameworkState
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wdioMochaTestFramework.d.ts","sourceRoot":"","sources":["../../../src/cli/frameworks/wdioMochaTestFramework.ts"],"names":[],"mappings":"AAGA,OAAO,aAAa,MAAM,oBAAoB,CAAA;AAG9C,OAAO,qBAAqB,MAAM,uCAAuC,CAAA;AAKzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAI7C,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,aAAa;IAC7D,MAAM,CAAC,qBAAqB,SAA2B;IACvD,MAAM,CAAC,sBAAsB,SAA4B;IAEzD;;;;;IAKA;gBACY,cAAc,EAAE,MAAM,EAAE,EAAE,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,MAAM;IAIzG;;;;;IAKA;IACM,UAAU,CAAC,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAoDhG;;;;;;KAMC;IACD,eAAe,CAAC,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,qBAAqB,GAAC,IAAI;IAa5H;;;;KAIC;IACD,sBAAsB,CAAC,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAqCzE,WAAW,CAAC,QAAQ,EAAE,qBAAqB,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI;IAmBxE,cAAc,CAAC,QAAQ,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAwB7E;;;;;;OAMG;IACH,cAAc,CAAC,QAAQ,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"wdioMochaTestFramework.d.ts","sourceRoot":"","sources":["../../../src/cli/frameworks/wdioMochaTestFramework.ts"],"names":[],"mappings":"AAGA,OAAO,aAAa,MAAM,oBAAoB,CAAA;AAG9C,OAAO,qBAAqB,MAAM,uCAAuC,CAAA;AAKzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAI7C,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,aAAa;IAC7D,MAAM,CAAC,qBAAqB,SAA2B;IACvD,MAAM,CAAC,sBAAsB,SAA4B;IAEzD;;;;;IAKA;gBACY,cAAc,EAAE,MAAM,EAAE,EAAE,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,MAAM;IAIzG;;;;;IAKA;IACM,UAAU,CAAC,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAoDhG;;;;;;KAMC;IACD,eAAe,CAAC,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,qBAAqB,GAAC,IAAI;IAa5H;;;;KAIC;IACD,sBAAsB,CAAC,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAqCzE,WAAW,CAAC,QAAQ,EAAE,qBAAqB,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI;IAmBxE,cAAc,CAAC,QAAQ,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAwB7E;;;;;;OAMG;IACH,cAAc,CAAC,QAAQ,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IA+B9H;;;;;OAKG;IACH,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAqB3G;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM;IAOzE;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK;IAY7F;;;;;;OAMG;IACH,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,GAAG,OAAO,EAAE;IAY7G;;;;;;OAMG;IACG,eAAe,CACjB,QAAQ,EAAE,qBAAqB,EAC/B,kBAAkB,EAAE,KAAK,EACzB,SAAS,EAAE,KAAK,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAwDpC"}
|
|
@@ -171,11 +171,13 @@ export default class WdioMochaTestFramework extends TestFramework {
|
|
|
171
171
|
*/
|
|
172
172
|
loadLogEntries(instance, testFrameworkState, hookState, logEntry) {
|
|
173
173
|
const logRecord = {};
|
|
174
|
-
const { level, message, timestamp } = logEntry;
|
|
174
|
+
const { level, message, timestamp, kind } = logEntry;
|
|
175
175
|
if (CLIUtils.matchHookRegex(instance.getCurrentTestState().toString())) {
|
|
176
176
|
logRecord[TestFrameworkConstants.KEY_HOOK_ID] = TestFramework.getState(instance, TestFrameworkConstants.KEY_HOOK_ID);
|
|
177
177
|
}
|
|
178
|
-
|
|
178
|
+
// SDK-6277: honor the incoming log kind (e.g. TEST_SCREENSHOT) so screenshots route correctly
|
|
179
|
+
// on the binary side; default to TEST_LOG for ordinary stdout/console logs.
|
|
180
|
+
logRecord.kind = kind ?? TestFrameworkConstants.KIND_LOG;
|
|
179
181
|
logRecord.message = Buffer.from(message);
|
|
180
182
|
logRecord.level = level;
|
|
181
183
|
logRecord.timestamp = timestamp;
|
|
@@ -20,6 +20,14 @@ export declare class GrpcClient {
|
|
|
20
20
|
* @returns {GrpcClient} The singleton instance
|
|
21
21
|
*/
|
|
22
22
|
static getInstance(): GrpcClient;
|
|
23
|
+
/**
|
|
24
|
+
* Helper method to get client worker ID from execution context or current context.
|
|
25
|
+
* This provides a consistent way to extract worker identification across all gRPC calls.
|
|
26
|
+
*
|
|
27
|
+
* @param executionContext - Optional execution context with threadId and processId
|
|
28
|
+
* @returns Worker ID string in format "threadId-processId"
|
|
29
|
+
*/
|
|
30
|
+
private getClientWorkerIdFromContext;
|
|
23
31
|
/**
|
|
24
32
|
* Initialize the gRPC client connection
|
|
25
33
|
* @param {string} host The gRPC server host
|
|
@@ -43,19 +51,27 @@ export declare class GrpcClient {
|
|
|
43
51
|
* @private
|
|
44
52
|
*/
|
|
45
53
|
stopBinSession(): Promise<unknown>;
|
|
46
|
-
testSessionEvent(data: Omit<TestSessionEventRequest, 'binSessionId'>): Promise<TestSessionEventResponse>;
|
|
54
|
+
testSessionEvent(data: Omit<TestSessionEventRequest, 'binSessionId'>): Promise<TestSessionEventResponse | undefined>;
|
|
47
55
|
/**
|
|
48
56
|
*
|
|
49
57
|
* Send TestFrameworkEvent
|
|
50
58
|
*/
|
|
51
|
-
testFrameworkEvent(data: Omit<TestFrameworkEventRequest, 'binSessionId'>): Promise<TestFrameworkEventResponse>;
|
|
59
|
+
testFrameworkEvent(data: Omit<TestFrameworkEventRequest, 'binSessionId'>): Promise<TestFrameworkEventResponse | undefined>;
|
|
52
60
|
/**
|
|
53
61
|
*
|
|
54
62
|
* Send driverInitEvent
|
|
55
63
|
*/
|
|
56
64
|
driverInitEvent(data: Omit<DriverInitRequest, 'binSessionId'>): Promise<DriverInitResponse>;
|
|
57
|
-
logCreatedEvent(data: Omit<LogCreatedEventRequest, 'binSessionId'>): Promise<LogCreatedEventResponse>;
|
|
65
|
+
logCreatedEvent(data: Omit<LogCreatedEventRequest, 'binSessionId'>): Promise<LogCreatedEventResponse | undefined>;
|
|
58
66
|
fetchDriverExecuteParamsEvent(data: Omit<FetchDriverExecuteParamsEventRequest, 'binSessionId'>): Promise<FetchDriverExecuteParamsEventResponse>;
|
|
67
|
+
/**
|
|
68
|
+
* Send TestOrchestration request to get ordered test files
|
|
69
|
+
* @param {string[]} testFiles - Array of test file paths
|
|
70
|
+
* @param {string} orchestrationStrategy - The orchestration strategy to use
|
|
71
|
+
* @param {string} orchestrationMetadata - Additional metadata for orchestration
|
|
72
|
+
* @returns {Promise<string[]|null>} Array of ordered test files or null if failed
|
|
73
|
+
*/
|
|
74
|
+
testOrchestrationSession(testFiles: string[], orchestrationStrategy: string, orchestrationMetadata: string): Promise<string[] | null>;
|
|
59
75
|
/**
|
|
60
76
|
* Get the gRPC channel
|
|
61
77
|
* @returns {grpc.Channel} The gRPC channel
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpcClient.d.ts","sourceRoot":"","sources":["../../src/cli/grpcClient.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,SAAS,EAeZ,MAAM,yCAAyC,CAAA;AAGhD,OAAO,KAAK,EAGR,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,EAEtB,iBAAiB,EACjB,oCAAoC,EACpC,yBAAyB,EACzB,uBAAuB,EACvB,0BAA0B,EAC1B,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,qCAAqC,
|
|
1
|
+
{"version":3,"file":"grpcClient.d.ts","sourceRoot":"","sources":["../../src/cli/grpcClient.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,SAAS,EAeZ,MAAM,yCAAyC,CAAA;AAGhD,OAAO,KAAK,EAGR,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,EAEtB,iBAAiB,EACjB,oCAAoC,EACpC,yBAAyB,EACzB,uBAAuB,EACvB,0BAA0B,EAC1B,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,qCAAqC,EAGxC,MAAM,yCAAyC,CAAA;AAIhD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAK7C;;;;;GAKG;AACH,qBAAa,UAAU;;IAGnB,YAAY,EAAE,MAAM,GAAC,SAAS,CAAA;IAC9B,aAAa,EAAE,MAAM,GAAC,SAAS,CAAA;IAC/B,OAAO,EAAE,GAAG,GAAC,IAAI,CAAO;IACxB,MAAM,EAAE,SAAS,GAAG,IAAI,CAAO;IAC/B,MAAM,sBAAe;;IAIrB;;;OAGG;IACH,MAAM,CAAC,WAAW;IAOlB;;;;;;OAMG;IACH,OAAO,CAAC,4BAA4B;IAIpC;;;;OAIG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAcnC;;;OAGG;IACH,OAAO;IAsCD,eAAe,CAAC,UAAU,EAAE,MAAM;IAuDxC;;;OAGG;IACG,iBAAiB;IAoCvB;;;;OAIG;IACG,cAAc;IAwCd,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,uBAAuB,EAAE,cAAc,CAAC;IA6D1E;;;OAGG;IAEG,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,yBAAyB,EAAE,cAAc,CAAC;IA8D9E;;;OAGG;IAEG,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,cAAc,CAAC;IAkC7D,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,sBAAsB,EAAE,cAAc,CAAC;IA8DlE,6BAA6B,CAAC,IAAI,EAAE,IAAI,CAAC,oCAAoC,EAAE,cAAc,CAAC;IAmCpG;;;;;;OAMG;IACG,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,qBAAqB,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;IA4C3I;;;OAGG;IACH,SAAS;IAIT;;;OAGG;IACH,UAAU;CAGb"}
|