🏡 index : quine-global/webdriverio.git

import { test, expect } from 'vitest'
import { remote } from 'webdriverio'
import AWS from '@aws-sdk/client-device-farm'

let browser: WebdriverIO.Browser | undefined

if (!process.env.AWS_ACCESS_KEY_ID || !process.env.AWS_SECRET_ACCESS_KEY) {
    throw new Error('Please provide AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY in your environment')
}

const projectArn = process.env.AWS_DEVICE_FARM_ARN
if (!projectArn) {
    throw new Error('Please provide AWS_DEVICE_FARM_ARN in your environment')
}

test('allow to attach to an existing session', async () => {
    return
    const devicefarm = new AWS.DeviceFarm({ region: 'us-west-2' })
    const testGridUrlResult = await devicefarm.createTestGridUrl({
        projectArn,
        expiresInSeconds: 600
    })

    if (!testGridUrlResult.url) {
        throw new Error('Could not create a test grid url')
    }

    const url = new URL(testGridUrlResult.url)
    browser = await remote({
        logLevel: 'trace',
        hostname: url.host,
        path: url.pathname,
        protocol: 'https',
        port: 443,
        connectionRetryTimeout: 180000,
        capabilities: {
            browserName: 'chrome',
        }
    })

    await browser.url('https://guinea-pig.webdriver.io/')

    const title = await browser.getTitle()
    expect(title).toBe('WebdriverJS Testpage')

    await browser.deleteSession()
})