Skip to content

feat(e2e): add test:e2e target using WebdriverIO (DEVX-987)#197

Open
peter-smith-phd wants to merge 8 commits into
mainfrom
devx-987-add-teste2e-target-using-webdriverio
Open

feat(e2e): add test:e2e target using WebdriverIO (DEVX-987)#197
peter-smith-phd wants to merge 8 commits into
mainfrom
devx-987-add-teste2e-target-using-webdriverio

Conversation

@peter-smith-phd

@peter-smith-phd peter-smith-phd commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

Summary

Add a framework for end-to-end testing of LocalStack Toolkit for VS Code. The existing VS Code extension was implemented under a tight deadline, and didn't have extensive e2e tests added. This PR adds the framework for e2e testing, but only adds a simple test case to prove that it works. More e2e tests still need to be added later.

Details:

  • Adds a pnpm test:e2e target (WebdriverIO + wdio-vscode-service) driving the extension's real rendered UI in an Extension Development Host, independent of the existing in-process vscode-test suite (pnpm test)
  • Adds a demonstration suite (test/e2e/specs/resource-browser.e2e.ts) that deploys a small serverless application (S3, Lambda, IAM, SQS, SNS) via Terraform against a real LocalStack instance, and verifies the Resources tree / Resource Details panel end to end
  • Adds a test-e2e CI job in build.yml.

Things to review (before we generate a lot more test cases).

  • Are we using the correct testing packages (WebdriverIO etc)?
  • Is the directory layout suitable?
  • Are the test specs well structured?
  • Does the CI configuration make sense? (Note: I haven't added the visual regression checks - that can come later).

Fixes DEVX-987.

🤖 Generated with Claude Code

@peter-smith-phd peter-smith-phd changed the title Add test:e2e target using WebdriverIO (DEVX-987) feat(e2e): add test:e2e target using WebdriverIO (DEVX-987) Jul 12, 2026
peter-smith-phd and others added 8 commits July 15, 2026 11:56
Adds proposal, design, spec, and tasks artifacts for DEVX-987
(WebdriverIO + wdio-vscode-service e2e test framework, wired small-app
demonstration fixture across S3/Lambda/IAM/SQS/SNS, and CI job).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Adds a pnpm test:e2e target (WebdriverIO + wdio-vscode-service) that drives
the extension's real rendered UI in a genuine Extension Development Host,
independent of the existing in-process vscode-test suite. Includes a
demonstration suite that deploys a small wired serverless application
(S3, Lambda, IAM, SQS, SNS) via Terraform against a real LocalStack
instance and verifies the Resources tree/Resource Details end to end, plus
a new CI job wiring it into every pull request.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The first real CI run failed with "terraform not found in PATH" —
unlike Docker, Terraform isn't preinstalled on ubuntu-latest.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
CI's e2e run failed with the tree showing no resources, but the only
existing signal was silence — lstk.ts previously only surfaced
stdout/stderr when a command failed. Logging on success too so the next
CI run's output actually shows what lstk start/tf apply did.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
AWSConfig.getClientConfig only worked for the default `localstack`
profile if ~/.aws/config happened to have a matching section, so a
fresh install (no AWS config at all) showed duplicate, errored
`Profile: localstack` rows and an empty Resources tree. Every
LocalStack-managed profile now resolves its endpoint/credentials
statically instead, matching the convention already used for
`localstack#<accountId>` entries.

Verified by moving ~/.aws/config and ~/.aws/credentials aside and
re-running the e2e demonstration suite end-to-end.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The first real CI run got past the profile-resolution fix and through
three of five Resource Details reads, then hit a stale element
reference inside webview.open() — a race between the previous
webview's teardown and the next one's creation, only reproducible on
CI's Linux/xvfb runner. Retry the whole fetch-then-open cycle instead
of just the initial wait.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…extract shared helpers

Splits the single test into focused per-resource cases, moves generic
TreeItem/webview helpers into test/e2e/support/{resourcesView,resourceDetails}.ts
for reuse by future suites, and drops the temporary "WDIO E2E" naming from the
deployed fixture's resource names/descriptions.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@peter-smith-phd peter-smith-phd force-pushed the devx-987-add-teste2e-target-using-webdriverio branch from 5370461 to 637a097 Compare July 14, 2026 23:59
@peter-smith-phd peter-smith-phd marked this pull request as ready for review July 15, 2026 00:05
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