aglinxinyuan opened a new issue, #7115: URL: https://github.com/apache/texera/issues/7115
### Task Summary `FulltextSearchQueryUtilsSpec` is the only spec in `amber/src/main/scala/org/apache/texera/web/resource/dashboard/`. It also demonstrates that this tier does not need a database to test: a dialect-only `DSL.using(SQLDialect.POSTGRES)` context renders jOOQ `Condition`/`Field` objects with no connection, and `ctx.newRecord(...)` builds records purely in memory. Three members of the tier are connection-free and untested: - **`DashboardResource.getOrderFields`** (22 missed lines in the file) — public and pure. It regex-matches `orderBy` against `(Name|CreateTime|EditTime|ExecutionTime)(Asc|Desc)`. Existing coverage is only incidental, via `WorkflowResourceSpec`, and reaches `NameAsc`/`NameDesc`, `ExecutionTimeAsc`/`Desc` and `EditTime` through the default. `CreateTimeAsc`/`CreateTimeDesc` and the non-matching fall-through are unreached. The asc/desc asymmetry is also worth pinning: `Desc` emits `desc nulls last` while `Asc` emits a bare `asc`, and that asymmetry is what makes the observable behaviour symmetric, since Postgres defaults to NULLS LAST for ASC and NULLS FIRST for DESC. Separately, `searchAllResources` with an unrecognised `resourceType` throws `IllegalArgumentException` before any query is constructed, so that path needs no database either. - **`WorkflowSearchQueryBuilder.toEntryImpl`** and **`mappedResourceSchema`** (7 missed) — reachable because this object drops the trait's `protected`, unlike `DatasetSearchQueryBuilder` whose five members are all `override protected` (Scala `protected` grants no same-package access, so those are not callable from a spec). `toEntryImpl` is pure record-to-DTO mapping: the projects aggregate is looked up by structural jOOQ `Field` equality, the comma-joined value is split into `Integer`s, a NULL privilege degrades to `NONE`, and an ownership flag compares uids. - **`UnifiedResourceSchema.apply`** (5 missed) — 24 default-argument `Field`s, plus a keep-first de-duplication behind `allFields` that collapses repeated originals. `translateRecord`, `resultsOwnersInfo`, `searchAllPublicResourceCall`, `constructQuery` and every fetch path route through `SqlServer.getInstance().createDSLContext()` and are out of scope for a no-DB spec. Note for whoever picks this up: `FulltextSearchQueryUtils.usePgroonga` is a JVM-global `var` that `DatasetResourceSpec` and `WorkflowResourceSpec` both set to `false` in `beforeAll` and never restore, and amber's suites run concurrently in one JVM. New specs here should neither depend on its default nor mutate it. ### Task Type - [ ] Refactor / Cleanup - [ ] DevOps / Deployment / CI - [x] Testing / QA - [ ] Documentation - [ ] Performance - [ ] Other -- 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]
