# ๐งช LiveComponents Test Guide ## Quick Test 1. **Start Server**: ```bash make up npm run dev ``` 2. **Open Test Page**: ``` https://localhost/test/livecomponents ``` 3. **Test Counter Component**: - โ Click **+ Increment** โ Count increases - โ Click **- Decrement** โ Count decreases - โ Click **Reset** โ Count resets to 0 - โ Enter **5** and click **Add Amount** โ Count +5 - โ Wait 10 seconds โ Auto-update (polling) ## What's Being Tested ### โ Core Features - **Action Handling** - Button clicks execute component methods - **Form Submission** - Forms with parameters work - **State Management** - Component data persists and updates - **Polling** - Auto-updates every 10 seconds - **DOM Updates** - HTML re-renders on state change ### โ Framework Patterns - **Trait + Interface** - No abstract classes - **Readonly Classes** - Immutable components - **Value Objects** - Type-safe data handling - **Dependency Injection** - TemplateRenderer injection ### โ JavaScript - **Zero Dependencies** - Pure Vanilla JS - **Auto-initialization** - Finds components on page load - **Event Handling** - Buttons, forms, polling - **Progress Tracking** - Upload progress (ready for file uploads) ## Test Files ``` src/ โโโ Application/ โ โโโ Controllers/Test/ โ โ โโโ LiveComponentTestController.php โ Test Route โ โ โโโ README.md โ Test Documentation โ โโโ Components/ โ โโโ CounterComponent.php โ Test Component โโโ Framework/LiveComponents/ โ โโโ Templates/ โ โโโ counter.view.php โ Component Template โโโ resources/views/test/ โโโ livecomponents.view.php โ Test Page ``` ## Browser Console Output Expected console output: ```javascript LiveComponents Test Suite Loaded Available: { liveComponents: LiveComponentManager, sseManager: SSEManager } ``` ## Network Requests Watch for: ``` POST /live-component/App\Application\Components\CounterComponent:demo Request: { "component_id": "App\\Application\\Components\\CounterComponent:demo", "method": "increment", "params": {}, "state": { "count": 0 } } Response: { "html": "