Skip to content

Conversation

@clyang82
Copy link
Contributor

@clyang82 clyang82 commented Dec 5, 2025

Summary

  • Add comprehensive test documentation in test/TEST.md
  • Documents all test types: unit, integration, E2E, upgrade, and long running tests
  • Includes detailed coverage of all E2E configurations from CI workflows
  • Provides local test execution guide and troubleshooting tips

Key Sections

  1. Unit and Integration Tests: MQTT and gRPC broker testing
  2. E2E Tests: 4 different configurations
    • Standard E2E (2 replicas, TLS)
    • Broadcast subscription (3 replicas)
    • Istio service mesh
    • gRPC broker
  3. Upgrade Tests: Backward compatibility validation with 3-phase testing
  4. Long Running Tests: Daily automated tests on Azure AKS
  5. Manual E2E Tests: Upgrade testing on custom clusters
  6. Local Testing Guide: Prerequisites, setup, and commands

Important Notes

  • Emphasizes that upgrade tests MUST pass before delivering new versions
  • Documents all GitHub Actions workflows (e2e.yml, longrunning.yml, manual-e2e.yml)
  • Provides practical commands for developers to run tests locally

Test plan

  • Documentation is comprehensive and covers all test types
  • All workflow references are accurate
  • Commands and examples are correct
  • Table of contents links work correctly

🤖 Generated with Claude Code

@coderabbitai
Copy link

coderabbitai bot commented Dec 5, 2025

Walkthrough

A new comprehensive test documentation file is added at test/README.md providing a centralized reference for Maestro's testing strategy, including Unit, Integration, E2E, Upgrade, Long Running, and Manual E2E tests, with configuration examples, environment variables, and CI workflows.

Changes

Cohort / File(s) Change Summary
Test Documentation
test/README.md
New file: Comprehensive testing guide documenting test types, locations, running commands, configuration examples, environment variables, CI workflows, test scenarios, and local prerequisites for multiple test configurations (MQTT, gRPC, Istio, TLS, broadcast subscriptions, Azure AKS).

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

  • Documentation content review only; straightforward reference material with no code or logic to evaluate

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Add comprehensive test documentation' directly and clearly summarizes the main change - adding test documentation to the repository.
Description check ✅ Passed The description is well-organized and directly related to the changeset, covering all test types, configurations, key sections, and the new documentation file structure.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
test/TEST.md (1)

274-274: Use hyphens for compound adjectives: "Long-Running Tests".

In lines 274, 276, 308, and 344, the term "Long Running Tests" appears in section headers and body text. When "long" and "running" function together as a compound adjective modifying a noun (e.g., "long-running tests"), they should be hyphenated per standard English grammar conventions.

Apply these diffs to fix the hyphenation:

- ## Long Running Tests
+ ## Long-Running Tests
- Long running tests execute daily on real Azure AKS clusters to validate production-like scenarios.
+ Long-running tests execute daily on real Azure AKS clusters to validate production-like scenarios.
- ### Running Long Running Tests
+ ### Running Long-Running Tests
- The manual E2E test performs the same upgrade testing sequence as the long running tests:
+ The manual E2E test performs the same upgrade testing sequence as the long-running tests:

Additionally, update the Table of Contents entry at line 11:

