3.8 KiB
3.8 KiB
App model — grounding index for test generation
Generated by
npm run qa:indexfrom the codebase. Do not edit by hand.
Base URL: http://localhost:4200 · Auth: basic (header X-Tenant)
Accounts
| const | tenant | role | |
|---|---|---|---|
SKYLINE_AGENT |
agent@skyline.test | skyline | agent |
SKYLINE_ADMIN |
admin@skyline.test | skyline | admin |
GLOBETROTTER_AGENT |
agent@globetrotter.test | globetrotter | agent |
GLOBETROTTER_ADMIN |
admin@globetrotter.test | globetrotter | admin |
Password: see DEMO_PASSWORD in accounts.ts. Credentials verified within the named tenant; take accounts from e2e/fixtures/accounts.ts, never hardcode.
Routes
/login/dashboard/search/book/:flightId/bookings/bookings/:bookingId
Areas (spec file → report area)
auth.spec.ts— Signing in and sessionssearch.spec.ts— Searching for flightsbooking.spec.ts— Booking and cancellingtenant-isolation.spec.ts— Keeping agencies separatedashboard.spec.ts— Agency dashboardsimulation.spec.ts— Behaviour when things go wrongresponsive.spec.ts— Phones and small screens
API endpoints
| method | path | auth |
|---|---|---|
| GET | /api/session |
required |
| GET | /api/flights |
required |
| GET | /api/flights/{id} |
required |
| GET | /api/airports |
required |
| GET | /api/airlines |
required |
| GET | /api/bookings |
required |
| POST | /api/bookings |
required |
| GET | /api/bookings/{id} |
required |
| POST | /api/bookings/{id}/cancel |
required |
| GET | /api/dashboard |
required |
| GET | /api/health |
public |
| GET | /api/tenants |
public |
Page objects (use these — no raw selectors in specs)
e2e/pages/bookings.page.ts — BookingsPage, BookingDetailPage
- locators:
rows,emptyState,filterAll,filterConfirmed,filterCancelled,confirmationBanner,reference,statusBadge,travellerRows,totalPaid,cancelButton,confirmCancelButton,keepButton,cancelledNotice - methods:
goto(),settled(),rowFor(reference: string),open(reference: string),filterBy(status: 'all' | 'confirmed' | 'cancelled'),bookingReference(),cancel(expectedReference: string)
e2e/pages/checkout.page.ts — CheckoutPage
- locators:
travellerFieldsets,addTraveller,contactEmail,contactPhone,confirm,total,error,seatsLeft - methods:
waitUntilReady(),totalAmount(),fillTraveller(index: number, traveller: Traveller),fillTravellers(travellers: Traveller[]),removeTraveller(index: number),confirmBooking()
e2e/pages/dashboard.page.ts — DashboardPage
- locators:
greeting,tiles,recentRows,topRoutes - methods:
goto(),settled(),tileValue(label: string)
e2e/pages/login.page.ts — LoginPage
- locators:
tenantSelect,email,password,submit,error,demoChips - methods:
goto(),useDemoChip(account: Account),fill(account: Account, password = account.password),signIn(account: Account),signInExpectingFailure(account: Account, password: string)
e2e/pages/search.page.ts — FlightCard, SearchPage
- locators:
root,origin,destination,date,cabin,travellers,searchButton,resetButton,sort,resultSummary,results,emptyState,nextPage,prevPage - methods:
fare(),seatsLeft(),flightNumber(),durationMinutes(),goto(),card(index = 0),settled(),searchRoute(from: string, to: string),setTravellers(n: number),sortBy(value: 'price' | 'duration' | 'departure'),totalResults(),cardForFlight(flightNumber: string)
e2e/pages/shell.page.ts — ShellPage
- locators:
agencyName,agencySlug,accountName,accountMeta,signOut - methods:
goToDashboard(),goToSearch(),goToBookings(),signOutAndWait()