87 lines
2.4 KiB
JavaScript
87 lines
2.4 KiB
JavaScript
const mysql = require('mysql2/promise');
|
|
|
|
// 資料庫連接配置
|
|
const dbConfig = {
|
|
host: 'mysql.theaken.com',
|
|
port: 33306,
|
|
user: 'AI_Platform',
|
|
password: 'Aa123456',
|
|
database: 'db_AI_Platform',
|
|
charset: 'utf8mb4'
|
|
};
|
|
|
|
async function testFavorites() {
|
|
let connection;
|
|
|
|
try {
|
|
console.log('連接到資料庫...');
|
|
connection = await mysql.createConnection(dbConfig);
|
|
|
|
// 測試添加收藏
|
|
const testUserId = 'test-user-123';
|
|
const testAppId = 'test-app-456';
|
|
|
|
console.log('測試添加收藏...');
|
|
|
|
// 先清理可能存在的測試數據
|
|
await connection.execute(
|
|
'DELETE FROM user_favorites WHERE user_id = ? AND app_id = ?',
|
|
[testUserId, testAppId]
|
|
);
|
|
|
|
// 第一次添加收藏
|
|
const favoriteId1 = require('crypto').randomUUID();
|
|
await connection.execute(`
|
|
INSERT INTO user_favorites (id, user_id, app_id, created_at)
|
|
VALUES (?, ?, ?, NOW())
|
|
`, [favoriteId1, testUserId, testAppId]);
|
|
|
|
console.log('✅ 第一次添加收藏成功');
|
|
|
|
// 檢查是否已收藏
|
|
const [checkResult] = await connection.execute(`
|
|
SELECT COUNT(*) as count
|
|
FROM user_favorites
|
|
WHERE user_id = ? AND app_id = ?
|
|
`, [testUserId, testAppId]);
|
|
|
|
console.log(`收藏記錄數量: ${checkResult[0].count}`);
|
|
|
|
// 嘗試重複添加收藏(應該失敗)
|
|
try {
|
|
const favoriteId2 = require('crypto').randomUUID();
|
|
await connection.execute(`
|
|
INSERT INTO user_favorites (id, user_id, app_id, created_at)
|
|
VALUES (?, ?, ?, NOW())
|
|
`, [favoriteId2, testUserId, testAppId]);
|
|
|
|
console.log('❌ 重複添加收藏應該失敗但成功了');
|
|
} catch (error) {
|
|
if (error.code === 'ER_DUP_ENTRY') {
|
|
console.log('✅ 重複添加收藏正確地被阻止');
|
|
} else {
|
|
console.log('❌ 重複添加收藏失敗,但錯誤類型不正確:', error.message);
|
|
}
|
|
}
|
|
|
|
// 清理測試數據
|
|
await connection.execute(
|
|
'DELETE FROM user_favorites WHERE user_id = ? AND app_id = ?',
|
|
[testUserId, testAppId]
|
|
);
|
|
|
|
console.log('✅ 測試數據已清理');
|
|
|
|
} catch (error) {
|
|
console.error('測試過程中發生錯誤:', error);
|
|
} finally {
|
|
if (connection) {
|
|
await connection.end();
|
|
console.log('資料庫連接已關閉');
|
|
}
|
|
}
|
|
}
|
|
|
|
// 執行測試
|
|
testFavorites().catch(console.error);
|