Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[v6] Fix platform/device determination #610

Merged
merged 20 commits into from
Sep 18, 2024
6 changes: 3 additions & 3 deletions src/metadata.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@ export class Metadata {
// Fixes: https://github.com/webdriverio-community/wdio-cucumberjs-json-reporter/issues/73
? data.capabilities['cjson:metadata'] as cjson_metadata
// Fallback
: (browser as WebdriverIOExtended)?.requestedCapabilities?.cjson_metadata
: (browser as WebdriverIOExtended)?.requestedCapabilities?.['cjson:metadata'] as cjson_metadata
: {}
const metadata: cjson_metadata = (currentConfigCapabilities as W3CCapabilitiesExtended)?.cjson_metadata
const metadata: cjson_metadata = (currentConfigCapabilities as W3CCapabilitiesExtended)?.['cjson:metadata']
|| w3cCaps // When an app is used to test
|| (optsCaps as DesiredCapabilitiesExtended)?.cjson_metadata // devtools
|| (optsCaps as DesiredCapabilitiesExtended)?.['cjson:metadata'] // devtools
|| {} as cjson_metadata

// When an app is used to test
Expand Down
8 changes: 4 additions & 4 deletions src/types/wdio.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,27 +13,27 @@ import type { cjson_metadata } from '../types'
import { W3CCapabilities } from '@wdio/types/build/Capabilities'

export interface W3CCapabilitiesExtended extends W3CCapabilities {
cjson_metadata?: cjson_metadata
'cjson:metadata'?: cjson_metadata
app?: string
}

export interface DesiredCapabilitiesExtended extends WebdriverIO.Capabilities {
cjson_metadata?: cjson_metadata
'cjson:metadata'?: cjson_metadata
app?: string
}

export interface TestrunnerExtended extends Options.Testrunner {
jsonFolder?: string
language?: string
cjson_metadata?: cjson_metadata
'cjson:metadata'?: cjson_metadata
logFile?: string
stdout?: boolean
writeStream?: WriteStream
}
export interface WebdriverIOExtended extends Options.WebdriverIO {
app?: string
requestedCapabilities?: {
cjson_metadata?: cjson_metadata
'cjson:metadata'?: cjson_metadata
w3cCaps: {
alwaysMatch?: {
foo?: true
Expand Down
6 changes: 3 additions & 3 deletions tests/__mocks__/mocks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ export const FULL_RUNNER_STATS: RunnerStatsExtended = {
cid: '0-0',
capabilities:
<DesiredCapabilitiesExtended>{
cjson_metadata: {} as cjson_metadata,
'cjson:metadata': {} as cjson_metadata,
acceptInsecureCerts: false,
acceptSslCerts: false,
applicationCacheEnabled: false,
Expand Down Expand Up @@ -154,7 +154,7 @@ export const FULL_RUNNER_STATS: RunnerStatsExtended = {
capabilities: {},
jsonFolder: '',
language: 'en',
cjson_metadata: {
'cjson:metadata': {
app: {
name: 'test',
version: '1'
Expand Down Expand Up @@ -196,7 +196,7 @@ export const WDIO6_RUNNER_STATS: RunnerStatsExtended = {
config: <TestrunnerExtended>{
jsonFolder: '',
language: 'en',
cjson_metadata: {} as cjson_metadata,
'cjson:metadata': {} as cjson_metadata,
logFile: '',
stdout: true,
writeStream: {} as WriteStream,
Expand Down
10 changes: 5 additions & 5 deletions tests/metadata.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,7 @@ describe('metadata', () => {

it('should return app metadata based on the current.config.capabilities[\'cjson:metadata\'].app', () => {
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
(FULL_RUNNER_STATS.capabilities as W3CCapabilitiesExtended).cjson_metadata!.app = {
(FULL_RUNNER_STATS.capabilities as W3CCapabilitiesExtended)['cjson:metadata']!.app = {
name: 'mock-appName',
version: 'mock-appVersion',
}
Expand All @@ -274,7 +274,7 @@ describe('metadata', () => {
expect(determinePlatformVersionSpy).toHaveBeenCalledTimes(1)

// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
delete (FULL_RUNNER_STATS.capabilities as W3CCapabilitiesExtended).cjson_metadata!.app
delete (FULL_RUNNER_STATS.capabilities as W3CCapabilitiesExtended)['cjson:metadata']!.app
determineAppDataSpy.mockClear()
})

Expand All @@ -300,7 +300,7 @@ describe('metadata', () => {
requestedCapabilities: {
w3cCaps: {
alwaysMatch: {
cjson_metadata: {},
'cjson:metadata': {},
},
},
},
Expand All @@ -323,7 +323,7 @@ describe('metadata', () => {
},
capabilities: {
browserName: 'chrome',
cjson_metadata: {},
'cjson:metadata': {},
},
} as WebdriverIOExtended,
}
Expand All @@ -341,7 +341,7 @@ describe('metadata', () => {
options: {
capabilities: {
browserName: 'chrome',
cjson_metadata: {},
'cjson:metadata': {},
},
} as WebdriverIOExtended,
}
Expand Down
Loading