- - [Long Running Tests](#long-running-tests)
+ - [Long-Running Tests](#long-running-tests)

Also applies to: 276-276, 308-308, 344-344

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between d0b44e2 and 2b5a2a4.

📒 Files selected for processing (1)
  • test/TEST.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
test/TEST.md

[uncategorized] ~107-~107: The official name of this software platform is spelled with a capital “H”.
Context: ..._MAESTRO_TLS=true ``` CI Workflow: .github/workflows/e2e.yml (job: `e2e`) --- #...

(GITHUB)


[uncategorized] ~131-~131: The official name of this software platform is spelled with a capital “H”.
Context: ...SUBSCRIPTION=true ``` CI Workflow: .github/workflows/e2e.yml (job: `e2e-broadcast...

(GITHUB)


[uncategorized] ~154-~154: The official name of this software platform is spelled with a capital “H”.
Context: ...ENABLE_ISTIO=true ``` CI Workflow: .github/workflows/e2e.yml (job: `e2e-with-isti...

(GITHUB)


[uncategorized] ~179-~179: The official name of this software platform is spelled with a capital “H”.
Context: ..._MAESTRO_TLS=true ``` CI Workflow: .github/workflows/e2e.yml (job: `e2e-grpc-brok...

(GITHUB)


[uncategorized] ~254-~254: The official name of this software platform is spelled with a capital “H”.
Context: ...make upgrade-test ``` CI Workflow: .github/workflows/e2e.yml (job: `upgrade`) ##...

(GITHUB)


[grammar] ~274-~274: Use a hyphen to join words.
Context: ... Verify status propagation --- ## Long Running Tests Long running tests execut...

(QB_NEW_EN_HYPHEN)


[grammar] ~276-~276: Use a hyphen to join words.
Context: ...gation --- ## Long Running Tests Long running tests execute daily on real Azur...

(QB_NEW_EN_HYPHEN)


[grammar] ~308-~308: Use a hyphen to join words.
Context: ...m with latest versions ### Running Long Running Tests Automated: Runs daily...

(QB_NEW_EN_HYPHEN)


[grammar] ~344-~344: Use a hyphen to join words.
Context: ...ame upgrade testing sequence as the long running tests: 1. Initial E2E Test ...

(QB_NEW_EN_HYPHEN)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
  • GitHub Check: Red Hat Konflux / maestro-e2e-on-pull-request
  • GitHub Check: Red Hat Konflux / maestro-on-pull-request
  • GitHub Check: e2e-with-istio
  • GitHub Check: e2e-grpc-broker
  • GitHub Check: upgrade
  • GitHub Check: e2e-broadcast-subscription
  • GitHub Check: e2e
🔇 Additional comments (2)
test/TEST.md (2)

1-471: Documentation is comprehensive and well-structured.

This is a thorough addition to the testing documentation that systematizes the Maestro testing strategy across multiple dimensions (unit, integration, E2E, upgrade, long-running, and manual tests). The document includes practical setup instructions, command references, environment variables, and CI workflow mappings.

The coverage of E2E configurations (4 variants: standard, broadcast subscription, Istio, gRPC) is particularly valuable. The three-phase upgrade test strategy and long-running test infrastructure details provide good context for different testing scenarios.


220-220: Verify the linked upgrade documentation file exists.

Line 220 references a relative link to upgrade/README.md. Please confirm that test/upgrade/README.md exists in the repository, or update the link if the file is located elsewhere.


### Prerequisites

- Go 1.24.4+
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🌐 Web query:

Go programming language latest version 2025

💡 Result:

The latest stable Go release is Go 1.25 — current patch: go1.25.5 (released December 2, 2025). [1][2]

Sources:

  • Go release history / 1.25 release notes and patch list. [1]
  • go.dev VERSION file showing go1.25.x. [2]

🏁 Script executed:

# Check if the file exists and view the context around line 394
if [ -f "test/TEST.md" ]; then
  echo "=== File found, viewing lines 390-400 ==="
  sed -n '390,400p' test/TEST.md
else
  echo "File not found at test/TEST.md, searching for TEST.md..."
  find . -name "TEST.md" -type f 2>/dev/null | head -5
fi

Repository: openshift-online/maestro

Length of output: 192


Consider updating the Go version requirement to reflect current stable release.

Go 1.24.4+ is a valid requirement, but Go 1.25 (released December 2025) is now the latest stable version. If this documentation targets the current Maestro release, update the prerequisite to Go 1.25+ for clarity and to align with current best practices.

🤖 Prompt for AI Agents
In test/TEST.md around line 394, the documented Go prerequisite reads "Go
1.24.4+"; update this to the current stable release by changing the requirement
to "Go 1.25+" (or "Go 1.25.0+" if you prefer explicit patch level) so the docs
reflect the latest supported Go version; update any related mentions or
footnotes in the file to remain consistent.

This commit adds TEST.md to provide a complete overview of all testing
strategies in the Maestro project, including:

- Unit and integration tests (MQTT and gRPC)
- E2E tests for different configurations:
  - Standard E2E (2 replicas, TLS)
  - Broadcast subscription (3 replicas)
  - Istio service mesh
  - gRPC broker
- Upgrade tests with backward compatibility validation
- Long running tests on Azure AKS clusters
- Manual E2E and upgrade tests on custom clusters
- Local test execution guide
- CI/CD workflow documentation

The documentation emphasizes the importance of running upgrade tests
before delivering new versions to ensure compatibility with existing
deployments.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Signed-off-by: clyang82 <[email protected]>
@clyang82 clyang82 force-pushed the add-test-documentation branch from 2b5a2a4 to fede813 Compare December 5, 2025 07:20
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (1)
test/README.md (1)

394-394: Update Go version prerequisite to reflect the current stable release.

Go 1.25.5 was released December 2, 2025 and is the current stable version. The documented prerequisite of Go 1.24.4+ is outdated. Update this to Go 1.25+ to align with current best practices and match the stability guarantees of modern Maestro deployments.

Apply this diff:

- Go 1.24.4+
+ Go 1.25+
🧹 Nitpick comments (1)
test/README.md (1)

274-344: Apply hyphenation to "long-running" when used as a compound adjective.

When "long running" is used as a modifier before a noun, it should be hyphenated as "long-running" per English grammar conventions.

Apply these diffs to correct the hyphenation:

- ## Long Running Tests
+ ## Long-Running Tests
- Long running tests execute daily on real Azure AKS clusters to validate production-like scenarios.
+ Long-running tests execute daily on real Azure AKS clusters to validate production-like scenarios.
- ### Running Long Running Tests
+ ### Running Long-Running Tests
- The manual E2E test performs the same upgrade testing sequence as the long running tests:
+ The manual E2E test performs the same upgrade testing sequence as the long-running tests:
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 2b5a2a4 and fede813.

📒 Files selected for processing (1)
  • test/README.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
test/README.md

[uncategorized] ~107-~107: The official name of this software platform is spelled with a capital “H”.
Context: ..._MAESTRO_TLS=true ``` CI Workflow: .github/workflows/e2e.yml (job: `e2e`) --- #...

(GITHUB)


[uncategorized] ~131-~131: The official name of this software platform is spelled with a capital “H”.
Context: ...SUBSCRIPTION=true ``` CI Workflow: .github/workflows/e2e.yml (job: `e2e-broadcast...

(GITHUB)


[uncategorized] ~154-~154: The official name of this software platform is spelled with a capital “H”.
Context: ...ENABLE_ISTIO=true ``` CI Workflow: .github/workflows/e2e.yml (job: `e2e-with-isti...

(GITHUB)


[uncategorized] ~179-~179: The official name of this software platform is spelled with a capital “H”.
Context: ..._MAESTRO_TLS=true ``` CI Workflow: .github/workflows/e2e.yml (job: `e2e-grpc-brok...

(GITHUB)


[uncategorized] ~254-~254: The official name of this software platform is spelled with a capital “H”.
Context: ...make upgrade-test ``` CI Workflow: .github/workflows/e2e.yml (job: `upgrade`) ##...

(GITHUB)


[grammar] ~274-~274: Use a hyphen to join words.
Context: ... Verify status propagation --- ## Long Running Tests Long running tests execut...

(QB_NEW_EN_HYPHEN)


[grammar] ~276-~276: Use a hyphen to join words.
Context: ...gation --- ## Long Running Tests Long running tests execute daily on real Azur...

(QB_NEW_EN_HYPHEN)


[grammar] ~308-~308: Use a hyphen to join words.
Context: ...m with latest versions ### Running Long Running Tests Automated: Runs daily...

(QB_NEW_EN_HYPHEN)


[grammar] ~344-~344: Use a hyphen to join words.
Context: ...ame upgrade testing sequence as the long running tests: 1. Initial E2E Test ...

(QB_NEW_EN_HYPHEN)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
  • GitHub Check: Red Hat Konflux / maestro-e2e-on-pull-request
  • GitHub Check: Red Hat Konflux / maestro-on-pull-request
  • GitHub Check: upgrade
  • GitHub Check: e2e-grpc-broker
  • GitHub Check: e2e-broadcast-subscription
  • GitHub Check: e2e-with-istio
  • GitHub Check: e2e
🔇 Additional comments (1)
test/README.md (1)

1-471: Comprehensive and well-structured test documentation.

The documentation effectively covers all major test types (unit, integration, E2E, upgrade, long-running, manual E2E) with clear running instructions, environment variables, and local setup guidance. The structure is logical with a functional table of contents, and the emphasis on requiring upgrade tests to pass before delivery is appropriately highlighted.

Verify the following before merging:

  • CI workflow files (.github/workflows/e2e.yml, longrunning.yml, manual-e2e.yml) contain the documented job names (e2e, e2e-broadcast-subscription, e2e-with-istio, e2e-grpc-broker, upgrade)
  • Internal link on line 220 to upgrade/README.md references an existing file
  • All documented Makefile targets (make test, make e2e-test, make upgrade-test, etc.) are implemented and functional

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant