# MaplePress Plugin Testing Guide ## Prerequisites - WordPress running at http://localhost:8081 - MaplePress backend running at http://localhost:8000 (or update API URL in settings) - WordPress admin access ## Test Scenarios ### Scenario 1: Fresh Installation (Activation Flow) **Steps:** 1. **Deactivate the plugin** (if already activated) - Go to WordPress Admin → Plugins - Find "MaplePress" - Click "Deactivate" 2. **Activate the plugin** - Click "Activate" on MaplePress - **Expected:** Auto-redirect to Settings → MaplePress 3. **Verify Welcome Screen** - **Expected:** See "🚀 Welcome to MaplePress!" banner - **Expected:** See 4-step setup instructions - **Expected:** See "Sign Up at MaplePress.io" button - **Expected:** See "Login to Existing Account" button 4. **Verify Admin Notice** (if you navigate away) - Go to Dashboard or any other admin page - **Expected:** See yellow warning banner at top - **Expected:** Message says "MaplePress Setup Required" - **Expected:** Contains links to sign up and configure ### Scenario 2: API Key Entry (Success Path) **Prerequisites:** - You have a valid API key from the backend - To get one: ```bash # Use the backend API to register and create a site # Or use existing test API key ``` **Steps:** 1. **Go to Settings → MaplePress** 2. **Verify default API URL** - **Expected:** API URL field shows `http://localhost:8000` 3. **Enter a valid API key** - Paste your API key in the "API Key" field - **Optional:** Check "Enable MaplePress" - Click "Save Settings & Verify Connection" 4. **Verify Success Response** - **Expected:** Green success message: "✓ API connection verified successfully!" - **Expected:** Welcome banner disappears - **Expected:** New section appears: "✓ Connected to MaplePress" - **Expected:** Site details table shows: - Site ID (UUID) - Tenant ID (UUID) - Domain (your site domain) - Plan (e.g., "Free") - Status (● Active or ● Inactive) - **Expected:** "→ Open MaplePress Dashboard" button appears 5. **Verify Admin Notice Removed** - Navigate to Dashboard or Posts - **Expected:** Yellow warning banner is GONE ### Scenario 3: Invalid API Key (Error Path) **Steps:** 1. **Go to Settings → MaplePress** 2. **Enter an invalid API key** - Enter: `invalid_key_12345` - Click "Save Settings & Verify Connection" 3. **Verify Error Response** - **Expected:** Red error message appears - **Expected:** Message says "API Connection Error: [error details]" - **Expected:** Site details table does NOT appear - **Expected:** Plugin status remains "needs setup" 4. **Verify Admin Notice Persists** - Navigate to Dashboard - **Expected:** Yellow warning banner STILL shows ### Scenario 4: Empty API Key **Steps:** 1. **Go to Settings → MaplePress** 2. **Leave API key field empty** - Click "Save Settings & Verify Connection" 3. **Verify Behavior** - **Expected:** No error message (just saves empty) - **Expected:** Welcome banner still shows - **Expected:** Admin notice persists on other pages ### Scenario 5: API Key Update/Change **Steps:** 1. **Start with a valid, connected API key** - Verify you see "✓ Connected to MaplePress" 2. **Change to a different valid API key** - Enter new API key - Click "Save Settings & Verify Connection" 3. **Verify Update** - **Expected:** Success message appears - **Expected:** Site details update to reflect new site 4. **Change to invalid key** - Enter invalid key - Click save 5. **Verify Validation** - **Expected:** Error message appears - **Expected:** Connection status changes back to "needs setup" - **Expected:** Admin notice returns ## Testing Checklist - [ ] Plugin activation redirects to settings page - [ ] Welcome banner shows on first visit - [ ] "Sign Up" button links to https://getmaplepress.com/register (opens in new tab) - [ ] "Login" button links to https://getmaplepress.com/login (opens in new tab) - [ ] Admin notice appears on all pages when not configured - [ ] Admin notice does NOT appear on settings page itself - [ ] Admin notice is dismissible - [ ] Valid API key shows success message - [ ] Valid API key populates site details correctly - [ ] Invalid API key shows clear error message - [ ] Site details table shows after successful connection - [ ] Site details include: site_id, tenant_id, domain, plan_tier - [ ] Status indicator shows correct state (Active/Inactive) - [ ] "Open MaplePress Dashboard" button appears when connected - [ ] Dashboard button links to https://getmaplepress.com/dashboard (opens in new tab) - [ ] Admin notice disappears after successful configuration - [ ] Enable checkbox works correctly - [ ] Settings persist after save - [ ] API URL can be changed (for dev vs production) ## Manual API Key Testing If you need to test with a real API key, follow the backend setup guide: **See: `cloud/maplepress-backend/GETTING-STARTED.md` → "Create Test Data" section** Quick summary: 1. Register a user with `POST /api/v1/register` 2. Create a site with `POST /api/v1/sites` 3. Save the `api_key` from the site creation response For detailed curl examples and full instructions, see the backend GETTING-STARTED.md file. ## Expected Settings Structure After successful configuration, WordPress options should contain: ```php array( 'api_url' => 'http://localhost:8000', 'api_key' => 'live_sk_...', 'site_id' => 'abc-123-def', 'tenant_id' => 'xyz-456-uvw', 'domain' => 'localhost', 'plan_tier' => 'free', 'is_verified' => true, 'enabled' => true, 'needs_setup' => false, ) ``` ## Troubleshooting ### Plugin doesn't redirect after activation - Make sure you're not activating multiple plugins at once - Try deactivating and reactivating - Check if transient was set: `get_transient('maplepress_activation_redirect')` ### API connection fails - Verify backend is running: `curl http://localhost:8000/health` - Check API URL in settings matches backend URL - Verify API key is correct and not expired - Check WordPress debug logs: `docker exec -it maple-wordpress-dev tail -f /var/www/html/wp-content/debug.log` - See backend troubleshooting: `cloud/maplepress-backend/GETTING-STARTED.md` ### Admin notice doesn't disappear - Verify `needs_setup` is set to `false` in settings - Clear WordPress transients/cache - Deactivate and reactivate plugin ### Site details don't show - Verify API response includes all fields (site_id, tenant_id, domain, plan_tier) - Check backend `/api/v1/plugin/status` endpoint response - Enable WordPress debug mode and check for PHP errors ## Success Criteria ✅ User can activate plugin and see setup instructions ✅ User can click external links to sign up/login ✅ User can enter API key and validate it ✅ Valid API key shows success and site details ✅ Invalid API key shows clear error ✅ Admin notices guide user through setup ✅ Connected state shows all site information ✅ Plugin can be enabled/disabled after connection ## Next Steps After Testing Once basic authentication flow is verified: 1. Test with production backend URL 2. Implement content indexing features 3. Add search widget functionality 4. Build web dashboard for account/site management