Skip to content

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

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

feat(e2e): add test:e2e target using WebdriverIO (DEVX-987)#197
peter-smith-phd wants to merge 7 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 the 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) that drives 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.

Fixes DEVX-987.

🤖 Generated with Claude Code

peter-smith-phd and others added 3 commits July 13, 2026 06:15
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>
@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 4 commits July 13, 2026 10:37
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>
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