aglinxinyuan opened a new pull request, #7505:
URL: https://github.com/apache/texera/pull/7505

   ### What changes were proposed in this PR?
   
   `context-utils.ts` builds the prompt the agent reasons over and 
`workflow-execution-tools.ts` turns
   an execution result into the table it reads back. Both looked reasonably 
covered and were not:
   `bun` credits a whole function body once entered, so blocks inside 
`jsonToTableFormat` and
   `executeOperatorAndFormat` counted as covered while nothing asserted them.
   
   Adds 15 tests across the two existing specs (no new spec files — one spec 
per source class, both
   already existed).
   
   | File | Before | After |
   |---|---|---|
   | `context-utils.ts` | 60.00% funcs / 77.83% lines | **100% / 100%** |
   | `workflow-execution-tools.ts` | 58.97% funcs / 91.24% lines | 85.71% / 
95.16% |
   
   **Ten of the killed mutations target lines `bun` already called covered** — 
the DAG topological
   ordering and its target-rank tie-break, port-ordinal mapping, the 
`NULL`/`null`/`undefined`/object
   cell rendering, the row-gap ellipsis, the leading-tab header, and the 
schema-violation messages.
   The file percentage barely moves for those; the pinning is the point.
   
   ### Verification
   
   45 mutations were applied to the production files and reverted, each revert 
confirmed with
   `git diff --quiet` before the next. All 45 turned the suite red.
   
   An adversarial re-check then found **two assertions that were vacuous 
anyway**, which is the part
   worth reporting:
   
   | Survivor | Why it passed | Fix |
   |---|---|---|
   | `Math.ceil` → `Math.round` on the execution timeout | the fixture was 
`4500 ms`, and `ceil(4.5) == round(4.5) == 5`, so the assertion commented 
"rounds up" proved nothing | fixture changed to `4200 ms`, which separates ceil 
(5) from round and floor (4) |
   | `getConfig()` hoisted out of the `execute` closure | the test invoked the 
tool once, so `toHaveBeenCalledTimes(1)` holds whether the config is resolved 
per invocation or captured once at construction | invoke twice with the 
workflow id changing in between, and assert the second request URL reflects the 
second config |
   
   Both mutations are now red, and so is `Math.floor`. Production diff empty.
   
   ### Deliberately not included
   
   Three regions of `workflow-execution-tools.ts` are left uncovered because 
they are dead, confirmed
   by inserting `throw new Error(...)` at the top of each and running the whole 
273-test module — all
   still passed, so nothing reaches them:
   
   - `formatWorkflowValidationErrors` (169–178) — no call site.
   - lines 221–226 and 229–233.
   
   Testing them would cement code that should be deleted instead.
   
   No production file is touched.
   
   ### Any related issues, documentation, discussions?
   
   Closes #7504
   
   ### How was this PR tested?
   
   ```
   bun test
   ```
   
   ```
    273 pass
    0 fail
   ```
   
   15 new on top of the existing 258. `bun run typecheck` and `bun run 
format:check` both pass.
   
   ### Was this PR authored or co-authored using generative AI tooling?
   
   Generated-by: Claude Code (Opus 5)
   


-- 
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]

Reply via email to