Skip to content

Functional testing: Tier C — Full regression and API validation #45

Description

@renecannao

Tier C: Full Regression Suite

Comprehensive validation of all features shipped in Phases 1-3.

Pre-requisites

Chi Router Regression (v1 API)

Verify critical v1 API endpoints still work after the martini→chi migration:

  • GET /api/clusters — list clusters
  • GET /api/cluster/{alias} — cluster instances
  • GET /api/instance/{host}/{port} — instance detail
  • GET /api/topology/{cluster} — topology view
  • GET /api/problems — replication problems
  • GET /api/audit-recovery — audit trail
  • PUT /api/begin-maintenance/{host}/{port}/{reason} — begin maintenance
  • PUT /api/end-maintenance/{host}/{port} — end maintenance
  • GET /api/cluster-info/{alias} — cluster info
  • GET /api/master/{alias} — cluster master
  • Static file serving: CSS, JS, images load correctly

API v2 Validation

  • GET /api/v2/clusters — returns V2APIResponse envelope
  • GET /api/v2/clusters/{alias} — cluster detail
  • GET /api/v2/clusters/{alias}/instances — instances in cluster
  • GET /api/v2/instances/{host}/{port} — instance detail with proper 404 on not-found
  • GET /api/v2/topology/{cluster} — topology
  • GET /api/v2/recoveries — recovery list
  • GET /api/v2/status — status endpoint
  • GET /api/v2/proxysql/servers — ProxySQL servers
  • Error responses return proper HTTP status codes (not 200)

Prometheus Metrics

  • /metrics returns valid Prometheus exposition format
  • orchestrator_instances_total gauge has a value > 0
  • orchestrator_clusters_total gauge has a value > 0
  • orchestrator_discoveries_total counter increments over time
  • Metrics are scrapeable by a Prometheus instance (optional: add Prometheus container)

Health Endpoints

  • /health/live returns 200 always
  • /health/ready returns 200 when healthy, 503 when backend unreachable
  • /health/leader returns 200 (non-raft mode)

Database Provider

  • Verify GetProvider() returns MySQL provider at runtime
  • Verify provider methods work against real MySQL instances

Web UI

  • Homepage loads without errors
  • Cluster topology visualization renders
  • Navigation works (clusters, search, audit)

Findings

(To be updated as tests run)

Bugs Found

(To be updated — each bug gets its own issue)

Depends on #43 (Tier A) and #44 (Tier B).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions