Commit graph

51 commits

Author SHA1 Message Date
Arthur Bassi
737a52c4aa test(work-orders): wait for board heading before visual error alert 2026-08-24 10:50:38 -03:00
Arthur Bassi
54797f13ef test(work-orders): wait for visual error alert before asserting 2026-08-24 10:09:30 -03:00
Arthur Bassi
abc14ed8f9 fix(work-orders): unfreeze visual-spec timers for board error retry
Use setFixedTime so React Query can finish the 500 retry and render the alert.
2026-08-21 13:32:58 -03:00
Arthur Bassi
b50ebcff42 test(work-orders): refresh visual baselines after advanced filters 2026-08-21 13:24:38 -03:00
Arthur Bassi
9c355fb49e
Merge branch 'dev' into feat/sh-244-advanced-filter-fields 2026-08-21 13:05:19 -03:00
Arthur Bassi
f0dd32edd4
Merge branch 'dev' into feat/work-orders-visual-regression 2026-08-21 12:57:24 -03:00
Arthur Bassi
eca04bcaa8 chore(work-orders): merge origin/dev into advanced filter branch
Keep SH-244 query-param tests alongside the WO type filter union from dev.
2026-08-21 12:35:57 -03:00
Arthur Bassi
1ed993a353
fix: Update e2e/work-orders/type-filter.spec.ts
Co-authored-by: Alexandre Brandizzi <alex_brandizzi@hotmail.com>
2026-08-21 11:47:18 -03:00
Arthur Bassi
27a5c4eaf2 test(work-orders): refresh visual baselines after board layout changes
Regenerate Docker snapshots against current week/day chrome and pagination.
2026-08-20 23:48:27 -03:00
Arthur Bassi
9d39d5bb14 ci(work-orders): add Playwright visual regression to CI
Run board screenshots in the existing Docker visual job with vendors.
2026-08-20 23:24:14 -03:00
Arthur Bassi
776d3ebd9c
Merge branch 'dev' into feat/sh-244-advanced-filter-fields 2026-08-20 22:07:10 -03:00
Arthur Bassi
1d9f3c3637 test(work-orders): drop Jira keys from advanced filter test names
Keep ticket identity on the branch and PR, not in Playwright or Vitest titles.
2026-08-20 22:02:59 -03:00
Arthur Bassi
723f84e80a
Merge branch 'dev' into cursor/sh-243-wo-type-filter-multiselect 2026-08-20 22:00:08 -03:00
Arthur Bassi
93ab14abf3 feat(work-orders): add SH-244 advanced filter fields and AAP indicator styles 2026-08-20 18:34:29 -03:00
Alexandre Brandizzi
35bfb9b7c8 fix(vendors): correct roster validation and editing 2026-08-20 18:25:34 -03:00
Arthur Bassi
919748a274 fix(work-orders): expose type filter selection state to AT
Menu roles and aria-checked match the multi-select. Trigger uses AAP Tag icon.
2026-08-20 17:20:10 -03:00
Arthur Bassi
f522c46911 chore(work-orders): merge origin/dev into SH-243 type filter branch 2026-08-20 16:43:26 -03:00
Arthur Bassi
e8efde5fbc feat(work-orders): add multi-select All types filter (SH-243)
Dispatchers can select several WO types so the board shows the union of matching rows.
2026-08-20 16:32:30 -03:00
Arthur Bassi
8614f9415c feat(work-orders): relocate dispatcher filter under the title (SH-242)
Place dispatcher scoping under the Work Orders heading as a plain
trigger so the week/day bar stays boxed, without changing board params.
2026-08-20 15:53:03 -03:00
Arthur Bassi
75c82e90a5
Merge branch 'dev' into feat/sh-241-wo-day-pagination 2026-08-20 11:37:01 -03:00
Arthur Bassi
e6567c2c0a
Merge branch 'dev' into feat/sh-241-wo-day-pagination 2026-08-20 11:26:47 -03:00
Alexandre Brandizzi
3141adba13
Merge branch 'dev' into feat/sh-254-fe-deactivate-confirm 2026-08-20 11:24:12 -03:00
Arthur Bassi
91f30304a2 Merge branch 'dev' into feat/sh-241-wo-day-pagination 2026-08-20 11:16:17 -03:00
Alexandre Brandizzi
326ac18eb0
Merge branch 'dev' into feat/sh-254-fe-deactivate-confirm 2026-08-20 11:15:10 -03:00
Codex Review Integration
aebb2c6b1a Merge remote-tracking branch 'origin/dev' into feat/sh-253-vendor-detail-parity
# Conflicts:
#	src/test/app/(protected)/vendors/vendor-detail-drawer.test.tsx
2026-08-20 11:14:51 -03:00
Alexandre Brandizzi
fc63948d4e
Merge branch 'dev' into feat/sh-254-fe-deactivate-confirm 2026-08-20 10:58:38 -03:00
Alexandre Brandizzi
4e36396868
Merge branch 'dev' into feat/sh-253-vendor-detail-parity 2026-08-20 10:58:34 -03:00
Alexandre Brandizzi
8edcb6659d
Merge branch 'dev' into feat/sh-250-fe-additive-add 2026-08-20 10:58:26 -03:00
Arthur Bassi
0c514c9bad feat(work-orders): add per-day board pagination (SH-241)
Paginate the selected day's WOs client-side with AAP footer controls.
2026-08-20 10:08:34 -03:00
Arthur Bassi
2c14b08945 feat(work-orders): day-scoped week navigation (SH-240)
Let dispatchers pick one week and one weekday so the board
replaces rows instead of stacking the full week.
2026-08-19 14:45:59 -03:00
Codex Review Integration
670d03d572 test(vendors): update the deactivation e2e to the confirmation flow (SH-254)
The browser smoke encoded the behaviour this ticket changes: it asserted
the Deactivate button was disabled when work orders were linked. It now
asserts the opposite — the work orders are listed as links, "Deactivate
anyway" is enabled, and confirming sends confirmOpenWorkOrders=true.

