From 83d93df066a37187e36b3b0f7f326fb9cd0a3b7f Mon Sep 17 00:00:00 2001 From: Anish Sinha Date: Wed, 4 Feb 2026 14:24:59 +0530 Subject: [PATCH 1/6] passed testName to performA11yScan and performCliScan for appAlly session --- .../src/cli/modules/accessibilityModule.ts | 23 ++++++++++++++----- .../wdio-browserstack-service/src/util.ts | 17 +++++++------- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/packages/wdio-browserstack-service/src/cli/modules/accessibilityModule.ts b/packages/wdio-browserstack-service/src/cli/modules/accessibilityModule.ts index 3ea8acb8ede..f5d0e15e0b9 100644 --- a/packages/wdio-browserstack-service/src/cli/modules/accessibilityModule.ts +++ b/packages/wdio-browserstack-service/src/cli/modules/accessibilityModule.ts @@ -34,6 +34,7 @@ export default class AccessibilityModule extends BaseModule { accessibilityMap: Map LOG_DISABLED_SHOWN: Map testMetadata: Record = {} + currentTestName: string | null = null // Track current test name constructor(accessibilityConfig: Accessibility, isNonBstackA11y: boolean) { super() @@ -107,7 +108,7 @@ export default class AccessibilityModule extends BaseModule { if (!this.accessibility && !this.isAppAccessibility){ return } - return await this.performScanCli(browser) + return await this.performScanCli(browser, undefined, this.isAppAccessibility ? (this.currentTestName || undefined) : undefined) } (browser as WebdriverIO.Browser).startA11yScanning = async () => { @@ -166,7 +167,7 @@ export default class AccessibilityModule extends BaseModule { !this.shouldPatchExecuteScript(args.length ? args[0] as string : null) ) { try { - await this.performScanCli(browser, command.name) + await this.performScanCli(browser, command.name, this.isAppAccessibility ? (this.currentTestName || undefined) : undefined) this.logger.debug(`Accessibility scan performed after ${command.name} command`) } catch (scanError) { this.logger.debug(`Error performing accessibility scan after ${command.name}: ${scanError}`) @@ -192,6 +193,9 @@ export default class AccessibilityModule extends BaseModule { const suiteTitle = (typeof args.suiteTitle === 'string' ? args.suiteTitle : '') || '' const test = (args.test && typeof args.test === 'object' ? args.test as { title?: string } : {}) || {} + // Store current test name for use in getAccessibilityResults/Summary + this.currentTestName = suiteTitle + const autoInstance: AutomationFrameworkInstance = AutomationFramework.getTrackedInstance() const testInstance: TestFrameworkInstance = TestFramework.getTrackedInstance() @@ -235,7 +239,7 @@ export default class AccessibilityModule extends BaseModule { if (!this.accessibility && !this.isAppAccessibility){ return } - const results = await this.performScanCli(browser) + const results = await this.performScanCli(browser, undefined, this.isAppAccessibility ? (this.currentTestName || undefined) : undefined) if (results){ const testIdentifier = String(testInstance.getContext().getId()) this.testMetadata[testIdentifier] = { @@ -276,6 +280,8 @@ export default class AccessibilityModule extends BaseModule { if (!autoInstance || !testInstance) { this.logger.error('No tracked instances found for accessibility after test') + // Clear current test name + this.currentTestName = null return } @@ -323,6 +329,10 @@ export default class AccessibilityModule extends BaseModule { } catch (error) { this.logger.error(`Accessibility results could not be processed for the test case. Error: ${error}`) + } finally { + // Clear current test name after test completes + this.currentTestName = null + this.logger.debug('[AccessibilityModule] Current test name cleared after test completion') } } @@ -362,7 +372,8 @@ export default class AccessibilityModule extends BaseModule { private async performScanCli( browser: WebdriverIO.Browser | WebdriverIO.MultiRemoteBrowser, - commandName?: string + commandName?: string, + testName?: string ): Promise | undefined> { return await PerformanceTester.measureWrapper( PERFORMANCE_SDK_EVENTS.A11Y_EVENTS.PERFORM_SCAN, @@ -374,7 +385,7 @@ export default class AccessibilityModule extends BaseModule { } if (this.isAppAccessibility) { const results: unknown = await (browser as WebdriverIO.Browser).execute( - formatString(this.scriptInstance.performScan, JSON.stringify(_getParamsForAppAccessibility(commandName))) as string, + formatString(this.scriptInstance.performScan, JSON.stringify(_getParamsForAppAccessibility(commandName, testName))) as string, {} ) BStackLogger.debug(util.format(results as string)) @@ -405,7 +416,7 @@ export default class AccessibilityModule extends BaseModule { if (this.accessibilityMap.get(sessionId)) { this.logger.debug('Performing scan before saving results') - await this.performScanCli(browser) + await this.performScanCli(browser, undefined, this.isAppAccessibility ? (this.currentTestName || undefined) : undefined) } if (this.isAppAccessibility) { diff --git a/packages/wdio-browserstack-service/src/util.ts b/packages/wdio-browserstack-service/src/util.ts index 22f50317068..f9139681fa8 100644 --- a/packages/wdio-browserstack-service/src/util.ts +++ b/packages/wdio-browserstack-service/src/util.ts @@ -566,19 +566,20 @@ export const formatString = (template: (string | null), ...values: (string | nul } // eslint-disable-next-line @typescript-eslint/no-explicit-any -export const _getParamsForAppAccessibility = ( commandName?: string ): { thTestRunUuid: any, thBuildUuid: any, thJwtToken: any, authHeader: any, scanTimestamp: number, method: string | undefined } => { +export const _getParamsForAppAccessibility = ( commandName?: string, testName?: string ): { thTestRunUuid: any, thBuildUuid: any, thJwtToken: any, authHeader: any, scanTimestamp: number, method: string | undefined, testName: string | undefined } => { return { 'thTestRunUuid': process.env.TEST_ANALYTICS_ID, 'thBuildUuid': process.env.BROWSERSTACK_TESTHUB_UUID, 'thJwtToken': process.env.BROWSERSTACK_TESTHUB_JWT, 'authHeader': process.env.BSTACK_A11Y_JWT, 'scanTimestamp': Date.now(), - 'method': commandName + 'method': commandName, + 'testName': testName } } /* eslint-disable @typescript-eslint/no-explicit-any */ -export const performA11yScan = async (isAppAutomate: boolean, browser: WebdriverIO.Browser | WebdriverIO.MultiRemoteBrowser, isBrowserStackSession?: boolean, isAccessibility?: boolean | string, commandName?: string) : Promise<{ [key: string]: any; } | undefined> => { +export const performA11yScan = async (isAppAutomate: boolean, browser: WebdriverIO.Browser | WebdriverIO.MultiRemoteBrowser, isBrowserStackSession?: boolean, isAccessibility?: boolean | string, commandName?: string, testName?: string) : Promise<{ [key: string]: any; } | undefined> => { if (!isAccessibilityAutomationSession(isAccessibility)) { BStackLogger.warn('Not an Accessibility Automation session, cannot perform Accessibility scan.') @@ -587,7 +588,7 @@ export const performA11yScan = async (isAppAutomate: boolean, browser: Webdriver try { if (isAppAccessibilityAutomationSession(isAccessibility, isAppAutomate)) { - const results: unknown = await (browser as WebdriverIO.Browser).execute(formatString(AccessibilityScripts.performScan, JSON.stringify(_getParamsForAppAccessibility(commandName))) as string, {}) + const results: unknown = await (browser as WebdriverIO.Browser).execute(formatString(AccessibilityScripts.performScan, JSON.stringify(_getParamsForAppAccessibility(commandName, testName))) as string, {}) BStackLogger.debug(util.format(results as string)) return ( results as { [key: string]: any; } | undefined ) } @@ -649,7 +650,7 @@ export const getAppA11yResults = PerformanceTester.measureWrapper(PERFORMANCE_SD } }) -export const getAppA11yResultsSummary = PerformanceTester.measureWrapper(PERFORMANCE_SDK_EVENTS.A11Y_EVENTS.GET_RESULTS_SUMMARY, async (isAppAutomate: boolean, browser: WebdriverIO.Browser, isBrowserStackSession?: boolean, isAccessibility?: boolean | string, sessionId?: string | null) : Promise<{ [key: string]: any; }> => { +export const getAppA11yResultsSummary = PerformanceTester.measureWrapper(PERFORMANCE_SDK_EVENTS.A11Y_EVENTS.GET_RESULTS_SUMMARY, async (isAppAutomate: boolean, browser: WebdriverIO.Browser, isBrowserStackSession?: boolean, isAccessibility?: boolean | string, sessionId?: string | null, testName?: string) : Promise<{ [key: string]: any; }> => { if (!isBrowserStackSession) { return {} // since we are running only on Automate as of now } @@ -661,7 +662,7 @@ export const getAppA11yResultsSummary = PerformanceTester.measureWrapper(PERFORM try { const apiUrl = `${APIUtils.APP_ALLY_ENDPOINT}/${APP_ALLY_ISSUES_SUMMARY_ENDPOINT}` - const apiRespone = await getAppA11yResultResponse(apiUrl, isAppAutomate, browser, isBrowserStackSession, isAccessibility, sessionId) + const apiRespone = await getAppA11yResultResponse(apiUrl, isAppAutomate, browser, isBrowserStackSession, isAccessibility, sessionId, testName) const result = apiRespone?.data?.data?.summary BStackLogger.debug(`Polling Result: ${JSON.stringify(result)}`) return result @@ -671,9 +672,9 @@ export const getAppA11yResultsSummary = PerformanceTester.measureWrapper(PERFORM } }) -const getAppA11yResultResponse = async (apiUrl: string, isAppAutomate: boolean, browser: WebdriverIO.Browser, isBrowserStackSession?: boolean, isAccessibility?: boolean | string, sessionId?: string | null) : Promise => { +const getAppA11yResultResponse = async (apiUrl: string, isAppAutomate: boolean, browser: WebdriverIO.Browser, isBrowserStackSession?: boolean, isAccessibility?: boolean | string, sessionId?: string | null, testName?: string) : Promise => { BStackLogger.debug('Performing scan before getting results summary') - await performA11yScan(isAppAutomate, browser, isBrowserStackSession, isAccessibility) + await performA11yScan(isAppAutomate, browser, isBrowserStackSession, isAccessibility, testName) const upperTimeLimit = process.env.BSTACK_A11Y_POLLING_TIMEOUT ? Date.now() + parseInt(process.env.BSTACK_A11Y_POLLING_TIMEOUT) * 1000 : Date.now() + 30000 const params = { test_run_uuid: process.env.TEST_ANALYTICS_ID, session_id: sessionId, timestamp: Date.now() } // Query params to pass const header = { Authorization: `Bearer ${process.env.BSTACK_A11Y_JWT}` } From 78a55456c94f9619898bdc9b69cde81133091fb8 Mon Sep 17 00:00:00 2001 From: Anish Kumar Sinha Date: Wed, 4 Feb 2026 16:22:50 +0530 Subject: [PATCH 2/6] Update accessibilityModule.ts --- .../src/cli/modules/accessibilityModule.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/wdio-browserstack-service/src/cli/modules/accessibilityModule.ts b/packages/wdio-browserstack-service/src/cli/modules/accessibilityModule.ts index f5d0e15e0b9..176bbd144e9 100644 --- a/packages/wdio-browserstack-service/src/cli/modules/accessibilityModule.ts +++ b/packages/wdio-browserstack-service/src/cli/modules/accessibilityModule.ts @@ -34,7 +34,7 @@ export default class AccessibilityModule extends BaseModule { accessibilityMap: Map LOG_DISABLED_SHOWN: Map testMetadata: Record = {} - currentTestName: string | null = null // Track current test name + currentTestName: string | null = null constructor(accessibilityConfig: Accessibility, isNonBstackA11y: boolean) { super() From 3dcbd34cb36d70a4217888cc87dbf0521be2b630 Mon Sep 17 00:00:00 2001 From: Anish Sinha Date: Thu, 5 Feb 2026 16:52:14 +0530 Subject: [PATCH 3/6] Fixed eslint error --- .../src/cli/modules/accessibilityModule.ts | 14 +++++++------- packages/wdio-browserstack-service/src/util.ts | 12 ++++++------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/wdio-browserstack-service/src/cli/modules/accessibilityModule.ts b/packages/wdio-browserstack-service/src/cli/modules/accessibilityModule.ts index 176bbd144e9..2d324ee2722 100644 --- a/packages/wdio-browserstack-service/src/cli/modules/accessibilityModule.ts +++ b/packages/wdio-browserstack-service/src/cli/modules/accessibilityModule.ts @@ -90,7 +90,7 @@ export default class AccessibilityModule extends BaseModule { //patching getA11yResultsSummary (browser as WebdriverIO.Browser).getAccessibilityResultsSummary = async () => { if (this.isAppAccessibility) { - return await getAppA11yResultsSummary(true, browser, isBrowserstackSession, this.accessibility, sessionId) + return await getAppA11yResultsSummary(true, browser, this.currentTestName, isBrowserstackSession, this.accessibility, sessionId) } return await this.getA11yResultsSummary(browser) } @@ -98,7 +98,7 @@ export default class AccessibilityModule extends BaseModule { //patching getA11yResults (browser as WebdriverIO.Browser).getAccessibilityResults = async () => { if (this.isAppAccessibility) { - return await getAppA11yResults(true, browser, isBrowserstackSession, this.accessibility, sessionId) + return await getAppA11yResults(true, browser, this.currentTestName, isBrowserstackSession, this.accessibility, sessionId) } return await this.getA11yResults(browser) } @@ -108,7 +108,7 @@ export default class AccessibilityModule extends BaseModule { if (!this.accessibility && !this.isAppAccessibility){ return } - return await this.performScanCli(browser, undefined, this.isAppAccessibility ? (this.currentTestName || undefined) : undefined) + return await this.performScanCli(browser) } (browser as WebdriverIO.Browser).startA11yScanning = async () => { @@ -167,7 +167,7 @@ export default class AccessibilityModule extends BaseModule { !this.shouldPatchExecuteScript(args.length ? args[0] as string : null) ) { try { - await this.performScanCli(browser, command.name, this.isAppAccessibility ? (this.currentTestName || undefined) : undefined) + await this.performScanCli(browser, command.name) this.logger.debug(`Accessibility scan performed after ${command.name} command`) } catch (scanError) { this.logger.debug(`Error performing accessibility scan after ${command.name}: ${scanError}`) @@ -239,7 +239,7 @@ export default class AccessibilityModule extends BaseModule { if (!this.accessibility && !this.isAppAccessibility){ return } - const results = await this.performScanCli(browser, undefined, this.isAppAccessibility ? (this.currentTestName || undefined) : undefined) + const results = await this.performScanCli(browser) if (results){ const testIdentifier = String(testInstance.getContext().getId()) this.testMetadata[testIdentifier] = { @@ -373,7 +373,6 @@ export default class AccessibilityModule extends BaseModule { private async performScanCli( browser: WebdriverIO.Browser | WebdriverIO.MultiRemoteBrowser, commandName?: string, - testName?: string ): Promise | undefined> { return await PerformanceTester.measureWrapper( PERFORMANCE_SDK_EVENTS.A11Y_EVENTS.PERFORM_SCAN, @@ -384,6 +383,7 @@ export default class AccessibilityModule extends BaseModule { return } if (this.isAppAccessibility) { + const testName=this.currentTestName || undefined const results: unknown = await (browser as WebdriverIO.Browser).execute( formatString(this.scriptInstance.performScan, JSON.stringify(_getParamsForAppAccessibility(commandName, testName))) as string, {} @@ -416,7 +416,7 @@ export default class AccessibilityModule extends BaseModule { if (this.accessibilityMap.get(sessionId)) { this.logger.debug('Performing scan before saving results') - await this.performScanCli(browser, undefined, this.isAppAccessibility ? (this.currentTestName || undefined) : undefined) + await this.performScanCli(browser) } if (this.isAppAccessibility) { diff --git a/packages/wdio-browserstack-service/src/util.ts b/packages/wdio-browserstack-service/src/util.ts index f9139681fa8..4d807495b68 100644 --- a/packages/wdio-browserstack-service/src/util.ts +++ b/packages/wdio-browserstack-service/src/util.ts @@ -579,7 +579,7 @@ export const _getParamsForAppAccessibility = ( commandName?: string, testName?: } /* eslint-disable @typescript-eslint/no-explicit-any */ -export const performA11yScan = async (isAppAutomate: boolean, browser: WebdriverIO.Browser | WebdriverIO.MultiRemoteBrowser, isBrowserStackSession?: boolean, isAccessibility?: boolean | string, commandName?: string, testName?: string) : Promise<{ [key: string]: any; } | undefined> => { +export const performA11yScan = async (isAppAutomate: boolean, browser: WebdriverIO.Browser | WebdriverIO.MultiRemoteBrowser, isBrowserStackSession?: boolean, isAccessibility?: boolean | string, testName?: string, commandName?: string) : Promise<{ [key: string]: any; } | undefined> => { if (!isAccessibilityAutomationSession(isAccessibility)) { BStackLogger.warn('Not an Accessibility Automation session, cannot perform Accessibility scan.') @@ -627,7 +627,7 @@ export const getA11yResults = PerformanceTester.measureWrapper(PERFORMANCE_SDK_E } }) -export const getAppA11yResults = PerformanceTester.measureWrapper(PERFORMANCE_SDK_EVENTS.A11Y_EVENTS.GET_RESULTS, async (isAppAutomate: boolean, browser: WebdriverIO.Browser, isBrowserStackSession?: boolean, isAccessibility?: boolean | string, sessionId?: string | null) : Promise> => { +export const getAppA11yResults = PerformanceTester.measureWrapper(PERFORMANCE_SDK_EVENTS.A11Y_EVENTS.GET_RESULTS, async (isAppAutomate: boolean, browser: WebdriverIO.Browser, testName: string, isBrowserStackSession?: boolean, isAccessibility?: boolean | string, sessionId?: string | null) : Promise> => { if (!isBrowserStackSession) { return [] // since we are running only on Automate as of now } @@ -639,7 +639,7 @@ export const getAppA11yResults = PerformanceTester.measureWrapper(PERFORMANCE_SD try { const apiUrl = `${APIUtils.APP_ALLY_ENDPOINT}/${APP_ALLY_ISSUES_ENDPOINT}` - const apiRespone = await getAppA11yResultResponse(apiUrl, isAppAutomate, browser, isBrowserStackSession, isAccessibility, sessionId) + const apiRespone = await getAppA11yResultResponse(apiUrl, isAppAutomate, browser, testName, isBrowserStackSession, isAccessibility, sessionId) const result = apiRespone?.data?.data?.issues BStackLogger.debug(`Polling Result: ${JSON.stringify(result)}`) return result @@ -650,7 +650,7 @@ export const getAppA11yResults = PerformanceTester.measureWrapper(PERFORMANCE_SD } }) -export const getAppA11yResultsSummary = PerformanceTester.measureWrapper(PERFORMANCE_SDK_EVENTS.A11Y_EVENTS.GET_RESULTS_SUMMARY, async (isAppAutomate: boolean, browser: WebdriverIO.Browser, isBrowserStackSession?: boolean, isAccessibility?: boolean | string, sessionId?: string | null, testName?: string) : Promise<{ [key: string]: any; }> => { +export const getAppA11yResultsSummary = PerformanceTester.measureWrapper(PERFORMANCE_SDK_EVENTS.A11Y_EVENTS.GET_RESULTS_SUMMARY, async (isAppAutomate: boolean, browser: WebdriverIO.Browser, testName: string, isBrowserStackSession?: boolean, isAccessibility?: boolean | string, sessionId?: string | null) : Promise<{ [key: string]: any; }> => { if (!isBrowserStackSession) { return {} // since we are running only on Automate as of now } @@ -662,7 +662,7 @@ export const getAppA11yResultsSummary = PerformanceTester.measureWrapper(PERFORM try { const apiUrl = `${APIUtils.APP_ALLY_ENDPOINT}/${APP_ALLY_ISSUES_SUMMARY_ENDPOINT}` - const apiRespone = await getAppA11yResultResponse(apiUrl, isAppAutomate, browser, isBrowserStackSession, isAccessibility, sessionId, testName) + const apiRespone = await getAppA11yResultResponse(apiUrl, isAppAutomate, browser, testName, isBrowserStackSession, isAccessibility, sessionId) const result = apiRespone?.data?.data?.summary BStackLogger.debug(`Polling Result: ${JSON.stringify(result)}`) return result @@ -672,7 +672,7 @@ export const getAppA11yResultsSummary = PerformanceTester.measureWrapper(PERFORM } }) -const getAppA11yResultResponse = async (apiUrl: string, isAppAutomate: boolean, browser: WebdriverIO.Browser, isBrowserStackSession?: boolean, isAccessibility?: boolean | string, sessionId?: string | null, testName?: string) : Promise => { +const getAppA11yResultResponse = async (apiUrl: string, isAppAutomate: boolean, browser: WebdriverIO.Browser, testName: string, isBrowserStackSession?: boolean, isAccessibility?: boolean | string, sessionId?: string | null) : Promise => { BStackLogger.debug('Performing scan before getting results summary') await performA11yScan(isAppAutomate, browser, isBrowserStackSession, isAccessibility, testName) const upperTimeLimit = process.env.BSTACK_A11Y_POLLING_TIMEOUT ? Date.now() + parseInt(process.env.BSTACK_A11Y_POLLING_TIMEOUT) * 1000 : Date.now() + 30000 From 94e79db9752fdb32e61369d691fba938f4929fd5 Mon Sep 17 00:00:00 2001 From: Anish Sinha Date: Thu, 5 Feb 2026 17:16:03 +0530 Subject: [PATCH 4/6] removed comments --- .../src/cli/modules/accessibilityModule.ts | 6 +----- packages/wdio-browserstack-service/src/util.ts | 4 ++-- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/packages/wdio-browserstack-service/src/cli/modules/accessibilityModule.ts b/packages/wdio-browserstack-service/src/cli/modules/accessibilityModule.ts index 2d324ee2722..96fdd48e21c 100644 --- a/packages/wdio-browserstack-service/src/cli/modules/accessibilityModule.ts +++ b/packages/wdio-browserstack-service/src/cli/modules/accessibilityModule.ts @@ -193,9 +193,7 @@ export default class AccessibilityModule extends BaseModule { const suiteTitle = (typeof args.suiteTitle === 'string' ? args.suiteTitle : '') || '' const test = (args.test && typeof args.test === 'object' ? args.test as { title?: string } : {}) || {} - // Store current test name for use in getAccessibilityResults/Summary this.currentTestName = suiteTitle - const autoInstance: AutomationFrameworkInstance = AutomationFramework.getTrackedInstance() const testInstance: TestFrameworkInstance = TestFramework.getTrackedInstance() @@ -280,7 +278,6 @@ export default class AccessibilityModule extends BaseModule { if (!autoInstance || !testInstance) { this.logger.error('No tracked instances found for accessibility after test') - // Clear current test name this.currentTestName = null return } @@ -330,7 +327,6 @@ export default class AccessibilityModule extends BaseModule { } catch (error) { this.logger.error(`Accessibility results could not be processed for the test case. Error: ${error}`) } finally { - // Clear current test name after test completes this.currentTestName = null this.logger.debug('[AccessibilityModule] Current test name cleared after test completion') } @@ -372,7 +368,7 @@ export default class AccessibilityModule extends BaseModule { private async performScanCli( browser: WebdriverIO.Browser | WebdriverIO.MultiRemoteBrowser, - commandName?: string, + commandName?: string ): Promise | undefined> { return await PerformanceTester.measureWrapper( PERFORMANCE_SDK_EVENTS.A11Y_EVENTS.PERFORM_SCAN, diff --git a/packages/wdio-browserstack-service/src/util.ts b/packages/wdio-browserstack-service/src/util.ts index 4d807495b68..035433fc872 100644 --- a/packages/wdio-browserstack-service/src/util.ts +++ b/packages/wdio-browserstack-service/src/util.ts @@ -579,7 +579,7 @@ export const _getParamsForAppAccessibility = ( commandName?: string, testName?: } /* eslint-disable @typescript-eslint/no-explicit-any */ -export const performA11yScan = async (isAppAutomate: boolean, browser: WebdriverIO.Browser | WebdriverIO.MultiRemoteBrowser, isBrowserStackSession?: boolean, isAccessibility?: boolean | string, testName?: string, commandName?: string) : Promise<{ [key: string]: any; } | undefined> => { +export const performA11yScan = async (isAppAutomate: boolean, browser: WebdriverIO.Browser | WebdriverIO.MultiRemoteBrowser, isBrowserStackSession?: boolean, isAccessibility?: boolean | string, commandName?: string, testName?: string,) : Promise<{ [key: string]: any; } | undefined> => { if (!isAccessibilityAutomationSession(isAccessibility)) { BStackLogger.warn('Not an Accessibility Automation session, cannot perform Accessibility scan.') @@ -674,7 +674,7 @@ export const getAppA11yResultsSummary = PerformanceTester.measureWrapper(PERFORM const getAppA11yResultResponse = async (apiUrl: string, isAppAutomate: boolean, browser: WebdriverIO.Browser, testName: string, isBrowserStackSession?: boolean, isAccessibility?: boolean | string, sessionId?: string | null) : Promise => { BStackLogger.debug('Performing scan before getting results summary') - await performA11yScan(isAppAutomate, browser, isBrowserStackSession, isAccessibility, testName) + await performA11yScan(isAppAutomate, browser, isBrowserStackSession, isAccessibility, undefined, testName) const upperTimeLimit = process.env.BSTACK_A11Y_POLLING_TIMEOUT ? Date.now() + parseInt(process.env.BSTACK_A11Y_POLLING_TIMEOUT) * 1000 : Date.now() + 30000 const params = { test_run_uuid: process.env.TEST_ANALYTICS_ID, session_id: sessionId, timestamp: Date.now() } // Query params to pass const header = { Authorization: `Bearer ${process.env.BSTACK_A11Y_JWT}` } From 205ef744f432a48d297f8d65276b31b45f881907 Mon Sep 17 00:00:00 2001 From: Anish Sinha Date: Fri, 6 Feb 2026 13:31:46 +0530 Subject: [PATCH 5/6] updated unit test cases --- packages/wdio-browserstack-service/tests/util.test.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/wdio-browserstack-service/tests/util.test.ts b/packages/wdio-browserstack-service/tests/util.test.ts index 28edc4acc5a..086f6b3d0fc 100644 --- a/packages/wdio-browserstack-service/tests/util.test.ts +++ b/packages/wdio-browserstack-service/tests/util.test.ts @@ -1987,7 +1987,7 @@ describe('getAppA11yResults', () => { capabilities: {} } as unknown as WebdriverIO.Browser - const result = await getAppA11yResults(true, browser, false, true) + const result = await getAppA11yResults(true, browser, 'testName', false, true) expect(result).toEqual([]) }) @@ -1998,7 +1998,7 @@ describe('getAppA11yResults', () => { capabilities: {} } as unknown as WebdriverIO.Browser - const result = await getAppA11yResults(true, browser, true, false) + const result = await getAppA11yResults(true, browser, 'testName', true, false) expect(result).toEqual([]) expect(logInfoMock.mock.calls[0][0]) .toContain('Not an Accessibility Automation session, cannot retrieve Accessibility results summary.') @@ -2020,7 +2020,7 @@ describe('getAppA11yResults', () => { vi.spyOn(utils, 'isAppAccessibilityAutomationSession').mockReturnValue(true) vi.spyOn(utils, 'performA11yScan').mockResolvedValue(undefined) - const result = await getAppA11yResults(true, browser, true, true, 'session123') + const result = await getAppA11yResults(true, browser, 'testName', true, true, 'session123') expect(result).toEqual(mockResults) @@ -2036,7 +2036,7 @@ describe('getAppA11yResults', () => { capabilities: {} } as unknown as WebdriverIO.Browser - const result = await getAppA11yResults(true, browser, true, true, 'session123') + const result = await getAppA11yResults(true, browser, 'testName', true, true, 'session123') expect(result).toEqual([]) }) }) From e03677fe06011ec05da96ecda5c2a1703c657f47 Mon Sep 17 00:00:00 2001 From: Anish Kumar Sinha Date: Thu, 5 Mar 2026 18:47:05 +0530 Subject: [PATCH 6/6] Update currentTestName assignment in accessibilityModule --- .../src/cli/modules/accessibilityModule.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/wdio-browserstack-service/src/cli/modules/accessibilityModule.ts b/packages/wdio-browserstack-service/src/cli/modules/accessibilityModule.ts index 96fdd48e21c..d71be0fe25c 100644 --- a/packages/wdio-browserstack-service/src/cli/modules/accessibilityModule.ts +++ b/packages/wdio-browserstack-service/src/cli/modules/accessibilityModule.ts @@ -193,7 +193,7 @@ export default class AccessibilityModule extends BaseModule { const suiteTitle = (typeof args.suiteTitle === 'string' ? args.suiteTitle : '') || '' const test = (args.test && typeof args.test === 'object' ? args.test as { title?: string } : {}) || {} - this.currentTestName = suiteTitle + this.currentTestName = test.title || null const autoInstance: AutomationFrameworkInstance = AutomationFramework.getTrackedInstance() const testInstance: TestFrameworkInstance = TestFramework.getTrackedInstance()