Skip to content

Create E2E Testing Infrastructure #164

@adriandarian

Description

@adriandarian

Create end-to-end testing infrastructure for VS Code extensions and web applications.

Details

Comprehensive E2E testing with real browser/VS Code automation and visual regression testing.

Testing Tools

VS Code Extension Testing

  • VS Code test runner
  • Extension host automation
  • Command palette testing
  • Settings manipulation
  • Workspace simulation
  • Multi-version testing

Web Application Testing

  • Playwright (primary)
  • Cypress (alternative)
  • Selenium (legacy support)
  • Mobile device testing
  • Cross-browser testing

Visual Regression

  • Percy
  • Chromatic
  • BackstopJS
  • Pixel-perfect comparisons

Test Environment

VS Code Test Environment

  • Isolated VS Code instance
  • Clean user settings
  • Test workspace setup
  • Extension installation
  • Fixture loading
  • Snapshot management

Web Test Environment

  • Local dev server
  • Mock backend services
  • Test databases
  • Authentication mocking
  • Network simulation
  • State management

Test Scenarios

VS Code Extension Tests

  • Extension activation
  • Command execution
  • UI interaction
  • Configuration changes
  • Language feature testing
  • Debugging scenarios
  • WebView testing

Web Application Tests

  • User authentication flow
  • Navigation and routing
  • Form submissions
  • Data persistence
  • Error handling
  • Responsive design
  • Performance

Workflow Integration

  • Run E2E tests on PRs (critical path)
  • Full E2E suite nightly
  • Visual regression on UI changes
  • Multi-platform testing
  • Record test runs for debugging
  • Retry flaky tests
  • Parallel test execution

Test Organization

e2e-tests/
  vscode/
    activation.test.ts
    commands.test.ts
    ui.test.ts
  web/
    auth.test.ts
    navigation.test.ts
    forms.test.ts
  visual/
    homepage.test.ts
    dashboard.test.ts
  fixtures/
    workspaces/
    data/
  helpers/
    setup.ts
    teardown.ts

Configuration

e2e:
  vscode:
    versions: ['stable', 'insiders']
    extensions: ['dependency-ext']
    workspace: 'fixtures/test-workspace'
  
  web:
    browsers: ['chromium', 'firefox', 'webkit']
    devices: ['Desktop', 'iPhone 13', 'iPad']
    base_url: 'http://localhost:3000'
  
  visual:
    threshold: 0.1
    enabled_for: ['main', 'production']

Test Data Management

  • Seed test databases
  • Generate realistic data
  • Anonymize production data
  • Clean up after tests
  • Maintain test fixtures
  • Version test data

Debugging Features

  • Screenshot on failure
  • Video recording
  • Console logs capture
  • Network request logging
  • Trace files
  • Debugging mode

Acceptance Criteria

  • VS Code extension testing working
  • Web application testing working
  • Visual regression functional
  • Multi-platform tests passing
  • Test data management solid
  • Debugging features helpful
  • CI integration complete
  • Documentation comprehensive
  • Test reliability >95%
  • Adopted by 5+ projects

Metadata

Metadata

Assignees

Type

Projects

Status

No status

Relationships

None yet

Development

No branches or pull requests

Issue actions