Files
roaauto/docs/playwright-report-2026-03-14.md
Marius Mutu 9db4e746e3 feat: add clients nomenclator, order edit/delete/devalidate, invoice types, dashboard redesign
- New clients table with PF/PJ support, fiscal data (CUI, IBAN, eFactura fields)
- Full CRUD API for clients with search, sync integration
- Order lifecycle: edit header (DRAFT), devalidate (VALIDAT→DRAFT), delete order/invoice
- Invoice types: FACTURA (B2B) vs BON_FISCAL (B2C) with different nr formats
- OrderCreateView redesigned as multi-step flow (client→vehicle→details)
- Autocomplete from catalog_norme/catalog_preturi in OrderLineForm
- Dashboard now combines stats + full orders table with filter tabs and search
- ClientPicker and VehiclePicker with inline creation capability
- Frontend schema aligned with backend (missing columns causing sync errors)
- Mobile responsive fixes for OrderDetailView buttons

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 00:36:40 +02:00

6.9 KiB

Playwright Test Report - 2026-03-14

Summary

  • Total: 31
  • Pass: 27
  • Fail: 2
  • Skipped: 2

Notes

  • The app uses in-memory SQLite (wa-sqlite :memory:). On full page reload, all local data is lost and must be re-synced.
  • Sync had errors due to schema mismatches (table vehicles has no column named vi..., table catalog_marci has no column named...), which prevented demo data from loading. All tests were performed with locally-created data.
  • The tip_deviz dropdown was empty because tipuri_deviz table had no data (sync failed).

Desktop Tests (1280x720)

Test Description Status Notes
T1 Login + Dashboard PASS Login with demo@roaauto.ro works. Dashboard shows stats cards (Total, Draft, Validate, Facturate) and orders table with filter tabs.
T2 Comanda noua button PASS Clicking "+ Comanda noua" navigates to /orders/new with step-by-step wizard.
T3 Full order creation PASS Created order with inline client+vehicle. Redirected to order detail with correct data (B 999 TST, Test SRL E2E, Dacia Logan, KM 55000).
T4 Inline client creation (PJ) PASS "+ Client nou" opens inline form. Switching to PJ shows denumire/CUI/telefon fields. Client created and auto-selected with "(RO12345678)" display.
T5 Inline vehicle creation PASS "+ Vehicul nou" opens form. "+" buttons for marca/model allow inline creation (Dacia/Logan). Vehicle created and auto-selected as "B 999 TST - (Dacia Logan)".
T6 Clients page PASS Added PF client (Popescu Ion). Search by name filters correctly. Click row opens edit form with pre-filled data. Updated email saved successfully.
T7 Edit order header PASS "Editeaza" opens edit form with pre-filled fields. Changed KM from 55000 to 60000 and observatii. Changes persisted after save.
T8 Add manopera from nomenclator PASS Manopera line "Schimb ulei motor" added with 2h * 100 RON/h = 200.00 RON. Line appears in table with MAN badge. Autocomplete from catalog_norme not testable (no synced data).
T9 Add material from catalog PASS Material line "Filtru ulei" added with 1 buc * 50 RON = 50.00 RON. MAT badge shown. Totals updated: Manopera 200, Materiale 50, Total general 250.
T10 Validate then devalidate PASS "Valideaza" changes status to VALIDAT, shows PDF Deviz/Devalideaza/Factureaza buttons, hides line delete buttons. "Devalideaza" with confirmation reverts to DRAFT.
T11 Delete DRAFT order PASS "Sterge" shows confirmation dialog. "Da, sterge" deletes order and redirects to /dashboard.
T12 Dashboard filters PASS Draft tab shows "Nicio comanda gasita" (0 draft). Facturate tab shows FACTURAT orders. Toate shows all. Validate tab works.
T13 Dashboard search PASS Searching "B 999" finds matching order. Searching "XXXXXX" shows "Nicio comanda gasita".
T14 /orders redirect PASS Navigating to /orders redirects to /dashboard.
T15 Catalog Norme PASS Added ansamblu "Motor" first. Then added norma NRM-001 "Schimb ulei si filtre" with ansamblu Motor and 1.5 ore normate. Appears in table.
T16 Facturare dialog PASS "Factureaza" on VALIDAT order shows "Tip document" dialog with Factura (default) and Bon fiscal radio options.
T17 Factura creation PASS Choosing Factura and clicking "Creeaza" changes status to FACTURAT. "Sterge factura" button appears.
T18 Bon fiscal creation PASS After deleting invoice, re-factureaza with "Bon fiscal" selected. Status becomes FACTURAT. Invoice number starts with "ROABF-" confirming Bon Fiscal type.
T19 InvoicesView PASS /invoices shows table with Nr. factura, Tip (BON FISCAL badge), Data, Client, Nr. auto, Total, PDF download button.
T20 Delete invoice PASS "Sterge factura" shows confirmation. "Da, sterge" reverts order to VALIDAT with Devalideaza/Factureaza buttons restored.

