You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@texera.apache.org by "mengw15 (via GitHub)" <gi...@apache.org> on 2026/08/14 02:55:29 UTC

[I] bring the dataset filetree and admin-user search templates to full coverage [texera]

mengw15 opened a new issue, #7651:
URL: https://github.com/apache/texera/issues/7651

   ### Task Summary
   
   Two component **templates** have large uncovered blocks (~45 lines total) that their specs never render. **Goal: bring both templates to full coverage** — render every branch, drive every binding through the DOM, and use the coverage report to catch anything left. Vitest/jsdom; see `frontend/TESTING.md`.
   
   General approach: `fixture.detectChanges()` after **every** state change (it is the template-coverage switch); drive bindings via `fixture.debugElement.query(By.css("..."))` + `.triggerEventHandler(...)` rather than calling handlers directly; put the component in **each** state the template switches on. Assert rendered text / bound attributes / delegated calls — never layout or geometry (zeros under jsdom).
   
   ### Behavior to add
   
   **UserDatasetVersionFiletreeComponent** (`frontend/src/app/dashboard/component/user/user-dataset/user-dataset-explorer/user-dataset-version-filetree/user-dataset-version-filetree.component.html`, **~23%**, 17 lines)
   - The file-tree node markup is unrendered. Supply a small tree (a folder with children plus a leaf file) so the node template renders both arms of `*ngIf="node.data.children"` — the folder icon and the file icon.
   - Assert the node label binding `title="{{ node.data.name }}"` and the icon chosen for each node kind.
   - Click/expand a node through the DOM and assert the selection or expansion state the component exposes.
   - Determinism: the component queues a `setTimeout`. **Do not add `vi.useFakeTimers()` to suppress it** — a synchronous test body never runs the callback, and layering fake timers over zone.js's patched timers is Node-version dependent and has caused CI-only failures.
   
   **AdminUserComponent** (`frontend/src/app/dashboard/component/admin/user/admin-user.component.html`, ~81%, 28 lines)
   - The uncovered block is the per-column **search dropdowns**: `[(nzVisible)]="nameSearchVisible"` / `emailSearchVisible` / `commentSearchVisible` and their `[(ngModel)]="nameSearchValue"` inputs.
   - For each column: open the dropdown (set its visible flag / click the trigger), `detectChanges()`, type a value into the bound input (set the control value and dispatch `input`), apply the search, and assert the filtered rows rendered in the table; then reset and assert the filter clears.
   - Determinism: the component uses `new Date` and the template renders a date. **Render it, but do not assert any formatted date/time string** — a fixed epoch renders differently under a UTC CI runner; assert element presence or a timezone-stable substring. Likewise do not add fake timers for the component's `setTimeout`.
   
   ### 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: notifications-unsubscribe@texera.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [I] bring the dataset filetree and admin-user search templates to full coverage [texera]

Posted by "mengw15 (via GitHub)" <gi...@apache.org>.
mengw15 closed issue #7651: bring the dataset filetree and admin-user search templates to full coverage
URL: https://github.com/apache/texera/issues/7651


-- 
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: notifications-unsubscribe@texera.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org