redis / redis/redisctl

epic: Testing infrastructure and strategy

Open
#628 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

epic testing
Dominant language
Rust
Stars
18
Forks
3
Avg merge
2d 18h
Merged PRs (30d)
28

Description

Testing and automation roadmap

This issue tracks the remaining testing and automation work for redisctl. The original inventory was useful, but it no longer reflected the project's current coverage after the 2026 cleanup.

Current state (2026-07-29)

The repository now has broad automated coverage across all three crates:

  • CLI parsing/basic coverage: 359 tests
  • CLI mocked command coverage: 40 tests
  • Profile integration coverage: 42 tests
  • Core configuration/workflow integration coverage
  • MCP Cloud request/response coverage: 151 tests
  • MCP Enterprise request/response coverage: 113 tests
  • MCP Enterprise live Docker suite: 23 ignored tests
  • Redis and Redis Stack live Docker suites

CI currently enforces:

  • formatting and strict clippy
  • unit tests per crate
  • workspace integration tests
  • Linux, macOS, and Windows builds
  • coverage reporting on main
  • strict MkDocs and Rust API documentation builds

Completed

  • Establish CI formatting, lint, unit, integration, and platform-build gates
  • Add coverage reporting on main
  • Add strict documentation and API-documentation builds
  • Add broad Cloud and Enterprise MCP request-shape coverage
  • Add shared policy-state fixtures and string/number coercion coverage (#1001 / #1073)
  • Add a bounded live Enterprise mutation suite for databases, roles, and users (#998 / #1074)
  • Add async workflow and utility coverage

Remaining

Hosted test infrastructure
  • Provision a supported self-hosted or scheduled Enterprise test environment
  • Define license/secret rotation and environment-reset ownership for Enterprise tests
  • Provision a dedicated Cloud test account
  • Add Cloud spend limits, orphan-resource cleanup, and scheduled test runs

These are intentionally not part of normal pull-request CI until their credentials, cost controls, and cleanup guarantees are in place.

Targeted coverage
  • Add regression tests when polling/workflow edge cases are found
  • Add output-format edge-case tests alongside relevant bug fixes
  • Expand live suites when an endpoint cannot be represented faithfully by strict mock tests
Contributor documentation
  • Add a dedicated TESTING.md covering local tiers, Docker prerequisites, ignored live tests, and CI expectations (#1075, #1076)
  • Decide whether test/coverage badges improve the README

Local commands

cargo fmt --all -- --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test --workspace --all-features

# Requires the corresponding local services and credentials.
cargo test -p redisctl-mcp --features enterprise \
  --test enterprise_mcp_docker_integration_tests \
  -- --ignored --test-threads=1

This remains an epic. New testing work should either close one of the checkboxes above or be filed as a focused issue and linked here.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading TESTING.md and the remaining checkboxes in this epic, then run the listed cargo commands to understand the current local and CI coverage. A contribution should first become a focused issue with defined scope; done means one checkbox is completed with its ownership, credentials, cleanup, or test expectations documented and verified.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, rust
Domain
devops, documentation, testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.