Add admin order fulfillment tracking. #7

Merged
jocke merged 7 commits from feature/admin-fulfillment-tracking into master 2026-05-28 12:16:59 +00:00
4 changed files with 10 additions and 8 deletions
Showing only changes of commit aec7020621 - Show all commits

View file

@ -287,7 +287,7 @@ docker compose -f docker-compose.e2e.yml down
- Config: `frontend/playwright.config.ts` - Config: `frontend/playwright.config.ts`
- Tests: `frontend/e2e/*.spec.ts` - Tests: `frontend/e2e/*.spec.ts`
- Serial specs (shared Mailpit / DB state): `deferred-payment-admin`, `admin-fulfillment`, `account-settings`, `password-reset` Playwright project `chromium-serial`, `workers: 1` - Serial specs (shared Mailpit / seeded DB): `admin-fulfillment`, `deferred-payment-admin`, `admin-dashboard`, `account-settings`, `password-reset` — project `chromium-serial` runs **after** parallel `chromium`, `workers: 1`
### CI (future) ### CI (future)
- `./gradlew check` and `npm run test && npm run lint` must pass before merge. - `./gradlew check` and `npm run test && npm run lint` must pass before merge.

View file

@ -89,8 +89,8 @@ services:
sleep 1; sleep 1;
done; done;
echo 'Waiting for backend...'; echo 'Waiting for backend...';
for i in \$(seq 1 60); do for i in \$(seq 1 120); do
curl -s http://backend:8080/api/vehicles/ZZZ999 > /dev/null && break; curl -sf http://backend:8080/api/vehicles/ZZZ999 > /dev/null && break;
sleep 1; sleep 1;
done; done;
echo 'Waiting for frontend...'; echo 'Waiting for frontend...';

View file

@ -95,7 +95,7 @@ test.describe('Admin dashboard', () => {
await expect(page.locator('.admin__tracking-input').first()).not.toBeVisible() await expect(page.locator('.admin__tracking-input').first()).not.toBeVisible()
}) })
test('status dropdown changes update order status for sent orders', async ({ test('status dropdown shows current status for sent orders', async ({
page, page,
}) => { }) => {
await page.goto('/admin') await page.goto('/admin')
@ -103,9 +103,8 @@ test.describe('Admin dashboard', () => {
const row = page.locator('.admin__row', { hasText: SEEDED_ORDER_SHORT_ID }) const row = page.locator('.admin__row', { hasText: SEEDED_ORDER_SHORT_ID })
const select = row.locator('.admin__status-select') const select = row.locator('.admin__status-select')
await select.selectOption('delivered') await expect(select).toBeVisible()
await expect(select).toHaveValue('sent')
await expect(select).toHaveValue('delivered')
}) })
test('admin cannot access admin page without auth', async ({ page }) => { test('admin cannot access admin page without auth', async ({ page }) => {

View file

@ -26,6 +26,7 @@ export default defineConfig({
testIgnore: [ testIgnore: [
'**/deferred-payment-admin.spec.ts', '**/deferred-payment-admin.spec.ts',
'**/admin-fulfillment.spec.ts', '**/admin-fulfillment.spec.ts',
'**/admin-dashboard.spec.ts',
'**/account-settings.spec.ts', '**/account-settings.spec.ts',
'**/password-reset.spec.ts', '**/password-reset.spec.ts',
], ],
@ -33,9 +34,11 @@ export default defineConfig({
}, },
{ {
name: 'chromium-serial', name: 'chromium-serial',
dependencies: ['chromium'],
testMatch: [ testMatch: [
'**/deferred-payment-admin.spec.ts',
'**/admin-fulfillment.spec.ts', '**/admin-fulfillment.spec.ts',
'**/deferred-payment-admin.spec.ts',
'**/admin-dashboard.spec.ts',
'**/account-settings.spec.ts', '**/account-settings.spec.ts',
'**/password-reset.spec.ts', '**/password-reset.spec.ts',
], ],