Revanth14 opened a new pull request, #1505:
URL: https://github.com/apache/iceberg-go/pull/1505
Closes #1500.
## Summary
Add integration coverage for REST scan planning against the real Java
`apache/iceberg-rest-fixture`, complementing the deterministic fake server
added in #1494.
The tests exercise the existing low-level REST planning client and
independently validate the Java response wire format.
## Changes
- Pin the Java REST fixture to a reproducible scan-planning-capable image
digest built from `apache/iceberg@b0df3ca`.
- The existing `1.10.1` fixture predates runtime support for the
scan-planning routes.
- Configure the fixture to return plan-scoped storage credentials.
- Add integration tests gated by `RUN_INTEGRATION_TESTS=1`.
- Validate:
- Planning capability advertisement.
- Plan submission and cancellation endpoints.
- Access-delegation request headers.
- Snapshot, projection, filter, statistics, and planning options accepted
by Java.
- Typed JSON partition values.
- Hex-encoded Iceberg binary bounds.
- Residual-expression JSON.
- Plan-scoped storage credentials.
- Missing-table, expired-plan, and missing-plan-task error mappings.
- Share independently defined wire-fixture types between the fake-server and
Java integration tests instead of decoding through production REST response
structs.
## Scope
This change is independent of #1492 and #1477. It tests the low-level REST
client already available on `main` and does not add production
`Catalog.PlanFiles` orchestration or domain-level `FileScanTask` decoding.
The published Java fixture currently produces synchronous inline plans and
does not expose configuration for asynchronous completion or plan-task fan-out.
Successful asynchronous polling and nested fan-out remain covered
deterministically by the fake server from #1494.
End-to-end coverage through `Scan.PlanFiles()` should be added after #1492
and #1477 land.
## Verification
- `make integration-rest`
- `go test ./...`
- `go test -race ./catalog/rest/...`
- `RUN_INTEGRATION_TESTS=1 go test -race -tags=integration -run
'^TestRestIntegration/TestScanPlanningJava' ./catalog/rest`
- `go vet ./...`
- `go vet -tags=integration ./catalog/rest`
- `golangci-lint run --timeout=10m`
- `docker compose -f internal/recipe/docker-compose.yml config --quiet`
- `git diff --check`
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]