new changes
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
# App model — grounding index for test generation
|
||||
|
||||
> Generated by `npm run qa:index` from the codebase. Do not edit by hand.
|
||||
|
||||
Base URL: `http://localhost:4200` · Auth: basic (header `X-Tenant`)
|
||||
|
||||
## Accounts
|
||||
|
||||
| const | email | 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 sessions
|
||||
- `search.spec.ts` — Searching for flights
|
||||
- `booking.spec.ts` — Booking and cancelling
|
||||
- `tenant-isolation.spec.ts` — Keeping agencies separate
|
||||
- `dashboard.spec.ts` — Agency dashboard
|
||||
- `simulation.spec.ts` — Behaviour when things go wrong
|
||||
- `responsive.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()`
|
||||
Reference in New Issue
Block a user