# Manual Smoke Tests

Run these tests after each refactor step to verify core functionality still works.

## Prerequisites

- Local development environment running
- Plugin activated
- Gutenberg editor accessible
- Test post created

---

## Test Flows

### 1. Chat Flow

| Step | Action | Expected |
|------|--------|----------|
| 1 | Open a post in Gutenberg | Editor loads |
| 2 | Type a message in the sidebar chat | Message appears in input |
| 3 | Click send / press Enter | Streaming response begins |
| 4 | Wait for response to complete | Message appears in chat thread |

**Pass Criteria:** Chat thread shows user message and AI response.

---

### 2. Plan Generation Flow

| Step | Action | Expected |
|------|--------|----------|
| 1 | Click "Plan" tab in sidebar | Plan tab is active |
| 2 | Type an outline request (e.g., "Write a blog post about X") | Text appears in input |
| 3 | Click "Generate Plan" | Loading indicator shows |
| 4 | Wait for plan to generate | Outline renders with sections |

**Pass Criteria:** Plan displays with at least one section heading.

---

### 3. Article Execution Flow

| Step | Action | Expected |
|------|--------|----------|
| 1 | Generate a plan first | Plan is visible |
| 2 | Click "Execute" button | Streaming begins |
| 3 | Wait for article to complete | Content appears in Gutenberg blocks |

**Pass Criteria:** At least one paragraph block is added to the post.

---

### 4. Block Refinement Flow

| Step | Action | Expected |
|------|--------|----------|
| 1 | Add a paragraph block with content | Block is visible |
| 2 | Select the block | Block is highlighted |
| 3 | Click "Refine" in sidebar | Inline editor shows |
| 4 | Click "Apply" | Block content updates |

**Pass Criteria:** Block content changes after refinement.

---

### 5. SEO Audit Flow

| Step | Action | Expected |
|------|--------|----------|
| 1 | Click "SEO" tab in sidebar | SEO tab is active |
| 2 | Click "Run Audit" button | Loading indicator shows |
| 3 | Wait for audit to complete | Report displays with score |

**Pass Criteria:** Audit report shows a numeric score and at least one issue/recommendation.

---

### 6. Image Generation Flow

| Step | Action | Expected |
|------|--------|----------|
| 1 | Add an image block or click image generation | Image dialog opens |
| 2 | Enter a prompt and click "Generate" | Loading indicator shows |
| 3 | Wait for generation | Image variants appear |
| 4 | Select a variant and click "Commit" | Image uploads and appears in post |

**Pass Criteria:** Image appears in Media Library and post content.

---

### 7. Settings Persistence Flow

| Step | Action | Expected |
|------|--------|----------|
| 1 | Open plugin settings | Settings page loads |
| 2 | Change the AI model selection | Selection changes |
| 3 | Click "Save" | Success message appears |
| 4 | Reload the page | Setting persists |

**Pass Criteria:** Model selection is retained after page reload.

---

### 8. MEMANTO Memory Flow

| Step | Action | Expected |
|------|--------|----------|
| 1 | Configure MEMANTO URL in settings | URL is saved |
| 2 | Use the agent in a chat | Chat completes without error |
| 3 | Check for memory recall | Agent references previous context |

**Pass Criteria:** No errors in chat, agent shows memory awareness.

---

### 9. Cost Tracking Flow

| Step | Action | Expected |
|------|--------|----------|
| 1 | Use any AI feature (chat, generate, etc.) | Feature works |
| 2 | Open plugin settings | Settings page loads |
| 3 | Click "Cost Log" tab | Cost entries display |

**Pass Criteria:** At least one cost entry appears with token/usage data.

---

## Quick Regression Checklist

After any code change, verify:

- [ ] Plugin activates without errors
- [ ] Gutenberg editor loads without JS errors
- [ ] At least one REST endpoint responds (e.g., `/wp-json/wp-agentic-writer/v1/ai-capabilities`)
- [ ] Settings page saves without errors
- [ ] No PHP fatal errors in debug.log

---

## Reporting Failures

If a test fails:

1. Note the exact steps to reproduce
2. Check browser console for JS errors
3. Check `debug.log` for PHP errors
4. Check Network tab for failed REST requests
5. Report in issue tracker with:
   - Test name
   - Steps to reproduce
   - Error messages (console + network)
   - WordPress version
   - Plugin version
