Skip to content

test: roadmap for broader CLI/API coverage beyond current contract baseline #41

Description

@axisrow

Context

direct-cli already has full contract coverage against the declared Yandex Direct API surface (28/28 via WSDL/spec parity), but real integration confidence is lower.

Current integration coverage is split across:

  • live read-only tests against production API
  • sandbox write tests with VCR replay

Coverage is uneven: some groups are well covered, some are sandbox-limited, and some remain contract-only.

Current State

  • Contract: 28/28
  • Live read: 11/28
  • Sandbox write: 17/28
  • Any integration tier: 21/28 (75%)
  • Contract-only groups: advideos, agencyclients, businesses, changes, keywordsresearch, leads, turbopages
  • Explicit read gaps still noted in repo: sitelinks get, feeds get
  • Current suite health blocker: TestWriteBidModifiers.test_toggle_existing replay is not green because cassette/state is stale and related API behavior is under investigation (#31, #33)

Roadmap

1. Stabilize the current integration baseline

  • Resolve the bidmodifiers toggle branch of work first.
  • Decide whether toggle is a valid API operation or whether the CLI must revert to another payload/method shape.
  • Close or update #31 and #33 before expanding coverage on top of a broken baseline.

2. Close low-cost live-read gaps

  • Add coverage for sitelinks get and feeds get using explicit fixture IDs or a documented prerequisite flow.
  • Convert similar "requires explicit ID" gaps into deterministic integration cases instead of leaving them uncovered.

3. Expand integration coverage for contract-only groups

  • Evaluate each uncovered group for the cheapest reliable tier:
    • live read
    • sandbox write
    • dry-run/schema parity only
    • manual/non-sandbox tier
  • Prioritize in this order:
    • keywordsresearch
    • changes
    • agencyclients
    • businesses
    • leads
    • advideos
    • turbopages

4. Strengthen method/payload correctness checks where contract tests are too shallow

  • Add assertions that dry-run or request builder output uses the exact API method name expected by WSDL/spec.
  • Use keywordsresearch as the first concrete fix path because it already has an open mismatch issue (#35).

5. Make the coverage matrix explicit in repo docs and test headers

  • Track every CLI group as one of:
    • contract-only
    • live-read covered
    • sandbox-write covered
    • sandbox-limited
    • blocked by API ambiguity
  • Keep this matrix near the tests so future issue closure is based on visible state, not inference.

Acceptance Criteria

  • every CLI group has an explicit coverage classification
  • every contract-only group has a chosen next testing tier
  • explicit read gaps (sitelinks, feeds) have a chosen strategy
  • bidmodifiers toggle path is resolved as valid, invalid, or intentionally unsupported
  • method-name parity checks exist for commands where CLI aliases can hide wrong wire method names
  • repo documentation/test headers clearly describe the coverage matrix and remaining intentional gaps

Related

  • #28 write/integration sandbox roadmap
  • #31 stale cassette for bidmodifiers toggle
  • #33 possible invalid API toggle method
  • #35 keywordsresearch method-name mismatch

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementFeature additionneeds:official-verificationNeeds official docs/changelog/WSDL verification before implementation

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions