# Black Bean Tables — QA Checklist (pre-GTM)

Run automated checks first:

```bash
npm run test:all      # PHP smoke + Playwright smoke
npm run test:e2e:wp   # WordPress site smoke (requires http://blackbean.test)
```

## 1. Install & dashboard

- [ ] Activate plugin on clean WP 6.x / PHP 8.1+
- [ ] Dashboard loads; onboarding hero shows when no boards
- [ ] Install **Projects** template; board opens with Grid + Kanban views

## 2. Workspace & views

- [ ] Grid: inline edit, item panel, load more when 100+ rows
- [ ] Kanban: drag status column; bulk actions
- [ ] Calendar: bulk set status / assignee
- [ ] Filters + saved filters apply correctly

## 3. Workflows & approvals

- [ ] Board → Workflows: define steps, disable backward without approval
- [ ] Grid: backward status blocked → request approval
- [ ] Manager: Pending approvals → Approve applies status
- [ ] Requester receives inbox notification (Integrations → workflow notifications ON)

## 4. Permissions & row access

- [ ] Board member Viewer cannot edit
- [ ] Row access **Assignee only** hides other users' rows
- [ ] Denied access logged in Activity (access_denied)

## 5. Integrations & API

- [ ] API key: read/write with optional field scope
- [ ] OAuth app: create with write field scope
- [ ] REST rate limit returns 429 after burst (non-admin)
- [ ] CSV export stops at 10k rows

## 6. Forms & embed

- [ ] Public form creates row when enabled
- [ ] Embed view loads (if embed_public enabled)

## 7. Inbox & notifications

- [ ] Inbox filters: unread, event type (workflow_approval / workflow_decision)
- [ ] Email preferences save

## 8. Regression

- [ ] Automations fire on status change
- [ ] Comments on record + @mention
- [ ] Marketplace export/import board JSON

## Sign-off

| Role | Name | Date | Pass |
|------|------|------|------|
| Dev | | | |
| QA | | | |
