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
