UAT: a2a_jsonrpc_wire_format.feature has 3 stale @skip scenarios for A2aErrorDetail — all pass now #5590

Open
opened 2026-04-09 07:41:48 +00:00 by HAL9000 · 1 comment
Owner

Bug Report

Summary

features/a2a_jsonrpc_wire_format.feature contains 3 scenarios tagged with @skip (originally @tdd_expected_fail) related to A2aErrorDetail serialization (issue #4229). These scenarios test that A2aErrorDetail serializes with a data field (not details). The implementation now correctly uses data, so all three scenarios pass when run without the @skip tag.

Evidence

Skipped scenarios (lines 197-218 of a2a_jsonrpc_wire_format.feature):

#   @tdd_issue @tdd_issue_4229 @tdd_expected_fail @skip
  @skip
  Scenario: A2aErrorDetail serialises with data field not details
    ...
#   @tdd_issue @tdd_issue_4229 @tdd_expected_fail @skip
  @skip
  Scenario: A2aErrorDetail serialises with empty data by default
    ...
#   @tdd_issue @tdd_issue_4229 @tdd_expected_fail @skip
  @skip
  Scenario: A2aErrorDetail data field preserves payload values

Verified working:

from cleveragents.a2a.models import A2aErrorDetail
from cleveragents.a2a import errors as a2a_errors

# Test 1: 'data' field present, 'details' absent
detail = A2aErrorDetail(code=a2a_errors.NOT_FOUND, message="gone", data={"id": "x"})
d = detail.model_dump()
assert "data" in d      # PASSES
assert "details" not in d  # PASSES

# Test 2: Empty data by default
detail = A2aErrorDetail(code=a2a_errors.INTERNAL_ERROR, message="error")
d = detail.model_dump()
assert "data" in d      # PASSES
assert d["data"] == {}  # PASSES

# Test 3: Data preserves payload
detail = A2aErrorDetail(code=a2a_errors.NOT_FOUND, message="gone", data={"plan_id": "abc123"})
d = detail.model_dump()
assert "plan_id" in d["data"]  # PASSES

Impact

  • Three test scenarios are never run in CI, providing false coverage
  • The @skip tags are stale — the underlying issue (#4229) has been resolved
  • The commented-out @tdd_expected_fail tags are misleading

Fix Required

Remove the @skip tags from the three A2aErrorDetail scenarios in features/a2a_jsonrpc_wire_format.feature. The commented-out @tdd_issue and @tdd_expected_fail tags can also be removed since the issue is resolved.

Spec Reference

  • ADR-047 §Error Code Mapping — A2aErrorDetail must use JSON-RPC 2.0 data field
  • features/a2a_jsonrpc_wire_format.feature lines 197-218

Metadata

  • Commit message: test(a2a): remove stale @skip tags from A2aErrorDetail scenarios in wire format feature
  • Branch name: fix/m7-remove-stale-skip-tags-error-detail

Subtasks

  • Remove @skip tags from 3 A2aErrorDetail scenarios
  • Remove commented-out @tdd_issue and @tdd_expected_fail tags
  • Verify all 3 scenarios pass with nox -e unit_tests

Definition of Done

  • All 3 A2aErrorDetail scenarios run and pass in CI
  • No stale @skip tags remain for these scenarios

Automated by CleverAgents Bot
Supervisor: UAT Testing | Agent: uat-tester

## Bug Report ### Summary `features/a2a_jsonrpc_wire_format.feature` contains 3 scenarios tagged with `@skip` (originally `@tdd_expected_fail`) related to `A2aErrorDetail` serialization (issue #4229). These scenarios test that `A2aErrorDetail` serializes with a `data` field (not `details`). The implementation now correctly uses `data`, so all three scenarios pass when run without the `@skip` tag. ### Evidence **Skipped scenarios (lines 197-218 of `a2a_jsonrpc_wire_format.feature`):** ```gherkin # @tdd_issue @tdd_issue_4229 @tdd_expected_fail @skip @skip Scenario: A2aErrorDetail serialises with data field not details ... # @tdd_issue @tdd_issue_4229 @tdd_expected_fail @skip @skip Scenario: A2aErrorDetail serialises with empty data by default ... # @tdd_issue @tdd_issue_4229 @tdd_expected_fail @skip @skip Scenario: A2aErrorDetail data field preserves payload values ``` **Verified working:** ```python from cleveragents.a2a.models import A2aErrorDetail from cleveragents.a2a import errors as a2a_errors # Test 1: 'data' field present, 'details' absent detail = A2aErrorDetail(code=a2a_errors.NOT_FOUND, message="gone", data={"id": "x"}) d = detail.model_dump() assert "data" in d # PASSES assert "details" not in d # PASSES # Test 2: Empty data by default detail = A2aErrorDetail(code=a2a_errors.INTERNAL_ERROR, message="error") d = detail.model_dump() assert "data" in d # PASSES assert d["data"] == {} # PASSES # Test 3: Data preserves payload detail = A2aErrorDetail(code=a2a_errors.NOT_FOUND, message="gone", data={"plan_id": "abc123"}) d = detail.model_dump() assert "plan_id" in d["data"] # PASSES ``` ### Impact - Three test scenarios are never run in CI, providing false coverage - The `@skip` tags are stale — the underlying issue (#4229) has been resolved - The commented-out `@tdd_expected_fail` tags are misleading ### Fix Required Remove the `@skip` tags from the three `A2aErrorDetail` scenarios in `features/a2a_jsonrpc_wire_format.feature`. The commented-out `@tdd_issue` and `@tdd_expected_fail` tags can also be removed since the issue is resolved. ### Spec Reference - ADR-047 §Error Code Mapping — `A2aErrorDetail` must use JSON-RPC 2.0 `data` field - `features/a2a_jsonrpc_wire_format.feature` lines 197-218 ### Metadata - **Commit message**: `test(a2a): remove stale @skip tags from A2aErrorDetail scenarios in wire format feature` - **Branch name**: `fix/m7-remove-stale-skip-tags-error-detail` ## Subtasks - [ ] Remove `@skip` tags from 3 `A2aErrorDetail` scenarios - [ ] Remove commented-out `@tdd_issue` and `@tdd_expected_fail` tags - [ ] Verify all 3 scenarios pass with `nox -e unit_tests` ## Definition of Done - All 3 `A2aErrorDetail` scenarios run and pass in CI - No stale `@skip` tags remain for these scenarios --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: uat-tester
HAL9000 added this to the v3.2.0 milestone 2026-04-09 07:45:13 +00:00
Author
Owner

Label compliance fix applied:

  • Added missing labels and/or milestone to bring issue into compliance with CONTRIBUTING.md

Automated by CleverAgents Bot
Supervisor: Backlog Grooming | Agent: backlog-groomer

Label compliance fix applied: - Added missing labels and/or milestone to bring issue into compliance with CONTRIBUTING.md --- **Automated by CleverAgents Bot** Supervisor: Backlog Grooming | Agent: backlog-groomer
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
cleveragents/cleveragents-core#5590
No description provided.