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

   ### What changes were proposed in this PR?
   
   `hub-search-result.component.html` reported **0 of 23 lines, 0 of 8 branches 
and 0 of 3 functions** covered, behind a 17-test spec. That is the attribution 
loss from #7458, not an untested template: the spec swaps its four children for 
same-selector stubs via `TestBed.overrideComponent`, and any override re-JITs 
the component from its decorator metadata, leaving the recompiled template with 
no source map back to the `.html`.
   
   Adds a `describe` block that renders the component with its **real** 
children:
   
   | | Before | After |
   |---|---|---|
   | lines | 0/23 | **23/23** |
   | branches | 0/8 | **8/8** |
   | functions | 0/3 | **3/3** |
   
   The block keeps its own `TestBed`, so the 17 existing tests keep their stubs 
and assertions untouched. Same remedy as merged PRs #7535, #7627 and #7629 — 
this is the last of the six templates #7458 identified, bar `workspace` and the 
`user-project` one that the project-feature removal deletes.
   
   Covered: the real children resolving rather than the stub selectors, the 
dataset-only view toggle and its absence for workflows, which toggle button is 
highlighted, the sort options shown and hidden per search type, the sort 
handler's two halves, the card template and its `viewMode` guard, and the three 
inputs handed to the results list.
   
   ### Verification
   
   23 mutations applied and reverted, production diff empty each time.
   
   **Two then turned out to survive, and the cause is worth recording.** The 
view-toggle helper read each button as `classList.contains("ant-btn-primary")`, 
which pins a ternary's *true* leg only — so changing the false leg from 
`'default'` to `'dashed'` or `'link'` shipped green. The build's own mutations 
replaced the whole ternary with a constant, which flips the primary leg and 
dies, which is exactly why the gap was missed.
   
   The helper now reads the type by **name**, matched against the nzType names 
rather than any `ant-btn-*` class, since the buttons also carry 
`ant-btn-icon-only` — my first attempt at the fix picked that modifier up and 
failed loudly, which is how I found it.
   
   All three are now red, each on the intended test rather than merely 
somewhere in the suite:
   
   | Mutation | Result | Failing test |
   |---|---|---|
   | list button's false leg → `dashed` | red | "highlights whichever 
view-toggle button matches…" |
   | card button's false leg → `link` | red | same |
   | list button collapsed to a constant (control) | red | same |
   
   ### Deliberately not included
   
   A static `nzTheme="outline"` attribute carries no lcov line and is not 
asserted.
   
   No production file is touched.
   
   ### Any related issues, documentation, discussions?
   
   Closes #7660
   
   ### How was this PR tested?
   
   ```
   npx ng test --watch=false --include="**/hub-search-result.component.spec.ts"
   ```
   
   ```
    Test Files  1 passed (1)
         Tests  27 passed (27)
   ```
   
   10 new on top of the existing 17. Coverage re-measured by reverting the 
spec, running with `--coverage`, and restoring. `yarn format:ci` passes.
   
   ### 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