Skip to content

No OpenAPI contract suite runs against the default configuration #646

Description

@bburda

Summary

The OpenAPI contract tests only ever run against a gateway with every feature gate enabled, so the document served by a default gateway is never checked.

src/ros2_medkit_integration_tests/test/features/test_openapi_contract.test.py launches with full_feature_gateway_params(...). test_openapi_error_coverage.test.py does the same. test_openapi_callability.test.py and test_openapi_response_drift.test.py pass their own gateway_params dict, also with features turned on.

A default gateway serves a different document: gated routes answer 501, some collections are absent, and some schemas are unreachable. None of the invariants these tests check are checked for that document. A defect that only appears with default settings passes CI.

This matters because the default configuration is what a new user runs first.

Proposed solution (optional)

Add one contract test that launches with default parameters and asserts the invariants that must hold in any configuration:

  • every $ref resolves
  • no operation declares a 2xx it cannot return
  • every gated route declares its 501
  • every advertised collection is served

The full-feature suite stays as it is. The new one does not need to repeat what is configuration specific, only what must be true everywhere.

Additional context (optional)

There is a separate follow-up for the status recorder sweep, which has the same shape of gap.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions