# Explore: Approvals System — All Operations

> **Goal**: Deep exploration of the entire approval workflow — queue, process config, submit, approve, reject, reassign. Covers APPR-002 (Unknown names), APPR-004 (chain display), APPR-005 (badge sync), APPR-006 (comments). The approval system has 275 pending items and 204 processes.

## Status: IN PROGRESS — Explored 2026-03-29

**Explorer**: Claude (dev-browser)
**Backend**: Salesforce-direct mode (OAuth)
**Build**: v1772440647784 (3/2/2026)

---

## Operation Paths

### APR-Q01: Approval Queue — Default View (APPR-002)
- **URL**: `/approvals`
- **Actions**:
  1. Observe queue: column headers, record count
  2. Check RECORD column: actual names or "Unknown"?
  3. Check OBJECT column: actual type or "Record"?
  4. Check COMMENTS column: actual comments or "—"?
  5. Check SUBMITTED column: timestamps present?
  6. Count visible items, pagination
- **[SCREENSHOT]** `approvals/queue_default.png`
- **[SCREENSHOT]** `approvals/queue_record_names.png`
- **Check**: APPR-002 — all "Unknown" / "Record" / "—"

### APR-Q02: Approval Queue — Approve Action
- **URL**: `/approvals`
- **Actions**:
  1. Click "Approve" on first item
  2. Observe: confirmation dialog? Comment input?
  3. If dialog: note fields, buttons
  4. Confirm approval
  5. Observe: item removed from queue? Count updated?
  6. Check page header: pending count decremented?
  7. Check sidebar badge: count decremented? (APPR-005)
- **[SCREENSHOT]** `approvals/approve_dialog.png`
- **[SCREENSHOT]** `approvals/approve_result.png`
- **[SCREENSHOT]** `approvals/badge_after_approve.png`
- **Check**: APPR-005 — sidebar badge sync

### APR-Q03: Approval Queue — Reject Action
- **URL**: `/approvals`
- **Actions**:
  1. Click "Reject" on an item
  2. Observe: dialog, comment input, confirmation
  3. Note behavior difference from Approve
- **[SCREENSHOT]** `approvals/reject_dialog.png`

### APR-Q04: Approval Queue — Reassign Action
- **URL**: `/approvals`
- **Actions**:
  1. Click "Reassign" on an item
  2. Observe: user picker dialog, search functionality
  3. Note: does it show selectable users?
- **[SCREENSHOT]** `approvals/reassign_dialog.png`
- **Check**: APPR-002 — user picker vs plain text

### APR-Q05: Approval Queue — Pagination / Scroll
- **URL**: `/approvals`
- **Actions**:
  1. Scroll down through the 275 items
  2. Check: infinite scroll or pagination?
  3. Check: loading behavior for large lists
- **[SCREENSHOT]** `approvals/queue_pagination.png`

### APR-Q06: Approval Queue — Refresh
- **URL**: `/approvals`
- **Actions**:
  1. Click "Refresh" button
  2. Observe loading state, data reload
- **[SCREENSHOT]** `approvals/queue_refresh.png`

### APR-P01: Approval Processes — List View
- **URL**: `/setup/approval-processes`
- **Actions**:
  1. Observe list: Process Name, API Name, Object, Pending, Last Modified
  2. Note Active/Inactive/Obsolete statuses
  3. Check "204 processes | 45 active | 274 pending" header
- **[SCREENSHOT]** `approvals/processes_list.png`

### APR-P02: Approval Processes — Object Filter
- **URL**: `/setup/approval-processes`
- **Actions**:
  1. Find "Manage Approval Processes For:" dropdown
  2. Switch to specific object (e.g., "Cloud User Request")
  3. Observe filtered list
- **[SCREENSHOT]** `approvals/processes_filter.png`

### APR-P03: Approval Processes — View Detail
- **URL**: `/setup/approval-processes`
- **Actions**:
  1. Click on a process (e.g., "Adding Credits Request")
  2. Observe: process steps, entry criteria, approvers, actions
  3. Check: does step detail show approver name or "Unknown"?
- **[SCREENSHOT]** `approvals/process_detail.png`

### APR-P04: Approval Processes — Create New
- **URL**: `/setup/approval-processes`
- **Actions**:
  1. Click "New Approval Process"
  2. Observe: creation wizard/form
  3. Note: object selector, entry criteria builder, step editor
  4. Do NOT save — just explore the UI
- **[SCREENSHOT]** `approvals/process_create_wizard.png`

### APR-SUB01: Submit Record for Approval (end-to-end)
- **URL**: Any object detail page with an approval process (e.g., Quote)
- **Actions**:
  1. Navigate to a Quote detail page
  2. Find "Submit for Approval" button
  3. Click → observe submission dialog
  4. Enter comment: "Test approval submission"
  5. Submit
  6. Verify:
     - Sidebar badge increments
     - Approval Queue shows new item with correct record name
     - COMMENTS shows "Test approval submission"
     - Detail page shows approval chain
- **[SCREENSHOT]** `approvals/submit_from_detail.png`
- **[SCREENSHOT]** `approvals/queue_after_submit.png`
- **Check**: APPR-005 (badge), APPR-006 (comments), APPR-004 (chain)

### APR-CHN01: Approval Chain — After Approval (APPR-004)
- **URL**: Record detail page after approval
- **Actions**:
  1. Go back to the record that was just approved
  2. Check for Approval History section
  3. Verify: shows approved entry with approver name and date
  4. Check: "Submit for Approval" button hidden?
  5. Check: Approval status banner visible?
  6. Open console: any "expected FROM" errors?
- **[SCREENSHOT]** `approvals/chain_after_approval.png`
- **[SCREENSHOT]** `approvals/chain_console_check.png`
- **Check**: APPR-004 — all verification points

---

## Results

| Path | Status | Screenshot | Observations |
|------|--------|------------|-------------|
| APR-Q01 | ✅ Complete | `approvals/queue_default.png` | 275 pending approvals. All RECORD columns show "Unknown", OBJECT shows "Record", COMMENTS shows "—". Confirms APPR-002. |
| APR-Q02 | ✅ Complete | `approvals/approve_dialog.png` | Approve dialog shows: title "Approve Request", confirmation text, optional comment textarea, Cancel/Approve buttons. |
| APR-Q03 | ✅ Complete | `approvals/reject_dialog.png` | Reject dialog shows: title "Reject Request", confirmation text, optional comment textarea, Cancel/Reject buttons. |
| APR-Q04 | ⚠️ Partial | `approvals/reassign_attempt.png` | Reassign button click does not open dialog. May be broken or requires different interaction. |
| APR-Q05 | ❌ Not tested | — | Pagination not checked. List shows 275 items, scroll behavior not verified. |
| APR-Q06 | ⚠️ Partial | — | Refresh button exists. Behavior not fully tested. |
| APR-P01 | ✅ Complete | `approvals/approval_processes_config.png` | 204 approval processes. Columns: Process Name, API Name, Object, Pending, Last Modified, Actions. Statuses: Active/Inactive/Obsolete shown inline. |
| APR-P02 | ❌ Not tested | — | "All Objects" button exists but filter not tested. |
| APR-P03 | ❌ Not tested | — | Process detail view not explored. |
| APR-P04 | ❌ Not tested | — | New Approval Process wizard not explored. |
| APR-SUB01 | ❌ Not tested | — | End-to-end submit flow not tested (requires Quote with approval process). |
| APR-CHN01 | ❌ Not tested | — | Approval chain display not verified. |

## Bugs Found

| # | Path | Description | Severity | Related Scenario |
|---|------|-------------|----------|-----------------|
| 1 | APR-Q01 | All approval queue records show "Unknown" in RECORD column instead of actual record names (e.g., Quote name, Account name). | High | APPR-002, APPR-003 |
| 2 | APR-Q01 | OBJECT column shows "Record" for all items instead of actual object type (Quote, Account, etc.). | High | APPR-002 |
| 3 | APR-Q01 | COMMENTS column shows "—" for all items, even if comments were submitted. | Medium | APPR-006 |
| 4 | APR-Q04 | Reassign action button click does not open user picker dialog. Appears broken. | Medium | — |
| 5 | APR-Q01 | Sidebar badge shows "99+Approvals275" — text formatting issue (no spaces). | Low | — |

## Screenshots Saved

| File | Description |
|------|-------------|
| `approvals/queue_default.png` | Approval Queue default view (275 items) |
| `approvals/approve_dialog.png` | Approve confirmation dialog |
| `approvals/reject_dialog.png` | Reject confirmation dialog |
| `approvals/reassign_attempt.png` | Reassign button click result |
| `approvals/approval_processes_config.png` | Approval Processes list (204 processes) |
