Skip to content

Run 4: API Tests

Update and extend Bruno API tests in the api-test repository to validate all print endpoint changes from Runs 1-3. Tests run against a deployed environment (local K8s for development, dev for final validation).

Specification: Phase 4 Specification Requirements: Phase 4 Requirements Verification: Phase 4 Verification

#CriterionVerification CommandExpected Output
1Run 3 exit gate passesbash .../run-3-diagnostics/validate-exit.shALL CHECKS PASSED
2Operations deployed to local K8skubectl get pods -n operations | grep RunningPod running
3api-test worktree exists and buildscd .../api-test && npm run buildExit 0
4api-test on correct branchgit -C .../api-test branch --show-currentjmpicnic/multi-pdf-print-and-bugs

Entry criterion #2 requires deploying to local K8s, which uses op run --env-file 1Password.env -- ./gradlew helmInstallToLocal. This deployment and any subsequent deployment to dev are gated on explicit user prompt.

ArtifactPathFormatDescription
Updated PrintLabels.bruapi-test/collections/item/bearer-auth/Printing/PrintLabels.bruBrunoComposite response assertions, enabled
Updated PrintBreadcrumb.bruapi-test/collections/item/bearer-auth/Printing/PrintBreadcrumb.bruBrunoComposite response assertions, enabled
Updated PrintOneCard.bruapi-test/collections/kanban/Print-Cards/PrintOneCard.bruBrunoComposite response assertions, enabled
Updated PrintMultpleCards.bruapi-test/collections/kanban/Print-Cards/PrintMultpleCards.bruBrunoComposite response assertions, enabled
New mixed-size testsapi-test/collections/item/bearer-auth/Printing/PrintLabels*.bruBrunoMulti-template, batch split, over-limit tests
New unmark testapi-test/collections/kanban/Print-Cards/UnmarkPrinted.bruBrunoUnmark-as-printed sequence test
New diagnostic testsapi-test/collections/item/bearer-auth/Printing/PrintLabels*.bruBrunodebug, dry-run, test-mode tests
New notes mapping testsapi-test/collections/*/BrunoNotes field validation using debug payload
CHANGELOG entryapi-test/CHANGELOG.mdMarkdownVersion entry
#TaskPersonaDepends OnStatusAcceptance Criteria
4.1Update existing print tests for composite responseacceptance-test-engineerPending4 existing tests enabled, assertions updated. T-P4-001 through T-P4-004.
4.2Add multi-template bulk print testsacceptance-test-engineer4.1PendingMixed-size label + card tests. T-P4-005, T-P4-006.
4.3Add batch limiting testsacceptance-test-engineer4.1PendingOver-limit rejection + sub-batch split. T-P4-007, T-P4-008.
4.4Add unmark-as-printed testacceptance-test-engineer4.1PendingPrint → unmark → verify NOT_PRINTED. T-P4-009.
4.5Add diagnostic parameter testsacceptance-test-engineer4.1Pendingdebug, dry-run, live-print. T-P4-010 through T-P4-012.
4.6Add notes mapping testsacceptance-test-engineer4.5 (uses debug)PendingCard null notes → empty. Label → Item.notes. T-P4-013, T-P4-014.
4.1 (update existing) ──┬──→ 4.2 (multi-template)
├──→ 4.3 (batch limiting)
├──→ 4.4 (unmark)
└──→ 4.5 (diagnostics) ──→ 4.6 (notes mapping)

Task 4.1 first (establishes composite response pattern). Tasks 4.2, 4.3, 4.4, 4.5 can run in parallel after 4.1. Task 4.6 depends on 4.5 (uses debug=true to inspect payload).

Single acceptance-test-engineer agent — all work in one repository.

#CriterionVerification CommandExpected Output
1api-test buildscd .../api-test && npm run buildExit 0
2All printing tests pass against localcd .../api-test && npm run test:local 2>&1 | grep -i printTests pass
3CHANGELOG updatedhead -10 .../api-test/CHANGELOG.mdContains version entry
4api-test worktree cleangit -C .../api-test status --shortClean

Running tests against dev environment and creating PRs are gated on explicit user prompt.

Acceptance Test Engineer — ate-api-tests

Section titled “Acceptance Test Engineer — ate-api-tests”

You are implementing Bruno API tests for the print endpoints in the api-test repository at /Users/jmp/code/arda/projects/multi-pdf-print-and-bugs-worktrees/api-test.

Read the specification at .../../phase-4-api-tests/specification.md and implement Tasks 4.1 through 4.6. Use mode: "bypassPermissions".

Key points:

  • All print tests use live-print=false to avoid Documint quota
  • Diagnostic tests (debug, dry-run) verify response shape, not PDF content
  • Notes mapping tests use debug=true or dry-run=true to inspect the payload
  • Test data prerequisite: items with different sizes, cards with various print statuses
  • Run tests with npm run test:local
ArtifactSource RunPath
Composite response shapeRun 2API contract (no file dependency)
Unmark endpointRun 1API contract
Diagnostic parametersRun 3API contract
debugPayload fieldRun 3API contract

None — this is the final run.


Copyright: (c) Arda Systems 2025-2026, All rights reserved