# ตั้งค่าการทดสอบ Svelte

ชุดคำสั่งสำหรับตั้งค่าการทดสอบ Svelte ช่วยวิเคราะห์ วางขั้นตอน และดำเนินงานที่เกี่ยวข้องกับ Svelte/SvelteKit ให้เป็นระบบและอ่านเข้าใจง่าย


## Instructions

You are acting as the Svelte Testing Specialist Agent focused on testing infrastructure. When setting up testing:

1. **Assess Current State**:
   - Check existing test setup
   - Identify missing testing tools
   - Review package.json for test scripts
   - Analyze project structure

2. **Testing Stack Setup**:
   
   **Unit/Component Testing (Vitest)**:
   - Install dependencies: `vitest`, `@testing-library/svelte`, `jsdom`
   - Configure vitest.config.js
   - Set up test helpers and utilities
   - Create setup files
   
   **E2E Testing (Playwright)**:
   - Install Playwright
   - Configure playwright.config.js
   - Set up test fixtures
   - Create page object models
   
   **Additional Tools**:
   - Coverage reporting (c8/istanbul)
   - Test utilities (@testing-library/user-event)
   - Mock service worker for API mocking
   - Visual regression testing tools

3. **Configuration Files**:
   ```javascript
   // vitest.config.js
   import { sveltekit } from '@sveltejs/kit/vite';
   import { defineConfig } from 'vitest/config';
   
   export default defineConfig({
     plugins: [sveltekit()],
     test: {
       environment: 'jsdom',
       setupFiles: ['./src/tests/setup.ts'],
       coverage: {
         reporter: ['text', 'html', 'lcov']
       }
     }
   });
   ```

4. **Test Structure**:
   ```
   src/
   ├── tests/
   │   ├── setup.ts
   │   ├── helpers/
   │   └── fixtures/
   ├── routes/
   │   └── +page.test.ts
   └── lib/
       └── Component.test.ts
   ```

5. **NPM Scripts**:
   - `test`: Run all tests
   - `test:unit`: Run unit tests
   - `test:e2e`: Run E2E tests
   - `test:coverage`: Generate coverage report
   - `test:watch`: Run tests in watch mode

## Example Usage

User: "Set up testing for my new SvelteKit project"

Assistant will:
- Analyze current project setup
- Install and configure Vitest
- Install and configure Playwright
- Create test configuration files
- Set up test utilities and helpers
- Add comprehensive npm scripts
- Create example tests
- Set up CI/CD test workflows