From 3a5dfff804071d605b278851a61c07af788da8d0 Mon Sep 17 00:00:00 2001 From: Jaromir Obr Date: Wed, 24 Sep 2025 13:14:07 +0000 Subject: [PATCH] Normalize platformName in Appium helper and add unit test --- lib/helper/Appium.js | 6 +- .../Appium_platformNameNormalization_test.js | 55 +++++++++++++++++++ 2 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 test/unit/Appium_platformNameNormalization_test.js diff --git a/lib/helper/Appium.js b/lib/helper/Appium.js index c01841bab..a092e1b31 100644 --- a/lib/helper/Appium.js +++ b/lib/helper/Appium.js @@ -261,11 +261,13 @@ class Appium extends Webdriver { this.platform = null if (config.capabilities[`${vendorPrefix.appium}:platformName`]) { - this.platform = config.capabilities[`${vendorPrefix.appium}:platformName`].toLowerCase() + config.capabilities[`${vendorPrefix.appium}:platformName`] = config.capabilities[`${vendorPrefix.appium}:platformName`].toLowerCase() + this.platform = config.capabilities[`${vendorPrefix.appium}:platformName`] } if (config.capabilities.platformName) { - this.platform = config.capabilities.platformName.toLowerCase() + config.capabilities.platformName = config.capabilities.platformName.toLowerCase() + this.platform = config.capabilities.platformName } return config diff --git a/test/unit/Appium_platformNameNormalization_test.js b/test/unit/Appium_platformNameNormalization_test.js new file mode 100644 index 000000000..8de722f95 --- /dev/null +++ b/test/unit/Appium_platformNameNormalization_test.js @@ -0,0 +1,55 @@ +const { expect } = require('chai') +const Appium = require('../../lib/helper/Appium') + +describe('Appium platformName normalization', () => { + it('should normalize platformName to lowercase for Android', () => { + const app = new Appium({ + platform: 'Android', + desiredCapabilities: { + platformName: 'Android', + }, + }) + const config = app._validateConfig({ + platform: 'Android', + desiredCapabilities: { + platformName: 'Android', + }, + }) + expect(config.capabilities.platformName).to.equal('android') + expect(app.platform).to.equal('android') + }) + + it('should normalize platformName to lowercase for iOS', () => { + const app = new Appium({ + platform: 'iOS', + desiredCapabilities: { + platformName: 'iOS', + }, + }) + const config = app._validateConfig({ + platform: 'iOS', + desiredCapabilities: { + platformName: 'iOS', + }, + }) + expect(config.capabilities.platformName).to.equal('ios') + expect(app.platform).to.equal('ios') + }) + + it('should not change platformName if already lowercase', () => { + const app = new Appium({ + platform: 'android', + desiredCapabilities: { + platformName: 'android', + }, + }) + const config = app._validateConfig({ + platform: 'android', + desiredCapabilities: { + platformName: 'android', + }, + }) + expect(config.capabilities.platformName).to.equal('android') + expect(app.platform).to.equal('android') + }) +})