Skip to content

fix(webdriverio): detect Samsung devices as Android in BrowserStack#14531

Merged
christian-bromann merged 1 commit intomainfrom
cb/isAndroid-in-bs
Jun 2, 2025
Merged

fix(webdriverio): detect Samsung devices as Android in BrowserStack#14531
christian-bromann merged 1 commit intomainfrom
cb/isAndroid-in-bs

Conversation

@christian-bromann
Copy link
Member

@christian-bromann christian-bromann commented Jun 2, 2025

Proposed changes

Improves Android device detection in WebdriverIO's environment detector by adding support for Samsung devices when using BrowserStack. Previously, the isAndroid function would not properly detect Samsung devices as Android devices when running tests through BrowserStack, which could lead to incorrect environment detection and potentially affect mobile-specific test logic.

This change adds a new condition to check for Samsung devices via bsOptions.deviceName pattern matching, ensuring that Samsung Galaxy devices (and other Samsung devices) are correctly identified as Android devices in BrowserStack environments.

fixes #14529

Types of changes

  • Polish (an improvement for an existing feature)
  • Bugfix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update (improvements to the project's docs)
  • Specification changes (updates to WebDriver command specifications)
  • Internal updates (everything related to internal scripts, governance documentation and CI files)

Checklist

  • I have read the CONTRIBUTING doc
  • I have added tests that prove my fix is effective or that my feature works
  • I have added the necessary documentation (if appropriate)
  • I have added proper type definitions for new commands (if appropriate)

Backport Request

  • This change is solely for v9 and doesn't need to be back-ported
  • Back-ported PR at #XXXXX

Further comments

This fix addresses a gap in Android device detection specifically for BrowserStack users testing on Samsung devices. The change is minimal and safe:

  • Single line addition: Only adds one new condition to the existing logic
  • Pattern-based detection: Uses case-insensitive regex matching for "Samsung" in device names
  • Comprehensive test coverage: Added realistic test case with Samsung Galaxy S25 configuration
  • Backward compatible: No existing functionality is modified, only enhanced

The fix ensures that Samsung devices are properly detected as Android across different cloud testing providers, improving the reliability of mobile testing workflows.

Reviewers: @webdriverio/project-committers

- Add Samsung device name detection to isAndroid function
- Include test case for Samsung Galaxy S25 device detection
- Improve Android platform detection for BrowserStack Samsung devices
@christian-bromann christian-bromann added the PR: Bug Fix 🐛 PRs that contain bug fixes label Jun 2, 2025
@christian-bromann christian-bromann merged commit f460f00 into main Jun 2, 2025
9 checks passed
@christian-bromann christian-bromann deleted the cb/isAndroid-in-bs branch June 2, 2025 16:10
@pkg-pr-new
Copy link

pkg-pr-new bot commented Jun 2, 2025

Open in StackBlitz

eslint-plugin-wdio

npm i https://pkg.pr.new/webdriverio/webdriverio/eslint-plugin-wdio@14531

@wdio/allure-reporter

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/allure-reporter@14531

@wdio/appium-service

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/appium-service@14531

@wdio/browser-runner

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/browser-runner@14531

@wdio/browserstack-service

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/browserstack-service@14531

@wdio/cli

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/cli@14531

@wdio/concise-reporter

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/concise-reporter@14531

@wdio/config

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/config@14531

@wdio/cucumber-framework

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/cucumber-framework@14531

@wdio/dot-reporter

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/dot-reporter@14531

@wdio/firefox-profile-service

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/firefox-profile-service@14531

@wdio/globals

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/globals@14531

@wdio/jasmine-framework

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/jasmine-framework@14531

@wdio/json-reporter

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/json-reporter@14531

@wdio/junit-reporter

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/junit-reporter@14531

@wdio/lighthouse-service

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/lighthouse-service@14531

@wdio/local-runner

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/local-runner@14531

@wdio/logger

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/logger@14531

@wdio/mocha-framework

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/mocha-framework@14531

@wdio/protocols

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/protocols@14531

@wdio/repl

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/repl@14531

@wdio/reporter

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/reporter@14531

@wdio/runner

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/runner@14531

@wdio/sauce-service

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/sauce-service@14531

@wdio/shared-store-service

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/shared-store-service@14531

@wdio/smoke-test-cjs-service

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/smoke-test-cjs-service@14531

@wdio/smoke-test-reporter

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/smoke-test-reporter@14531

@wdio/smoke-test-service

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/smoke-test-service@14531

@wdio/spec-reporter

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/spec-reporter@14531

@wdio/static-server-service

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/static-server-service@14531

@wdio/sumologic-reporter

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/sumologic-reporter@14531

@wdio/testingbot-service

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/testingbot-service@14531

@wdio/types

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/types@14531

@wdio/utils

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/utils@14531

@wdio/webdriver-mock-service

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/webdriver-mock-service@14531

webdriver

npm i https://pkg.pr.new/webdriverio/webdriverio/webdriver@14531

webdriverio

npm i https://pkg.pr.new/webdriverio/webdriverio@14531

commit: d63b777

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

PR: Bug Fix 🐛 PRs that contain bug fixes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[🐛 Bug]: Inconsistent behaviour when using isAndroid with Browserstack

1 participant