Admin Panel
Table filters
Compound filter (role + status) narrows the data set and reflects the chip count.
User story
As an admin, I want to combine role and status filters and see a clear chip-summary of what's active.
Acceptance criteria
- Multiple filters apply with AND semantics
- Chips render for each active filter
- Removing a chip removes only that filter
- Filter state encodes into the URL
Manual test steps
- 1.Open /users
- 2.Set role=Admin
- 3.Set status=Active
- 4.Remove the Active chip
Expected result
URL contains role=admin only after the chip removal; rows update accordingly.
Possible bug risks
- OR vs AND semantics inconsistent across columns
- URL state drifts from internal state on back/forward
- Chip removal forgets the URL pruning
Reference Playwright spec
table-filters.spec.ts
ts12345678910
import { test, expect } from '@playwright/test';
test('combined filter chips', async ({ page }) => {
await page.goto('https://lab.hakdogan.com/users');
await page.getByLabel(/role/i).selectOption('admin');
await page.getByLabel(/status/i).selectOption('active');
await expect(page.getByTestId('filter-chip-role')).toContainText('Admin');
await expect(page.getByTestId('filter-chip-status')).toContainText('Active');
});