Files
ai-showcase-platform/scripts/test-complete-admin-flow.js

83 lines
2.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

async function testCompleteAdminFlow() {
console.log('🧪 測試完整管理員流程...\n');
try {
// 1. 測試登入頁面
console.log('1. 測試登入頁面...');
const loginPageResponse = await fetch('http://localhost:3000/');
if (loginPageResponse.ok) {
console.log('✅ 登入頁面載入成功');
} else {
console.log('❌ 登入頁面載入失敗:', loginPageResponse.status);
}
// 2. 測試管理員登入
console.log('\n2. 測試管理員登入...');
const loginResponse = await fetch('http://localhost:3000/api/auth/login', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
email: 'admin@ai-platform.com',
password: 'admin123456'
})
});
if (loginResponse.ok) {
const loginData = await loginResponse.json();
console.log('✅ 管理員登入成功');
console.log('用戶資料:', {
id: loginData.user?.id,
name: loginData.user?.name,
email: loginData.user?.email,
role: loginData.user?.role
});
// 3. 測試管理員頁面
console.log('\n3. 測試管理員頁面...');
const adminResponse = await fetch('http://localhost:3000/admin');
if (adminResponse.ok) {
const pageContent = await adminResponse.text();
if (pageContent.includes('載入中...')) {
console.log('✅ 頁面顯示載入中狀態(正常)');
} else if (pageContent.includes('存取被拒')) {
console.log('❌ 頁面顯示存取被拒');
// 檢查調試信息
const debugMatch = pageContent.match(/調試信息: 用戶=([^,]+), 角色=([^<]+)/);
if (debugMatch) {
console.log('📋 調試信息:', {
用戶: debugMatch[1],
角色: debugMatch[2]
});
}
} else if (pageContent.includes('儀表板') || pageContent.includes('管理員')) {
console.log('✅ 管理員頁面正常顯示');
} else {
console.log('⚠️ 頁面內容不確定');
}
}
} else {
const errorData = await loginResponse.text();
console.log('❌ 管理員登入失敗:', loginResponse.status, errorData);
}
console.log('\n🎉 完整管理員流程測試完成!');
console.log('\n💡 解決方案:');
console.log('1. 用戶需要先登入才能訪問管理員頁面');
console.log('2. 登入後,用戶狀態會保存到 localStorage');
console.log('3. 管理員頁面會檢查用戶角色');
console.log('4. 如果角色不是 admin會顯示存取被拒');
} catch (error) {
console.error('❌ 測試過程中發生錯誤:', error);
}
}
testCompleteAdminFlow();