Skip to content

feat: add Digital.ai Testing device provider#262

Open
Arundoss-digitalai wants to merge 1 commit into
empirical-run:mainfrom
Arundoss-digitalai:feat/add-digitalai-provider
Open

feat: add Digital.ai Testing device provider#262
Arundoss-digitalai wants to merge 1 commit into
empirical-run:mainfrom
Arundoss-digitalai:feat/add-digitalai-provider

Conversation

@Arundoss-digitalai

Copy link
Copy Markdown

Adds Digital.ai Testing as a supported device provider in Appwright, alongside the existing BrowserStack and LambdaTest integrations.

Changes

  • src/providers/digitalai/index.tsDigitalAiDeviceProvider implementing the DeviceProvider interface: app upload (local file or HTTP URL), Appium WebDriver session creation via Digital.ai cloud hub, and test status reporting via executeScript("seetest:client.setReportStatus", ...)
  • src/providers/digitalai/utils.tsgetAuthHeader() helper using DIGITALAI_ACCESS_KEY
  • src/providers/index.ts — registered "digitalai" in the provider switch
  • src/types/index.ts — added DigitalAiConfig type and included it in the DeviceConfig union
  • src/fixture/index.ts — moved syncTestDetails before device.close(): required because Digital.ai status sync uses executeScript on a live WebDriver session; BrowserStack and LambdaTest are unaffected (they use REST with a stored sessionId)
  • docs/config.md — documented provider and required env vars (DIGITALAI_ACCESS_KEY, DIGITALAI_CLOUD_SERVER)
  • README.md — added Digital.ai to the provider list with a sample config snippet

Required environment variables

  • DIGITALAI_ACCESS_KEY — access key from the Digital.ai Testing portal
  • DIGITALAI_CLOUD_SERVER — tenant URL, e.g. https://cloud.seetest.io

Testing

  • Android — tested end-to-end on a real Digital.ai device (Galaxy S24, Android 14): app upload, session creation, and test status reporting all working
  • iOS — code path is identical to Android; device query and session creation follow the same Appium capability structure

Adds Digital.ai Testing as a supported device provider, following the same pattern as BrowserStack and LambdaTest.

- DigitalAiDeviceProvider: uploads app binary, creates Appium WebDriver session via Digital.ai cloud hub, reports test status via executeScript
- DigitalAiConfig type added to DeviceConfig union
- Registered digitalai in the provider switch
- Fixture: syncTestDetails moved before device.close() — required because Digital.ai status sync uses executeScript on a live session
- Docs and README updated
@changeset-bot

changeset-bot Bot commented Jun 26, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: c46c662

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
appwright Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant