aglinxinyuan opened a new pull request, #7018: URL: https://github.com/apache/texera/pull/7018
### What changes were proposed in this PR? Adds 47 tests across five `common/workflow-operator` classes (33 -> 80 in these suites). No source changes; all four extended specs are **pure insertions** (0 deletions), so no existing test was modified. - **`AggregationOperation`**: the SUM/COUNT/MIN/MAX `merge` lambdas — invoked when several workers report into the global stage and never exercised by `AggregateOpSpec` — each cross-checked against the equivalent single-pass aggregation; CONCAT's empty-partial branch; the unknown-function error message; and `getFinal`'s detached-copy contract. - **`FilterPredicate`**: the two attribute-type cases nothing reached — `ANY` (routes through the string path, with numeric coercion and a lexicographic fallback) and `BINARY` (throws `unsupported attribute type`) — plus the `IS_NULL`/`IS_NOT_NULL` short-circuit ahead of the type switch, value trimming, and `NumberFormatException` propagation. - **`ECDFPlotOpDesc`** and **`TimeSeriesOpDesc`**: `operatorInfo` and output schema, the optional settings that gate generated Plotly arguments, the generated-code empty-table guards, and — per the repo convention for LogicalOp subtypes — a **JSON round-trip** through `LogicalOp` asserting every config field survives, plus a minimal payload deserializing to the documented defaults. Neither spec had a round-trip before. - **`OPVersion`** (new spec): the `"N/A"` fallback for a path with no commit history, and the name-keyed memoization contract. Some branches were deliberately **not** contrived, and are listed with reasons in the review notes — notably `FilterPredicate`'s unreachable `default:` throw and dead null-guard ternaries (`evaluate` returns before them), and `OPVersion`'s success path (needs an openable repository; inside a git worktree the `.git` entry is a file and jgit leaves the handle null, so the spec asserts only what holds in both environments). ### Any related issues, documentation, discussions? Closes #7016. ### How was this PR tested? `sbt -java-home <jbr-17> "WorkflowOperator/testOnly *AggregationOperationSpec *FilterPredicateSpec *ECDFPlotOpDescSpec *TimeSeriesOpDescSpec *OPVersionSpec"` -> 80 succeeded, 0 failed. `Test/scalafmtCheck` + `Test/scalafix --check` clean. ### Was this PR authored or co-authored using generative AI tooling? Generated-by: Claude Code (Opus 4.8 [1M context]) -- 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]
