Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Consolidate e2e tests: Migrate BASH to GO framework #4644

Copy link
Copy link

Description

@efiacor
Issue body actions

Title: Consolidate e2e tests: Migrate BASH to GO framework

Problem

Two separate e2e test suites exist for live functionality (acknowledged in e2e/README.md as needing reconciliation):

  • GO-based (e2e/live_test.go): declarative fixture tests
  • BASH-based (e2e/live/end-to-end-test.sh): procedural scenario tests

Both run every PR, creating maintenance burden and scenario duplication.

Solution

Single unified GO-based e2e test suite handling all scenarios.

Implementation approach

  1. Extend GO test framework for sequential scenarios

    • Add multi-step test support to pkg/test/runner
    • Create scenario YAML format (like current fixtures)
    • No Ginkgo/Gomega needed - standard Go testing sufficient
  2. Restructure test infrastructure

    • Move pkg/test/runner/e2e/framework/runner/
    • Move pkg/test/live/e2e/framework/live/
    • Clarifies: production code in pkg/, e2e infrastructure in e2e/
  3. Migrate all BASH scenarios to fixtures

    • Init commands and variations
    • Stdin input handling
    • Error and RBAC scenarios
    • Symlink handling
    • Custom filename support
  4. Add multi-version testing via matrix

    • Parametrize K8s version in framework
    • Use GitHub Actions matrix for parallel testing
    • Replaces BASH version loop
  5. Clean up

    • Delete e2e/live/end-to-end-test.sh
    • Delete .github/workflows/e2eEnvironment.yml
    • Consolidate to single workflow

What gets migrated

20+ BASH scenarios covering:

  • Initialization (init, init --force, init --quiet, custom filenames)
  • Stdin operations (apply/status/destroy from stdin)
  • Error handling (RBAC, continue-on-error)
  • Advanced scenarios (symlinks, custom ResourceGroup names)
  • Multi-version testing (K8s 1.21-1.36)

Benefits

Single maintainable suite, no new dependencies, cleaner project structure, faster tests, full coverage retained.

Reactions are currently unavailable

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/livegoPull requests that update Go codePull requests that update Go codetask

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

    Morty Proxy This is a proxified and sanitized view of the page, visit original site.