diff --git a/test-api-full.js b/test-api-full.js deleted file mode 100644 index 03ec760..0000000 --- a/test-api-full.js +++ /dev/null @@ -1,227 +0,0 @@ -// API Integration Test Script -const BASE_URL = 'http://localhost:3001'; - -// Helper function for making requests -async function request(endpoint, options = {}) { - const url = `${BASE_URL}${endpoint}`; - const config = { - headers: { - 'Content-Type': 'application/json', - ...options.headers, - }, - ...options, - }; - - try { - const response = await fetch(url, config); - const data = await response.json(); - return { status: response.status, ok: response.ok, data }; - } catch (error) { - return { status: 500, ok: false, error: error.message }; - } -} - -// Test Results -const testResults = []; - -async function runTests() { - console.log('๐Ÿš€ Starting API Integration Tests...\n'); - - // 1. Health Check - console.log('1. Testing Health Check...'); - const healthTest = await request('/health'); - testResults.push({ - name: 'Health Check', - passed: healthTest.ok, - status: healthTest.status, - data: healthTest.data - }); - console.log(` ${healthTest.ok ? 'โœ…' : 'โŒ'} ${healthTest.status}`); - - // 2. Create Test User - console.log('\n2. Testing Create User...'); - const userTest = await request('/api/users', { - method: 'POST', - body: JSON.stringify({ name: 'Test User', email: 'test' + Date.now() + '@example.com' }) - }); - testResults.push({ - name: 'Create User', - passed: userTest.ok, - status: userTest.status, - data: userTest.data - }); - console.log(` ${userTest.ok ? 'โœ…' : 'โŒ'} ${userTest.status}`); - - const userId = userTest.data?.data?.id; - if (!userId) { - console.log(' โŒ Cannot continue without user ID'); - return; - } - console.log(` Created User ID: ${userId}`); - - // 3. Create Account - console.log('\n3. Testing Create Account...'); - const accountTest = await request('/api/accounts', { - method: 'POST', - body: JSON.stringify({ userId, name: '็Žฐ้‡‘่ดฆๆˆท', type: 'cash', color: '#1890FF', balance: 1000 }) - }); - testResults.push({ - name: 'Create Account', - passed: accountTest.ok, - status: accountTest.status, - data: accountTest.data - }); - console.log(` ${accountTest.ok ? 'โœ…' : 'โŒ'} ${accountTest.status}`); - - const accountId = accountTest.data?.data?.id; - - // 4. Get Accounts - console.log('\n4. Testing Get Accounts...'); - const getAccountsTest = await request(`/api/accounts?userId=${userId}`); - testResults.push({ - name: 'Get Accounts', - passed: getAccountsTest.ok, - status: getAccountsTest.status, - data: getAccountsTest.data - }); - console.log(` ${getAccountsTest.ok ? 'โœ…' : 'โŒ'} ${getAccountsTest.status}`); - - // 5. Create Income Record - console.log('\n5. Testing Create Income Record...'); - const incomeTest = await request('/api/records', { - method: 'POST', - body: JSON.stringify({ - userId, - accountId, - type: 'income', - amount: 5000, - category: 'ๅทฅ่ต„', - description: '4ๆœˆไปฝๅทฅ่ต„', - date: new Date().toISOString() - }) - }); - testResults.push({ - name: 'Create Income Record', - passed: incomeTest.ok, - status: incomeTest.status, - data: incomeTest.data - }); - console.log(` ${incomeTest.ok ? 'โœ…' : 'โŒ'} ${incomeTest.status}`); - - // 6. Create Expense Record - console.log('\n6. Testing Create Expense Record...'); - const expenseTest = await request('/api/records', { - method: 'POST', - body: JSON.stringify({ - userId, - accountId, - type: 'expense', - amount: 150, - category: '้ค้ฅฎ', - description: 'ๅˆ้ค', - date: new Date().toISOString() - }) - }); - testResults.push({ - name: 'Create Expense Record', - passed: expenseTest.ok, - status: expenseTest.status, - data: expenseTest.data - }); - console.log(` ${expenseTest.ok ? 'โœ…' : 'โŒ'} ${expenseTest.status}`); - - // 7. Get Records - console.log('\n7. Testing Get Records...'); - const getRecordsTest = await request(`/api/records?userId=${userId}`); - testResults.push({ - name: 'Get Records', - passed: getRecordsTest.ok, - status: getRecordsTest.status, - data: getRecordsTest.data - }); - console.log(` ${getRecordsTest.ok ? 'โœ…' : 'โŒ'} ${getRecordsTest.status}`); - - // 8. Create Budget - const currentMonth = `${new Date().getFullYear()}-${String(new Date().getMonth() + 1).padStart(2, '0')}`; - console.log('\n8. Testing Create Budget...'); - const budgetTest = await request('/api/budgets', { - method: 'POST', - body: JSON.stringify({ - userId, - category: '้ค้ฅฎ', - amount: 2000, - month: currentMonth - }) - }); - testResults.push({ - name: 'Create Budget', - passed: budgetTest.ok, - status: budgetTest.status, - data: budgetTest.data - }); - console.log(` ${budgetTest.ok ? 'โœ…' : 'โŒ'} ${budgetTest.status}`); - - // 9. Get Budgets - console.log('\n9. Testing Get Budgets...'); - const getBudgetsTest = await request(`/api/budgets?userId=${userId}&month=${currentMonth}`); - testResults.push({ - name: 'Get Budgets', - passed: getBudgetsTest.ok, - status: getBudgetsTest.status, - data: getBudgetsTest.data - }); - console.log(` ${getBudgetsTest.ok ? 'โœ…' : 'โŒ'} ${getBudgetsTest.status}`); - - // 10. Monthly Statistics - console.log('\n10. Testing Monthly Statistics...'); - const monthlyStatsTest = await request(`/api/statistics/monthly?userId=${userId}&month=${currentMonth}`); - testResults.push({ - name: 'Monthly Statistics', - passed: monthlyStatsTest.ok, - status: monthlyStatsTest.status, - data: monthlyStatsTest.data - }); - console.log(` ${monthlyStatsTest.ok ? 'โœ…' : 'โŒ'} ${monthlyStatsTest.status}`); - - // 11. Trend Statistics - console.log('\n11. Testing Trend Statistics...'); - const trendTest = await request(`/api/statistics/trend?userId=${userId}`); - testResults.push({ - name: 'Trend Statistics', - passed: trendTest.ok, - status: trendTest.status, - data: trendTest.data - }); - console.log(` ${trendTest.ok ? 'โœ…' : 'โŒ'} ${trendTest.status}`); - - // 12. Dashboard Summary - console.log('\n12. Testing Dashboard Summary...'); - const dashboardTest = await request(`/api/dashboard/summary?userId=${userId}`); - testResults.push({ - name: 'Dashboard Summary', - passed: dashboardTest.ok, - status: dashboardTest.status, - data: dashboardTest.data - }); - console.log(` ${dashboardTest.ok ? 'โœ…' : 'โŒ'} ${dashboardTest.status}`); - - // Summary - console.log('\n' + '='.repeat(50)); - console.log('๐Ÿ“Š Test Summary:'); - const passed = testResults.filter(t => t.passed).length; - const total = testResults.length; - console.log(` Total: ${total}`); - console.log(` Passed: ${passed} โœ…`); - console.log(` Failed: ${total - passed} โŒ`); - console.log('='.repeat(50)); - - return testResults; -} - -runTests().then(results => { - console.log('\nTest run completed!'); - process.exit(0); -}).catch(error => { - console.error('Test run failed:', error); - process.exit(1); -});