Skip to content

feat(e2e/go): E2E tests for the Go SDK #3028

Description

@jiripetrlik

User Story

As a contributor working on OpenShell Go SDK I want mise run e2e:go to run E2E tests against a real
gateway. Regressions in sandbox lifecycle, exec, provider credential injection, and workspace management will be caught before they reach SDK consumers.

Problem Statement

The Go SDK (sdk/go/) is tested only by unit tests and sdk/go/openshell/v1/integration_test.go, which is only a very basic smoke E2E test. New E2E Go SDK test suite should be able to catch issues with:

  • protocol schema mismatches between the Go SDK and the actual gateway build
  • sandbox lifecycle can be managed by the Go SDK
  • provider credentials management using the Go SDK
  • workspace management

Impact / Why This Matters

The Go SDK (sdk/go/) is tested mostly by unit tests. These tests mock the transport and never talk to a real openshell-gateway. Which means that currently:

  • A gateway change can silently break every Go SDK consumer
  • Contributors have no mise run entry point to test Go SDK changes end-to-end before opening PR

Proposed Design

  • Separate module: E2E tests live in e2e/go/
  • No SDK changes: sdk/go/ is untouched

Possible design can be found in draft PR: jiripetrlik#1

Acceptance Criteria

  • e2e/go/ is a separate Go module
  • All e2e files has //go:build e2e
  • Sandbox tests cover CRUD
  • Provider tests assert placeholders (not raw secrets)
  • Workspace tests cover CRUD
  • AGENTS.md documents the e2e/go/ conventions
  • mise run pre-commit passes; commits are DCO-signed and follow Conventional Commits

Alternatives Considered

  • Rely on unit tests - can be faster to test, but many possible bugs can be missed
  • Put the e2e tests inside `sdk/go/ - put E2E tests to a separated directory is much more clear

Agent Investigation

No response

Checklist

  • I've reviewed existing issues and the architecture docs
  • This is a design proposal, not a "please build this" request

Metadata

Metadata

Assignees

No one assigned

    Labels

    state:triage-neededOpened without agent diagnostics and needs triage

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions