一键导入
playwright-e2e
// writing, running, and debugging Playwright tests; creating and recreating scratch orgs (Dreamhouse, minimal, non-tracking); working with their output from github actions
// writing, running, and debugging Playwright tests; creating and recreating scratch orgs (Dreamhouse, minimal, non-tracking); working with their output from github actions
Polish the automated CHANGELOG for a release branch. Removes GUS refs, categorizes under-the-cover changes, improves customer-facing descriptions. Use when preparing/reviewing the changelog on a release branch, or when user mentions changelog quality.
Run the VS Code extension release workflow end-to-end. Use when publishing a release, running prerelease, verifying the release branch, polishing changelog for release, or installing release vsixes for verification.
Find open GitHub issues whose linked GUS work item is closed AND whose issue number appears in CHANGELOG.md, then close them. Use when user invokes /shipped-issues or asks to clean up shipped issues.
Use file-based span/log export for AI consumption. Where it lives, how to enable/clear, record format for Node and Web. Use when enabling span file dump, debugging traces for AI, or configuring local observability.
Author and use Wireit scripts for npm. Use when working with Wireit configuration, npm scripts, build pipelines, or when the user mentions Wireit.
Public API exported by salesforcedx-vscode-core activate(). Use when modifying SalesforceVSCodeCoreApi, the api object in activate(), exports from core index.ts, services sub-object, or evaluating whether a change to core is breaking. Also use when someone asks "does anything use X" for a core export.
| name | playwright-e2e |
| description | writing, running, and debugging Playwright tests; creating and recreating scratch orgs (Dreamhouse, minimal, non-tracking); working with their output from github actions |
Guidelines for writing and iterating on Playwright tests for VS Code extensions.
Read ALL before responding:
references/coding-playwright-tests.md - Writing testsreferences/local-setup.md - Scratch org setup (Dreamhouse, minimal, non-tracking)references/iterating-playwright-tests.md - Iterating on tests ("Things to ignore" for failure analysis)references/analyze-e2e.md - Analyzing E2E test results from CIShared code (helpers, locators, configuration) for tests.
Desktop workspace shapes (pick one per test):
prepareNoFolderOpenForPaletteTests(page) (runs Workspaces: Close Workspace + workbench wait). Or use closeWorkspaceToEmptyWindow if UI is already prepared.sfdx-project.json — createDesktopTest({ emptyWorkspace: true }); workspace path comes from createEmptyTestWorkspace() (also exported from the package).orgAlias: '…' (e.g. MINIMAL_ORG_ALIAS / DREAMHOUSE_ORG_ALIAS) so .sfdx/config.json gets target-org. Omit orgAlias or use undefined for no config.json (no org).multiPackageNoOrgDesktopTest (extend noOrgDesktopTest); creates a temp workspace with sfdx-project.json listing multiple packageDirectories (force-app, extra-pkg). Use multiPackageNoOrgTest from fixtures/index.ts in test files.VSIX mode (useVsix option):
createDesktopTest({ useVsix: true }) — installs built VSIXs into a hash-keyed cache dir (.vscode-test/ext-<hash>/) and launches VS Code with --extensions-dir instead of --extensionDevelopmentPath. Exercises real shipping artifact (bundled dist/, .vscodeignore, packageUpdates).extensionDependencies order (from each local package.json), so local dependency VSIXs install before dependents.process.env.E2E_FROM_VSIX === '1' — set in CI to enable without code changes.vscode:package to have run first (produces .vsix in package dir). test:desktop depends on vscode:package for this reason.Available local + CI/GHA.
~/.sf/vscode-spans/ — web-*.jsonl (test:web), node-*.jsonl (test:desktop)test-results/spans/ artifacts (see workflow upload/download in references/analyze-e2e.md)ls -lt ~/.sf/vscode-spans/rm -rf ~/.sf/vscode-spans/JSON.parsename, traceId, spanId, parentSpanId, durationMs, status, startTime, attributesSee .claude/skills/span-file-export/SKILL.md for enable/OTLP vs file.
If you aren't sure if orgs are set up locally,
sf org list
Look for the required org aliases (e.g., minimalTestOrg, nonTrackingTestOrg, orgBrowserDreamhouseTestOrg). If missing, create them using the appropriate setup commands from references/local-setup.md.
Pro tip: Use sf org list --json | jq '.result.scratchOrgs[] | select(.alias) | .alias' to list only scratch org aliases.
When running Playwright tests (npm run test:web, test:desktop, etc.), never block >30s. Use is_background: true so tests run while the AI continues. Check terminal output or output_file later.
See references/full-suite-execution.md for complete guide on running all E2E tests locally across all 9 packages in correct dependency order with failure analysis.
To run only your new test in CI while iterating:
branches-ignore in .github/workflows/*.yml that have push: branches-ignore: [main, develop] (e.g. testCommitExceptMain.yml, coreE2E.yml, orgBrowserE2E.yml, lwcPlaywrightE2E.yml, etc.)--grep "Your Test Title" to the test run command in the workflow you care aboutbranches-ignore, remove --grep, uncomment skipped steps