Mobile Tests (375x812)

Test Description Status Notes
T21 Dashboard responsive PASS Stats cards stack in 2x2 grid. Filter buttons and search visible. "+ Comanda noua" button accessible. Bottom nav visible.
T22 Order form responsive PASS Form fields stack vertically. Client picker full-width. "+ Client nou" button accessible. "Inapoi" link visible.
T23 OrderDetail responsive FAIL Action buttons (Editeaza, Valideaza, Sterge, DRAFT badge) crowd/overlap with order number heading on narrow screens. The CMD number wraps to 2 lines while buttons stack alongside. Totals area partially obscured by bottom nav.
T24 Clients responsive PASS Heading and "+ Adauga client" button fit. Search field full-width. "Clienti" highlighted in bottom nav. Table replaced with empty state message on fresh load.
T25 Bottom nav PASS Bottom navigation shows on mobile with: Acasa, Clienti, Vehicule, Programari, Setari. Active link is highlighted.

Visual Checks

Test Description Status Notes
T26 Overflow check PASS No horizontal overflow detected on any page. Content stays within viewport bounds on mobile.
T27 Button spacing FAIL On mobile OrderDetail, the action buttons (Editeaza/Valideaza/Sterge) and DRAFT badge are cramped with the heading. They flow into the same line space as the 2-line CMD number, creating a crowded layout. Recommend stacking buttons below heading on mobile.
T28 Text truncation PASS No problematic text truncation observed. Client names, plate numbers, and amounts display fully.
T29 Modal/dialog display PASS Factureaza "Tip document" modal displays centered on desktop with backdrop. Delete confirmation dialogs render properly on both desktop and mobile.
T30 Badge colors PASS MAN (blue), MAT (purple/pink), DRAFT (yellow outline), VALIDAT (green), FACTURAT (green), PF (gray), PJ (blue), BON FISCAL (dark) - all badges render with distinct colors.
T31 Dialog on mobile PASS Delete confirmation dialog renders inline on mobile, fully readable with accessible buttons. No overflow or clipping.

Sync Issues Observed

  • SQLiteError: table vehicles has no column named vi... - repeated on fullSync
  • SQLiteError: table catalog_marci has no column named... - on fullSync
  • These errors prevented demo seed data from syncing to the frontend. The schema in frontend/src/db/schema.js may be out of sync with the backend model changes.

Recommendations

  1. Fix mobile OrderDetail layout (T23/T27): Stack action buttons below the heading on screens < 640px. Consider using flex-wrap or a separate row for buttons.
  2. Fix sync schema mismatch: The vehicles and catalog_marci tables in frontend/src/db/schema.js are missing columns that the backend sync sends. This breaks fullSync for all users.
  3. Bottom nav overlap: On order detail mobile, the totals section at the bottom is partially hidden behind the bottom navigation bar. Add padding-bottom to account for the fixed bottom nav height.