Also fixes the mock's DELETE route, whose anchored pattern stopped
matching once the request carried a query string. The raced-409 case is
unchanged and still preserves the vendor.
2026-08-19 14:29:01 -03:00
Codex Review Integration
4e5863def5 test(vendors): refresh the vendor detail visual baseline (SH-253)
Regenerated in the CI Playwright image so the baseline matches the
container's rendering. Only vendor-detail changed; the list and edit
baselines are untouched, which confirms extracting the table's status
badge left that view pixel-identical.
2026-08-19 13:43:02 -03:00
Codex Review Integration
9624c264de fix(vendors): send only user-edited company fields on additive add (SH-250)
Adversarial review found a last-writer-wins window: after a stale 409 the
roster is refetched while the form keeps its pre-conflict values, so the
form-vs-roster diff resent our stale value for any company field another
user changed in that window, silently reverting their edit.

Transmit only fields the user actually edited, taken from react-hook-form
dirty state. Selecting a company calls reset(), so loaded values are never
dirty and only genuine edits are sent.

dirtyFields is resolved during render: formState is a Proxy that only tracks
properties read at render time, so reading it inside the submit callback
returned empty. The vendors E2E caught that; unit tests could not, since
they pass the flags in directly.
2026-08-18 14:42:01 -03:00
Codex Review Integration
4d1f02b87d test(vendors): e2e asserts additive PATCH and no destructive PUT from add flow (SH-250, SH-246) 2026-08-18 13:13:04 -03:00
Alexandre Brandizzi
c0e203a090 feat(uplifts): complete SH-101 vendor workflow 2026-08-11 08:57:38 -03:00
Alexandre Brandizzi
bd12351c87
Merge branch 'dev' into feat/sh-98-portal-lifecycle-recovered 2026-08-11 08:53:28 -03:00
Alexandre Brandizzi
4d2ee40d60 feat(vendor-portal): complete request lifecycle (SH-98) 2026-08-10 13:16:26 -03:00
Alexandre Brandizzi
cc0df8f569 fix(vendors): complete shell and visual parity gates 2026-08-10 12:11:38 -03:00
Alexandre Brandizzi
fca5487f6d fix(vendors): enforce prototype visual geometry 2026-08-06 23:30:23 -03:00
Alexandre Brandizzi
b61d46ce4b fix(vendors): match prototype directory experience 2026-08-06 22:23:30 -03:00
Alexandre Brandizzi
ca7829036f
feat(vendors): add company roster workflows (SH-198) (#64)
Some checks failed
CI / ci (push) Has been cancelled
CI / governance (push) Has been cancelled
Deploy / deploy (push) Has been cancelled
* feat(vendors): support company roster workflows

* fix(vendors): address roster review feedback

* test(vendors): preserve draft on roster load failure

* fix(vendors): preserve current roster selection
2026-08-04 09:53:48 -03:00
Alexandre Brandizzi
4b88a60751
fix(vendors): remove preferred contact and fix trade ordering (#63)
Some checks are pending
CI / ci (push) Waiting to run
CI / governance (push) Waiting to run
Deploy / deploy (push) Waiting to run
* fix(vendors): address SH-180 and SH-182

* refactor(vendors): satisfy maintainability gates
2026-08-03 17:53:39 -03:00
Alexandre Brandizzi
b1cf3a0678 test(vendors): isolate mutable reactivation state 2026-07-28 17:22:42 -03:00
Alexandre Brandizzi
e6a3899f4c fix(vendors): make navigation and PO filters responsive 2026-07-28 17:16:50 -03:00
Alexandre Brandizzi
95cbfff301 fix(vendors): allow sparse reactivation updates 2026-07-28 17:16:07 -03:00
Alexandre Brandizzi
45909e7aa6
Complete vendor operations roadmap frontend (#52)
* feat(vendors): complete operations roadmap frontend

* test(vendors): cover work order assignment flow

* fix(vendors): address review feedback

* fix(vendors): prevent stale preference saves

* fix(vendors): require truthful appointment bounds
2026-07-24 18:10:45 -03:00
Alexandre Brandizzi
6ca45bc0ae fix(vendors): preserve phone data across edits 2026-07-23 19:17:14 -03:00
Alexandre Brandizzi
922d6c9a57 feat(vendors): edit assigned vendor from work order 2026-07-23 17:44:53 -03:00
Alexandre Brandizzi
bbbb51aed5 feat(vendors): complete core vendor workflows 2026-07-23 17:36:21 -03:00
Alexandre Brandizzi
20237f8142
feat(vendors): align directory UI with current prototype (#46)
Some checks are pending
CI / ci (push) Waiting to run
Deploy / deploy (push) Waiting to run
* feat(vendors): align directory UI with prototype

* fix(vendors): report the filtered total

* fix(vendors): keep company input in sync

* fix(vendors): scope facets to directory status
2026-07-23 15:23:03 -03:00