The GitHub Actions job "Required Checks" on texera.git/test-lakefs-client has 
succeeded.
Run started by GitHub user aglinxinyuan (triggered by aglinxinyuan).

Head commit for run:
589ddec66dd7030b2fcfc66c98d8b642d7d43790 / Xinyuan Lin <[email protected]>
test(workflow-core): cover LakeFSStorageClient against a local stub server

LakeFSStorageClient was the largest unclaimed gap in the repo (83 missed,
37.9%). The existing LakeFSStorageClientSpec only exercised
parsePhysicalAddress; everything else needed a lakeFS server, and the only
harness for that is the Docker/testcontainers MtimeSpec.

This adds 20 tests driven by a JDK com.sun.net.httpserver stub on
127.0.0.1:0 — no new dependency, no container. StorageConfig.lakefsEndpoint
is a var precisely so tests can repoint it.

Nothing here asserts a connection failure or an ApiException caused by one,
so nothing inverts if CI ever gains a lakeFS container. Every response is an
explicit canned payload carrying exactly the fields the generated SDK marks
required, so the fixtures cannot rot into "any JSON passes".

Several of these are only observable against a stub:
- fetchAllPages' cursor threading and page accumulation — PageSize is 1000,
  so a live server would need 1001 objects to produce a second page
- retrieveVersionsOfRepository's descending sort — lakeFS already returns
  commits newest-first, so against a live server the sort is a no-op; the
  stub returns them out of order with the newest neither first nor last
- completePresignedMultipartUploads' part ordering, checked on the
  serialized body
- "validation rejected this without issuing a request", which a live server
  cannot distinguish from a request it rejected itself

Both suites are now tagged @NonParallelTest. build.sbt gives each tagged
suite its own forked JVM, which this needs: apiClient is a private lazy val,
so the endpoint is captured once per JVM, and MtimeSpec repoints it at a
container. The old pair avoided the clash only by accident — the old spec
never forced apiClient. Tagging both means the isolation survives either tag
being dropped. Verified via `show WorkflowCore/Test/testGrouping`.

The page-1 stub routes are guarded to serve once. Without that, a client
that stopped threading the cursor would re-match a has_more:true route
forever and hang CI instead of failing; with it, the same break fails three
tests in seconds.

Measured with jacoco on a clean single-suite run: 23/152 lines before,
132/152 after. Assertion strength checked by 20 production mutations, each
killed by exactly the test that claims to guard it, all reverted.

Deliberately left uncovered, with a comment so they stay easy to delete:
removeFileFromRepo and retrieveFileContent have no callers anywhere,
withCreateVersion's only caller is a file-service test, and stagingApi is
referenced nowhere. deleteRepo is a bodyless passthrough with no choice to
assert.

No production file is touched.

Report URL: https://github.com/apache/texera/actions/runs/30778610866

With regards,
GitHub Actions via GitBox

Reply via email to