RentalDriveGo Manual UI Test Plan
Version: v1.0
Scope: Phase 16 unified UI across homepage, Carplace/storefront, renter area, operator dashboard, platform admin, authentication pages, localization, theming, responsiveness, accessibility, and cross-app navigation.
Repository baseline: RentalDriveGo_Phase16_Dashboard_Admin_Unified_v1.0.zip
Test type: Manual functional UI, visual consistency, accessibility spot checks, responsive behavior, localization, and regression testing.
1. Objective
Verify that all public and authenticated RentalDriveGo applications use the Phase 16 homepage design system consistently and remain usable across English, French, Arabic RTL, light mode, dark mode, desktop, tablet, and mobile.
The testing must prove three things:
- The new design is applied consistently across all major pages.
- Existing user flows still work after the visual refactor.
- Shared navbar, footer, dashboard shell, admin shell, forms, tables, cards, and page headings behave correctly across contexts.
2. Applications in scope
| Area |
Application |
Manual coverage required |
| Marketing website |
homepage |
Public homepage, navigation, language switcher, theme switcher, CTAs, demo flow, responsive layout, localized routes |
| Marketplace / Carplace |
storefront |
Public marketplace, explore/search, company pages, vehicle detail, booking form, footer pages, renter auth and renter account pages |
| Operator dashboard |
dashboard |
Public auth pages, dashboard shell, all operational routes, forms, tables, detail pages, modals, billing, settings, print surfaces |
| Platform admin |
admin |
Admin auth, admin shell, all admin management routes, company management, pricing, billing, containers, menu/config pages |
| API-connected behavior |
api through UI |
Confirm UI states for loading, success, validation errors, authorization errors, and network failures where available |
3. Test environments
Run manual UI testing in at least these environments:
| Environment |
Required? |
Notes |
| Local development |
Yes |
Primary smoke and visual review environment |
| Staging / preview deployment |
Yes |
Required before production release |
| Production-like deployment |
Recommended |
Use production build settings, HTTPS, real domains, and realistic API URLs |
Do not approve release from local testing only. That would be optimism wearing a fake mustache.
4. Browser and device matrix
Desktop browsers
| Browser |
OS |
Priority |
| Chrome latest |
Windows |
P0 |
| Edge latest |
Windows |
P0 |
| Safari latest |
macOS |
P1 |
| Firefox latest |
Windows or macOS |
P1 |
Mobile and tablet
| Device class |
Width target |
Priority |
| Small mobile |
360 x 800 |
P0 |
| Large mobile |
390 x 844 |
P0 |
| Tablet |
768 x 1024 |
P1 |
| Small laptop |
1280 x 800 |
P0 |
| Desktop |
1440 x 900 |
P0 |
| Wide desktop |
1920 x 1080 |
P1 |
Use real devices where possible for mobile navigation, keyboard behavior, touch target size, and scroll locking. Browser dev tools are useful, but they are not a phone, no matter how hard the viewport dropdown tries.
5. Test users and roles
Prepare these accounts before testing:
| Role |
Needed for |
| Public visitor |
Homepage, marketplace, footer pages, sign-in/create-account flows |
| Renter |
Carplace renter dashboard, profile, saved companies, notifications |
| Operator / agency admin |
Main dashboard, reservations, contracts, fleet, customers, team, billing, settings |
| Operator team member with limited permissions |
Permission visibility and blocked routes |
| Platform super admin |
Admin dashboard and platform management pages |
| Invalid/expired user |
Auth error states, reset password, invite, verification edge cases |
6. Required test data
Create or seed the following before full UI testing:
| Data |
Minimum requirement |
| Companies/agencies |
At least 3 active companies with different logos, statuses, locales, and subscription states |
| Vehicles |
At least 10 vehicles across available, reserved, maintenance, inactive, and incomplete states |
| Reservations |
Draft, confirmed, active, overdue, cancelled, completed, online-requested |
| Contracts |
At least one printable contract with customer, vehicle, dates, photos, and charges |
| Customers/renters |
Customers with complete, partial, and missing information |
| Team members |
Admin, manager, agent, inactive user, invited user |
| Reviews/complaints |
Open, resolved, escalated, empty-state capable |
| Billing/subscription |
Active plan, trial, past due, cancelled or expired state where possible |
| Notifications |
Read, unread, action-required, empty state |
| Admin data |
Companies, renters, platform admins, pricing plans, containers, audit logs, menu entries, site config |
| Localization content |
English, French, Arabic strings for public and authenticated areas |
7. Global design acceptance criteria
Every page must satisfy these checks:
- Uses Phase 16 blue/orange token system.
- Blue is used for primary operational actions.
- Orange is reserved for conversion, emphasis, selected states, focus, or warnings.
- Page background, panels, cards, forms, tables, badges, and shadows match the homepage visual language.
- No old
FleetOS branding appears anywhere.
- No mixed brand names such as
RentalCarDrive, RentalDrive, or legacy storefront naming appear in visible UI unless intentionally part of old data.
- Light and dark mode both remain readable.
- Arabic uses true RTL layout, not just Arabic text shoved into left-to-right furniture.
- Public navbar and footer appear on standalone public/auth pages where expected.
- Embedded auth pages using
embedded=1 do not show duplicated navbar/footer.
- Mobile layouts avoid horizontal scrolling.
- Buttons, links, inputs, selects, and controls have visible hover, active, disabled, loading, and focus-visible states.
- Interactive controls are approximately 44 px minimum height where practical.
- Tables, modals, drawers, menus, and dropdowns remain usable on mobile.
- Loading, empty, success, validation-error, permission-error, and server-error states are visually consistent.
8. Global navigation and layout tests
| ID |
Area |
Steps |
Expected result |
Priority |
| NAV-001 |
Public navbar |
Open homepage desktop. Inspect logo, nav links, language switcher, theme switcher, CTAs. |
Navbar matches Phase 16 design, no clipping, active/hover states visible. |
P0 |
| NAV-002 |
Public mobile navbar |
Open homepage at 360 px. Open and close mobile menu. |
Menu opens cleanly, traps visual focus appropriately, scroll does not break, links are usable. |
P0 |
| NAV-003 |
Public footer |
Open homepage, marketplace home, sign-in, create account. |
Shared footer appears consistently on standalone public pages. |
P0 |
| NAV-004 |
Auth public layout |
Open dashboard sign-in, sign-up, forgot password, reset password, verify email, onboarding. |
Shared navbar/footer are visible unless embedded=1 is present. |
P0 |
| NAV-005 |
Embedded auth layout |
Add ?embedded=1 to auth URLs. |
Navbar/footer are hidden and page does not show nested chrome. |
P0 |
| NAV-006 |
Dashboard shell |
Log in as operator. Move through all dashboard routes. |
Sidebar, topbar, active states, page width, and spacing remain consistent. |
P0 |
| NAV-007 |
Admin shell |
Log in as platform admin. Move through all admin routes. |
Admin sidebar/topbar match dashboard design system, with admin-specific nav. |
P0 |
| NAV-008 |
Mobile operational shell |
Open dashboard/admin at mobile width. Open sidebar/menu. |
Drawer works, content is not hidden behind topbar, no horizontal scrolling. |
P0 |
| NAV-009 |
Logout/account controls |
Use user/account menu in dashboard/admin. |
Menu opens, closes, keyboard works, logout/account actions are visible. |
P1 |
| NAV-010 |
Active route state |
Visit every sidebar route. |
Correct nav item uses active state and accessible current-page indication. |
P1 |
9. Homepage manual tests
Test locales: /en, /fr, /ar.
| ID |
Page/feature |
Steps |
Expected result |
Priority |
| HOME-001 |
Homepage load |
Open each locale homepage. |
Hero, proof section, comparison, workflow, feature sections, pricing/CTA areas load without broken layout. |
P0 |
| HOME-002 |
Hero CTAs |
Click primary demo CTA and secondary tour/explore CTA if present. |
Correct dialog, route, or section opens. No dead links. |
P0 |
| HOME-003 |
Demo dialog/form |
Open demo request flow. Submit empty form, invalid email, then valid data. |
Validation messages are clear; valid submission shows success or expected API result. |
P0 |
| HOME-004 |
Language switcher |
Switch EN to FR to AR and back. |
User remains on matching route; copy changes; Arabic direction flips to RTL. |
P0 |
| HOME-005 |
Theme switcher |
Switch light, dark, system. Refresh page. |
Theme applies consistently and persists if persistence is supported. |
P0 |
| HOME-006 |
Header scroll behavior |
Scroll through page. |
Sticky/header behavior is stable and does not obscure content. |
P1 |
| HOME-007 |
Public content pages |
Open localized slug pages available in the site. |
Header/footer render; not-found and loading states are localized and styled. |
P1 |
| HOME-008 |
Component lab |
Open component lab if enabled. |
Components render without layout breakage and match tokens. |
P2 |
| HOME-009 |
SEO/basic metadata |
Inspect tab title, favicon, social preview if available. |
Branding is RentalDriveGo and no old brand appears. |
P2 |
| HOME-010 |
Public accessibility pass |
Keyboard through homepage from top to bottom. |
Focus order is logical, focus rings visible, menus/dialogs usable. |
P0 |
10. Carplace / storefront public tests
| ID |
Page/feature |
Steps |
Expected result |
Priority |
| CP-001 |
Marketplace home |
Open storefront public home. |
Uses Phase 16 navbar/footer and visual tokens. |
P0 |
| CP-002 |
Explore page |
Open /explore. Search/filter if controls exist. |
Filters are usable; results grid/cards align with design; empty state works. |
P0 |
| CP-003 |
Company workspace page |
Open company workspace creation/info page. |
Public layout, CTA hierarchy, and form controls are consistent. |
P0 |
| CP-004 |
Company profile |
Open /explore/[slug] for at least 3 companies. |
Branding, vehicles, contact/booking areas load correctly. |
P0 |
| CP-005 |
Vehicle detail |
Open /explore/[slug]/vehicles/[id]. |
Vehicle photos/details/pricing/availability render without overflow. |
P0 |
| CP-006 |
Booking form |
Submit booking with empty, invalid, and valid fields. |
Validation, date handling, price display, and success/error states are clear. |
P0 |
| CP-007 |
Public sign-in |
Open storefront sign-in. |
Styling matches public auth design and routes correctly. |
P0 |
| CP-008 |
Policy pages |
Open EN/FR/AR privacy and terms pages. |
Footer/header are consistent; copy direction is correct; long content is readable. |
P1 |
| CP-009 |
Footer content pages |
Open footer dynamic pages. |
Content loads; no broken layout or missing footer. |
P1 |
| CP-010 |
Marketplace mobile |
Test home, explore, company, vehicle detail at 360 px. |
Cards stack properly, no horizontal scroll, booking CTA remains usable. |
P0 |
11. Renter account tests
| ID |
Page/feature |
Steps |
Expected result |
Priority |
| RENT-001 |
Renter sign-in |
Open renter sign-in and test invalid credentials. |
Validation/error state is styled and readable. |
P0 |
| RENT-002 |
Renter sign-up |
Create account with missing, invalid, and valid data. |
Form states and success path are clear. |
P0 |
| RENT-003 |
Renter dashboard |
Log in as renter and open dashboard. |
Shell is consistent with marketplace/renter context; key data appears. |
P0 |
| RENT-004 |
Saved companies |
Save and remove company where supported. |
State updates visually and persists after refresh if expected. |
P1 |
| RENT-005 |
Renter profile |
Update profile fields. |
Field styling, validation, save state, and success message are consistent. |
P0 |
| RENT-006 |
Renter notifications |
Open notifications with read/unread data. |
Notification cards/states are readable in light/dark. |
P1 |
| RENT-007 |
Permission boundary |
Try accessing renter pages while logged out. |
Redirect or guard behavior is correct. |
P0 |
12. Dashboard public authentication tests
| ID |
Page/feature |
Steps |
Expected result |
Priority |
| AUTH-001 |
Sign in |
Open dashboard sign-in. Test empty, invalid, and valid credentials. |
Public navbar/footer show; errors are clear; success redirects to dashboard. |
P0 |
| AUTH-002 |
Create account |
Open sign-up/create account. Test required fields and valid registration. |
Form matches design; validation and success path are clear. |
P0 |
| AUTH-003 |
Forgot password |
Request reset with empty, invalid, unknown, and valid email. |
Safe, clear messaging; no layout break. |
P0 |
| AUTH-004 |
Reset password |
Open reset page with missing, invalid, expired, and valid token. |
Correct error/success states and password field behavior. |
P0 |
| AUTH-005 |
Verify email |
Open valid, invalid, and expired verification states. |
Styled message and next action are clear. |
P1 |
| AUTH-006 |
Onboarding |
Open onboarding flow as invited/new user. |
Layout, steps, forms, and final redirect work. |
P0 |
| AUTH-007 |
Accept invite |
Open invitation acceptance with valid/expired invite. |
Correct messaging and route behavior. |
P0 |
| AUTH-008 |
Embedded auth |
Open each auth URL with ?embedded=1. |
No duplicated navbar/footer; form remains centered and usable. |
P0 |
13. Operator dashboard tests
Dashboard overview
| ID |
Page/feature |
Steps |
Expected result |
Priority |
| DASH-001 |
Overview |
Open dashboard home. |
Hero/heading, metrics, quick actions, and recent activity match Phase 16 style. |
P0 |
| DASH-002 |
Empty state |
Use company/account with minimal data. |
Empty panels are intentional, helpful, and styled. |
P1 |
| DASH-003 |
Loading state |
Throttle network and reload. |
Skeleton/loading states do not cause layout jumps or unreadable text. |
P1 |
Reservations
| ID |
Page/feature |
Steps |
Expected result |
Priority |
| RES-001 |
Reservation list |
Open reservations page. Search/filter/sort if available. |
Table/cards are readable and responsive; statuses are clear. |
P0 |
| RES-002 |
New reservation |
Create reservation with missing, invalid, and valid data. |
Form fields, validation, customer/vehicle/date selection, and save states work. |
P0 |
| RES-003 |
Reservation detail |
Open confirmed, active, cancelled, completed reservation. |
Detail layout, actions, status badges, panels, and timeline are consistent. |
P0 |
| RES-004 |
Reservation photos |
Upload/view/remove photos if supported. |
Upload UI, previews, errors, and mobile behavior work. |
P1 |
| RES-005 |
Vehicle condition |
Complete damage/condition inspection if supported. |
Cards, controls, required fields, and summary are usable. |
P1 |
Contracts
| ID |
Page/feature |
Steps |
Expected result |
Priority |
| CON-001 |
Contract list |
Open contracts page and inspect table/actions. |
Table style, filters, and empty states match design. |
P0 |
| CON-002 |
Contract detail |
Open contract detail. |
Panels, customer/vehicle/rate sections, and actions align with design. |
P0 |
| CON-003 |
Print contract |
Use print preview. |
Printable contract remains document-like and does not include broken app chrome. |
P0 |
Fleet
| ID |
Page/feature |
Steps |
Expected result |
Priority |
| FLEET-001 |
Fleet list |
Open fleet page with many vehicles. |
Cards/table/grid are readable; status colors include text/icons. |
P0 |
| FLEET-002 |
Vehicle detail |
Open vehicle detail for available, reserved, maintenance vehicles. |
Detail panels, pricing, availability, and actions are consistent. |
P0 |
| FLEET-003 |
Vehicle calendar |
Open calendar view if present. |
Calendar cells, selected date, availability, and overflow are usable. |
P1 |
| FLEET-004 |
Vehicle pricing |
Edit pricing rules if supported. |
Inputs, tables, add/remove states, and save behavior are clear. |
P1 |
Customers and team
| ID |
Page/feature |
Steps |
Expected result |
Priority |
| CUST-001 |
Customers |
Open customers page, search, inspect profiles/actions. |
Table/cards, empty states, and row actions match design. |
P0 |
| TEAM-001 |
Team list |
Open team page with active/invited/inactive members. |
Roles/statuses are clear and not color-only. |
P0 |
| TEAM-002 |
Invite modal |
Open invite member modal and submit invalid/valid data. |
Modal, focus, validation, and success/error states work. |
P0 |
| TEAM-003 |
Edit member modal |
Change role/permissions where allowed. |
Permission matrix is readable and keyboard usable. |
P1 |
| TEAM-004 |
Limited permission user |
Log in as limited member. |
Restricted nav/actions are hidden or disabled consistently. |
P0 |
Online reservations, reviews, complaints, offers
| ID |
Page/feature |
Steps |
Expected result |
Priority |
| OPS-001 |
Online reservations |
Open page with pending/accepted/rejected requests. |
Statuses, action buttons, details, and empty states are consistent. |
P0 |
| OPS-002 |
Reviews |
Open reviews page with data and empty state. |
Review cards/table and response controls are readable. |
P1 |
| OPS-003 |
Complaints |
Open complaints page with open/resolved items. |
Priority/status treatment is accessible and consistent. |
P1 |
| OPS-004 |
Offers |
Create/edit/disable an offer where supported. |
Orange is used only for promotional emphasis; operational saves are blue. |
P1 |
Reports, notifications, billing, subscription, settings
| ID |
Page/feature |
Steps |
Expected result |
Priority |
| MGT-001 |
Reports |
Open reports page with and without data. |
Charts/tables/cards align and stay readable in dark mode. |
P1 |
| MGT-002 |
Notifications |
Open notifications, mark read/unread if supported. |
Read/unread states are visible and accessible. |
P1 |
| MGT-003 |
Billing |
Open billing page with active/past-due/trial states. |
Plan cards, invoices, payment CTAs, and warnings are clear. |
P0 |
| MGT-004 |
Subscription |
Open subscription page and test plan state display. |
Current plan, upgrade/downgrade/cancel paths are visually clear. |
P0 |
| MGT-005 |
Settings |
Open all settings sections. |
Sections are organized, forms are consistent, and save states work. |
P0 |
| MGT-006 |
Dashboard route refresh |
Refresh every dashboard page directly. |
No route loses layout, auth, locale, or styling after refresh. |
P0 |
14. Platform admin tests
Admin authentication
| ID |
Page/feature |
Steps |
Expected result |
Priority |
| AD-AUTH-001 |
Admin login |
Open admin login and test invalid/valid credentials. |
Page matches design; errors are readable; success redirects to admin dashboard. |
P0 |
| AD-AUTH-002 |
Admin forgot/reset password |
Test forgot and reset flows. |
Validation and success/error states are clear. |
P1 |
| AD-AUTH-003 |
Auth redirect |
Open admin root and auth redirect routes. |
Correct redirect behavior for logged-in/logged-out users. |
P0 |
Admin dashboard and management pages
| ID |
Page/feature |
Steps |
Expected result |
Priority |
| AD-001 |
Admin overview |
Open admin dashboard home. |
Hero/metrics/actions match Phase 16 style. |
P0 |
| AD-002 |
Companies list |
Open companies page with many companies. Search/filter/sort where available. |
Table/cards, statuses, and actions are consistent. |
P0 |
| AD-003 |
Company detail |
Open company detail for active, trial, suspended/past-due companies. |
Panels, admin actions, metadata, and billing/status sections are clear. |
P0 |
| AD-004 |
Renters |
Open renters page. Inspect search/filter/detail actions. |
Layout and status treatment are consistent. |
P1 |
| AD-005 |
Admin users |
Open admin users page. Create/edit/disable if supported. |
Forms/modals/buttons use shared design and permissions are clear. |
P0 |
| AD-006 |
Billing |
Open admin billing page. |
Invoices/subscriptions/payment states are readable and consistent. |
P0 |
| AD-007 |
Pricing |
Open pricing management. Add/edit plans where supported. |
Form fields, conversion accents, and save buttons follow token rules. |
P0 |
| AD-008 |
Containers |
Open containers page. |
Container status, controls, tables, and warnings are clear. |
P1 |
| AD-009 |
Audit logs |
Open audit logs with dense data. Search/filter if available. |
Dense table remains readable, scrollable, and accessible. |
P1 |
| AD-010 |
Notifications |
Open admin notifications page. |
Creation/list/status/empty states are consistent. |
P1 |
| AD-011 |
Menu management |
Open menu management page. Edit/reorder/toggle items if supported. |
Drag/drop or controls work and are usable on mobile. |
P1 |
| AD-012 |
Site config |
Open site configuration page. Edit fields and save. |
Field styling, section hierarchy, validation, and success states work. |
P0 |
| AD-013 |
Admin mobile |
Test all admin pages at 360 px. |
Drawer, tables, modals, and forms remain usable without horizontal page scroll. |
P0 |
| AD-014 |
Admin route refresh |
Refresh every admin page directly. |
No page loses shell, auth state, or styling. |
P0 |
15. Localization and RTL tests
Run these checks across homepage, Carplace, dashboard auth, dashboard, and admin where language switching is available.
| ID |
Scenario |
Steps |
Expected result |
Priority |
| LOC-001 |
English |
Use English UI. |
Copy fits controls; dates/numbers are readable. |
P0 |
| LOC-002 |
French |
Switch to French. |
Longer French labels do not overflow buttons, cards, tables, or nav. |
P0 |
| LOC-003 |
Arabic RTL |
Switch to Arabic. |
Layout direction flips; sidebar, nav, icons, paddings, and text alignment are RTL-aware. |
P0 |
| LOC-004 |
Mixed content |
View emails, names, phone numbers, prices, and vehicle names in Arabic UI. |
LTR data remains readable inside RTL layout. |
P1 |
| LOC-005 |
Mobile Arabic |
Test public and authenticated mobile pages in Arabic. |
Drawers open from the correct side; content does not clip. |
P0 |
| LOC-006 |
Missing translation |
Force/identify missing string where possible. |
No raw translation keys leak into UI. |
P1 |
16. Theme tests
| ID |
Scenario |
Steps |
Expected result |
Priority |
| THEME-001 |
Light mode |
Switch to light mode and inspect all major routes. |
Contrast, shadows, borders, and panels match Phase 16. |
P0 |
| THEME-002 |
Dark mode |
Switch to dark mode and inspect all major routes. |
Text, inputs, badges, tables, dialogs, and menus remain readable. |
P0 |
| THEME-003 |
System mode |
Set system theme and change OS preference. |
App follows system setting if supported. |
P1 |
| THEME-004 |
Theme persistence |
Change theme, refresh, open new tab. |
Theme persists consistently where expected. |
P1 |
| THEME-005 |
Dark mode modals/dropdowns |
Open menus, dialogs, date pickers, selects. |
Overlays do not appear with mismatched light/dark styling. |
P0 |
17. Responsive testing checklist
For each major route group, test 360 px, 390 px, 768 px, 1280 px, and 1440 px widths.
| ID |
Check |
Expected result |
| RESP-001 |
No horizontal page scroll |
Content fits viewport except intentional internal table scrolling. |
| RESP-002 |
Sidebar/drawer behavior |
Desktop sidebar becomes usable mobile drawer. |
| RESP-003 |
Topbar behavior |
Topbar does not cover content or controls. |
| RESP-004 |
Tables |
Tables either stack, scroll inside a panel, or remain readable. |
| RESP-005 |
Forms |
Labels, inputs, helper text, errors, and buttons fit. |
| RESP-006 |
Modals |
Dialogs fit viewport and scroll internally if needed. |
| RESP-007 |
Cards/grids |
Cards stack with reasonable spacing. |
| RESP-008 |
Footer |
Footer columns collapse cleanly. |
| RESP-009 |
CTAs |
Primary actions remain reachable without awkward scrolling. |
| RESP-010 |
Touch targets |
Controls are large enough for touch interaction. |
18. Accessibility spot-check plan
This is not a full WCAG audit, but these checks are mandatory before release.
| ID |
Check |
Steps |
Expected result |
Priority |
| A11Y-001 |
Keyboard navigation |
Use Tab/Shift+Tab through every major page. |
Focus order is logical and visible. |
P0 |
| A11Y-002 |
Skip/repeated navigation |
Test repeated nav areas. |
User can reach main content without excessive tabbing where supported. |
P1 |
| A11Y-003 |
Menus/dialogs |
Open and close nav menus, dropdowns, modals. |
Focus enters, remains usable, and returns predictably. |
P0 |
| A11Y-004 |
Forms |
Trigger validation errors. |
Errors are associated with fields and readable. |
P0 |
| A11Y-005 |
Color contrast |
Inspect text, badges, disabled states, links in light/dark. |
Text and states are legible. |
P0 |
| A11Y-006 |
Color-only status |
Inspect statuses. |
Status is not communicated by color alone. |
P0 |
| A11Y-007 |
Zoom |
Test browser zoom at 200%. |
Content remains usable without major clipping. |
P1 |
| A11Y-008 |
Reduced motion |
Enable reduced motion. |
No essential interaction depends on animation. |
P1 |
| A11Y-009 |
Forced colors |
Test high-contrast/forced-colors mode if available. |
Focus, text, and controls remain usable. |
P1 |
| A11Y-010 |
Screen reader smoke |
Use VoiceOver/NVDA on key pages. |
Headings, buttons, form labels, links, and menus are understandable. |
P1 |
19. Error, empty, loading, and permission states
Verify these states across homepage forms, Carplace booking, dashboard pages, and admin pages.
| ID |
State |
How to test |
Expected result |
Priority |
| STATE-001 |
Loading |
Throttle network or reload API-heavy pages. |
Loading UI uses shared styling and avoids layout collapse. |
P0 |
| STATE-002 |
Empty data |
Use account with no records. |
Empty state explains what to do next and uses matching card/panel style. |
P0 |
| STATE-003 |
Validation error |
Submit required forms empty or invalid. |
Error messages are clear, close to fields, and accessible. |
P0 |
| STATE-004 |
Server error |
Simulate 500/API failure where possible. |
Error message is readable and not a raw stack trace. |
P0 |
| STATE-005 |
Unauthorized |
Access dashboard/admin while logged out. |
Redirect or blocked state is correct. |
P0 |
| STATE-006 |
Forbidden |
Access admin-only route with non-admin user. |
User sees safe forbidden state or redirect. |
P0 |
| STATE-007 |
Not found |
Open invalid public, dashboard, storefront, and admin URLs. |
Styled not-found behavior, no broken shell. |
P1 |
| STATE-008 |
Offline |
Disable network after page load and perform action. |
User receives clear failure feedback. |
P1 |
20. Cross-app route and brand consistency tests
| ID |
Check |
Steps |
Expected result |
Priority |
| XAPP-001 |
Homepage to dashboard auth |
Use homepage CTA that leads to sign-in/create account. |
Correct app opens with public navbar/footer and same design language. |
P0 |
| XAPP-002 |
Homepage to Carplace |
Use marketplace/explore links if present. |
Carplace opens with shared public design. |
P0 |
| XAPP-003 |
Dashboard to public site |
Use logo/help/home links where present. |
Correct destination; no old domain/path if not intended. |
P1 |
| XAPP-004 |
Admin to company detail |
From admin companies, open company detail. |
Route works and design remains consistent. |
P0 |
| XAPP-005 |
Branding |
Search visible UI for old names. |
Only RentalDriveGo and intentional Carplace marketplace naming appear. |
P0 |
| XAPP-006 |
Favicon/logo assets |
Inspect browser tab and logos across apps. |
Assets are not broken, stretched, or legacy-branded. |
P1 |
21. Manual regression checklist before release
Run this checklist after every UI/design change:
- Homepage loads in EN, FR, AR.
- Public navbar works on desktop and mobile.
- Public footer appears on homepage, Carplace, sign-in, create-account, forgot-password, reset-password, verify-email, onboarding.
- Embedded auth hides navbar/footer with
embedded=1.
- Dashboard login works.
- Dashboard overview loads.
- Dashboard reservations list, new reservation, and reservation detail load.
- Dashboard contracts list, contract detail, and print preview work.
- Dashboard fleet list and vehicle detail load.
- Dashboard customers, team, billing, subscription, reports, notifications, settings load.
- Admin login works.
- Admin overview, companies, company detail, renters, admin users, billing, pricing, containers, audit logs, notifications, menu management, site config load.
- Carplace home, explore, company page, vehicle page, booking form, renter dashboard load.
- Light/dark mode checked on at least homepage, dashboard overview, admin companies, Carplace explore.
- Arabic RTL checked on at least homepage, dashboard overview, admin companies, Carplace explore.
- Mobile checked on at least homepage, dashboard overview, admin companies, Carplace vehicle detail.
- Keyboard navigation checked on homepage, dashboard sign-in, reservation form, admin companies.
- No visible old branding.
- No horizontal scroll at mobile width.
- No raw errors, stack traces, broken images, or unstyled default controls.
22. Defect reporting format
Every UI defect should include:
Severity definitions:
| Severity |
Meaning |
Example |
| S0 Blocker |
User cannot complete a core flow |
Cannot sign in, dashboard crashes, booking cannot submit |
| S1 Critical |
Major page/flow broken or misleading |
Wrong layout on mobile, save action hidden, admin table unusable |
| S2 Major |
Important UI defect with workaround |
Modal overflow, dark mode unreadable badge, RTL alignment bug |
| S3 Minor |
Cosmetic or low-impact issue |
Slight spacing mismatch, non-critical hover inconsistency |
| S4 Trivial |
Polish only |
Tiny copy or icon alignment issue |
23. Release exit criteria
Manual UI testing may be accepted when:
- All P0 tests pass.
- No S0 or S1 defects remain open.
- S2 defects have approved fixes or explicit release acceptance.
- Homepage, Carplace, dashboard, and admin have been tested in light, dark, and Arabic RTL.
- Mobile smoke tests pass at 360 px width.
- Keyboard navigation smoke tests pass for public auth, dashboard, and admin.
- Public navbar/footer behavior is verified on all standalone public/auth pages.
- Embedded auth behavior is verified with
embedded=1.
- Visual consistency review confirms Phase 16 design language across public and authenticated pages.
- Stakeholder signs off with screenshots or recordings attached for the main flows.
24. Suggested execution order
- Smoke test all apps and authentication first.
- Test homepage and public navigation/footer.
- Test Carplace public marketplace and renter flows.
- Test operator dashboard routes.
- Test platform admin routes.
- Run localization and RTL passes.
- Run dark mode pass.
- Run mobile pass.
- Run accessibility spot checks.
- Re-test fixed defects and complete release checklist.
This order catches structural failures early. Testing every button color before confirming login works.