Skip to content

Commit

Permalink
fix(webdriverio): don't send desiredCapabilities anymore when initi…
Browse files Browse the repository at this point in the history
…alizing a session (#13622)

* fix(webdriverio): don't send desiredCapabilities anymore when initializing a session

* fix unit tests
  • Loading branch information
christian-bromann authored Sep 23, 2024
1 parent 5011fb6 commit 43778e7
Show file tree
Hide file tree
Showing 14 changed files with 94 additions and 211 deletions.
13 changes: 0 additions & 13 deletions __mocks__/fetch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -96,14 +96,6 @@ const requestMock: any = vi.fn().mockImplementation((uri, params) => {
sessionResponse.capabilities.browserName = body.capabilities.alwaysMatch.browserName
}

if (
body &&
body.desiredCapabilities &&
body.desiredCapabilities['sauce:options']
) {
sessionResponse.capabilities['sauce:options'] = body.desiredCapabilities['sauce:options']
}

if (body?.capabilities?.alwaysMatch?.browserName === 'bidi') {
sessionResponse.capabilities.webSocketUrl = 'ws://webdriver.io'
}
Expand All @@ -112,11 +104,6 @@ const requestMock: any = vi.fn().mockImplementation((uri, params) => {
case path:
value = sessionResponse

if (body.capabilities.alwaysMatch.browserName && body.capabilities.alwaysMatch.browserName.includes('noW3C')) {
value.desiredCapabilities = { browserName: 'mockBrowser' }
delete value.capabilities
}

if (body.capabilities.alwaysMatch.browserName && body.capabilities.alwaysMatch.browserName.includes('devtools')) {
value.capabilities['goog:chromeOptions'] = {
debuggerAddress: 'localhost:1234'
Expand Down
48 changes: 24 additions & 24 deletions packages/wdio-appium-service/tests/launcher.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { Readable, type Writable } from 'node:stream'

import { describe, expect, beforeEach, afterEach, test, vi } from 'vitest'
import { resolve } from 'import-meta-resolve'
import type { Capabilities, Options } from '@wdio/types'
import type { Capabilities } from '@wdio/types'

import AppiumLauncher from '../src/launcher.js'

Expand Down Expand Up @@ -79,7 +79,7 @@ class MockFailingProcess extends MockProcess {
class MockProcess2 implements Partial<ChildProcessByStdio<null, Readable, Readable>> {
pid: number
exitCode: number | null = null
signalCode: null
signalCode?: null
spawnargs: string[] = []
spawnfile: string = ''
stdin: null = null
Expand Down Expand Up @@ -145,7 +145,7 @@ describe('Appium launcher', () => {
command:'path/to/my_custom_appium',
args: { address: 'bar', defaultCapabilities: { 'foo': 'bar' } },
}
const capabilities = [{ port: 1234, deviceName: 'baz' }] as (Capabilities.DesiredCapabilities & Options.WebDriver)[]
const capabilities = [{ port: 1234, 'appium:deviceName': 'baz' }] as WebdriverIO.Capabilities[]
const launcher = new AppiumLauncher(options, capabilities, {} as any)
await launcher.onPrepare()

Expand Down Expand Up @@ -197,9 +197,9 @@ describe('Appium launcher', () => {
command: 'path/to/my_custom_appium',
args: { address: 'bar' }
}
const capabilities: Capabilities.MultiRemoteCapabilities = {
browserA: { port: 1234, capabilities: { deviceName: 'baz' } },
browserB: { capabilities: { deviceName: 'baz' } }
const capabilities: Capabilities.RequestedMultiremoteCapabilities = {
browserA: { port: 1234, capabilities: { 'appium:deviceName': 'baz' } },
browserB: { capabilities: { 'appium:deviceName': 'baz' } }
}
const launcher = new AppiumLauncher(options, capabilities, {} as any)
await launcher.onPrepare()
Expand All @@ -219,9 +219,9 @@ describe('Appium launcher', () => {
command: 'path/to/my_custom_appium',
args: { address: 'bar' }
}
const capabilities: Capabilities.MultiRemoteCapabilities = {
const capabilities: Capabilities.RequestedMultiremoteCapabilities = {
browserA: { port: 1234, capabilities: { browserName: 'chrome' } },
browserB: { capabilities: { deviceName: 'baz' } }
browserB: { capabilities: { 'appium:deviceName': 'baz' } }
}
const launcher = new AppiumLauncher(options, capabilities, {} as any)
await launcher.onPrepare()
Expand All @@ -241,12 +241,12 @@ describe('Appium launcher', () => {
command: 'path/to/my_custom_appium',
args: { address: 'bar' }
}
const capabilities: Capabilities.MultiRemoteCapabilities[] = [{
browserA: { port: 1234, capabilities: { deviceName: 'baz' } },
browserB: { capabilities: { deviceName: 'baz' } }
const capabilities: Capabilities.RequestedMultiremoteCapabilities[] = [{
browserA: { port: 1234, capabilities: { 'appium:deviceName': 'baz' } },
browserB: { capabilities: { 'appium:deviceName': 'baz' } }
}, {
browserC: { port: 5678, capabilities: { deviceName: 'baz' } },
browserD: { capabilities: { deviceName: 'baz' } }
browserC: { port: 5678, capabilities: { 'appium:deviceName': 'baz' } },
browserD: { capabilities: { 'appium:deviceName': 'baz' } }
}]
const launcher = new AppiumLauncher(options, capabilities, {} as any)
await launcher.onPrepare()
Expand Down Expand Up @@ -274,8 +274,8 @@ describe('Appium launcher', () => {
args : { address: 'foo' },
installArgs : { bar : 'bar' },
}
const capabilities: Capabilities.MultiRemoteCapabilities = {
browserA: { port: 1234, capabilities: { deviceName: 'baz' } },
const capabilities: Capabilities.RequestedMultiremoteCapabilities = {
browserA: { port: 1234, capabilities: { 'appium:deviceName': 'baz' } },
browserB: { port: 4321, capabilities: { 'bstack:options': {} } }
}
const launcher = new AppiumLauncher(options, capabilities, {} as any)
Expand All @@ -297,7 +297,7 @@ describe('Appium launcher', () => {
command: 'path/to/my_custom_appium',
args: { address:'bar', port: 1234 }
}
const capabilities = [{ deviceName: 'baz' } as Capabilities.DesiredCapabilities]
const capabilities = [{ 'appium:deviceName': 'baz' }] as WebdriverIO.Capabilities[]
const launcher = new AppiumLauncher(options, capabilities, {} as any)
await launcher.onPrepare()

Expand Down Expand Up @@ -342,7 +342,7 @@ describe('Appium launcher', () => {
test('should respect random Appium port', async () => {
vi.mocked(getPort).mockResolvedValueOnce(567567)

const capabilities = [{ deviceName: 'baz' } as Capabilities.DesiredCapabilities]
const capabilities = [{ 'appium:deviceName': 'baz' }] as WebdriverIO.Capabilities[]
const launcher = new AppiumLauncher({}, capabilities, {} as any)
await launcher.onPrepare()

Expand Down Expand Up @@ -387,7 +387,7 @@ describe('Appium launcher', () => {
command: 'path/to/my_custom_appium',
args: { address: 'bar', port: 1234, basePath: '/foo/bar' }
}
const capabilities = [{ port: 4321, deviceName: 'baz' } as Capabilities.DesiredCapabilities]
const capabilities = [{ port: 4321, 'appium:deviceName': 'baz' }] as WebdriverIO.Capabilities[]
const launcher = new AppiumLauncher(options, capabilities, {} as any)
await launcher.onPrepare()

Expand Down Expand Up @@ -598,7 +598,7 @@ describe('Appium launcher', () => {
command: 'path/to/my_custom_appium',
args: { address: 'bar', port: 1234, basePath: '/foo/bar' }
}
const capabilities = [{ browserName: 'baz' } as Capabilities.DesiredCapabilities]
const capabilities = [{ browserName: 'baz' }] as WebdriverIO.Capabilities[]
const launcher = new AppiumLauncher(options, capabilities, {} as any)
launcher['_startAppium'] = vi.fn().mockResolvedValue(new MockProcess())
await launcher.onPrepare()
Expand All @@ -617,9 +617,9 @@ describe('Appium launcher', () => {
command: 'path/to/my_custom_appium',
args: { address: 'bar' }
}
const capabilities: Capabilities.MultiRemoteCapabilities = {
const capabilities: Capabilities.RequestedMultiremoteCapabilities = {
browserA: { capabilities: { browserName: 'baz' } },
browserB: { capabilities: { deviceName: 'baz' } }
browserB: { capabilities: { 'appium:deviceName': 'baz' } }
}
const launcher = new AppiumLauncher(options, capabilities, {} as any)
await launcher.onPrepare()
Expand All @@ -639,12 +639,12 @@ describe('Appium launcher', () => {
command: 'path/to/my_custom_appium',
args: { address: 'bar' }
}
const capabilities: Capabilities.MultiRemoteCapabilities[] = [{
browserA: { port: 1234, capabilities: { deviceName: 'baz' } },
const capabilities: Capabilities.RequestedMultiremoteCapabilities[] = [{
browserA: { port: 1234, capabilities: { 'appium:deviceName': 'baz' } },
browserB: { capabilities: { browserName: 'baz' } }
}, {
browserC: { port: 5678, capabilities: { browserName: 'baz' } },
browserD: { capabilities: { deviceName: 'baz' } }
browserD: { capabilities: { 'appium:deviceName': 'baz' } }
}]
const launcher = new AppiumLauncher(options, capabilities, {} as any)
await launcher.onPrepare()
Expand Down
Loading

0 comments on commit 43778e7

Please sign in to comment.