Files
ai-showcase-platform/scripts/test-modal-reset-fix.js

137 lines
3.5 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.

// Test script to verify modal reset fix
console.log('Testing modal reset fix...')
// Simulate the newApp state
let newApp = {
name: "",
type: "文字處理",
department: "HQBU",
creator: "",
description: "",
appUrl: "",
icon: "Bot",
iconColor: "from-blue-500 to-purple-500",
}
// Simulate the resetNewApp function
function resetNewApp() {
newApp = {
name: "",
type: "文字處理",
department: "HQBU",
creator: "",
description: "",
appUrl: "",
icon: "Bot",
iconColor: "from-blue-500 to-purple-500",
}
console.log('✅ Form reset to initial values')
}
// Simulate the handleEditApp function
function handleEditApp(app) {
console.log('📝 Editing app:', app.name)
newApp = {
name: app.name,
type: app.type,
department: app.creator?.department || app.department || "HQBU",
creator: app.creator?.name || app.creator || "",
description: app.description,
appUrl: app.appUrl || app.demoUrl || "",
icon: app.icon || "Bot",
iconColor: app.iconColor || "from-blue-500 to-purple-500",
}
console.log('📝 Form populated with app data:', newApp)
}
// Simulate the "Add New App" button click
function handleAddNewAppClick() {
console.log(' Add New App button clicked')
console.log('📋 Form state before reset:', newApp)
resetNewApp()
console.log('📋 Form state after reset:', newApp)
}
// Test scenario 1: Edit an app, then click "Add New App"
console.log('\n=== Test Scenario 1: Edit then Add New ===')
const testApp = {
name: "Test AI App",
type: "圖像生成",
department: "ITBU",
creator: "John Doe",
description: "A test AI application",
appUrl: "https://example.com",
icon: "Brain",
iconColor: "from-purple-500 to-pink-500",
}
console.log('1. Initial form state:')
console.log(newApp)
console.log('\n2. Edit an app:')
handleEditApp(testApp)
console.log('\n3. Click "Add New App" button:')
handleAddNewAppClick()
// Test scenario 2: Multiple edits without reset
console.log('\n=== Test Scenario 2: Multiple Edits ===')
const testApp2 = {
name: "Another Test App",
type: "語音辨識",
department: "MBU1",
creator: "Jane Smith",
description: "Another test application",
appUrl: "https://test2.com",
icon: "Mic",
iconColor: "from-green-500 to-teal-500",
}
console.log('1. Edit first app:')
handleEditApp(testApp)
console.log('2. Edit second app (without reset):')
handleEditApp(testApp2)
console.log('3. Click "Add New App" button:')
handleAddNewAppClick()
// Test scenario 3: Verify reset function works correctly
console.log('\n=== Test Scenario 3: Reset Verification ===')
console.log('1. Populate form with data:')
newApp = {
name: "Some App",
type: "其他",
department: "SBU",
creator: "Test User",
description: "Test description",
appUrl: "https://test.com",
icon: "Settings",
iconColor: "from-gray-500 to-zinc-500",
}
console.log('Form populated:', newApp)
console.log('\n2. Reset form:')
resetNewApp()
console.log('Form after reset:', newApp)
// Verify all fields are reset to initial values
const expectedInitialState = {
name: "",
type: "文字處理",
department: "HQBU",
creator: "",
description: "",
appUrl: "",
icon: "Bot",
iconColor: "from-blue-500 to-purple-500",
}
const isResetCorrect = JSON.stringify(newApp) === JSON.stringify(expectedInitialState)
console.log('\n✅ Reset verification:', isResetCorrect ? 'PASSED' : 'FAILED')
if (isResetCorrect) {
console.log('🎉 All tests passed! The modal reset fix is working correctly.')
} else {
console.log('❌ Reset verification failed. Check the resetNewApp function.')
}