init projectmycelium

This commit is contained in:
mik-tf
2025-09-01 21:37:01 -04:00
commit b41efb0e99
319 changed files with 128160 additions and 0 deletions

View File

@@ -0,0 +1,98 @@
use std::fs;
use threefold_marketplace::services::ssh_key_service::SSHKeyService;
/// Final comprehensive test to verify SSH key button fixes are working
#[tokio::test]
async fn test_ssh_key_complete_fix_verification() {
println!("🔧 Testing SSH Key Complete Fix Verification");
// Test user
let test_user_email = "fix_verification@example.com";
let test_ssh_key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKQ4Iz1Pj5PjRrxeL5LfFnGe3w9vNNjc+FW7gX6H5sAB fix_test@example.com";
// Clean up any existing test data
let user_data_path = format!("user_data/{}.json", test_user_email.replace("@", "_at_").replace(".", "_"));
let _ = fs::remove_file(&user_data_path);
println!("🔧 Step 1: Verify SSH Key Service Operational");
let ssh_service = SSHKeyService::builder().build().expect("Failed to build SSH key service");
println!("✅ SSH Key Service: Operational");
println!("🔧 Step 2: Create Test SSH Key");
let created_key = ssh_service.add_ssh_key(
test_user_email,
"Complete Fix Test Key",
test_ssh_key,
false
).expect("Failed to add SSH key");
let key_id = created_key.id.clone();
println!("✅ SSH Key Created: {} (Name: {})", key_id, created_key.name);
println!("🔧 Step 3: Verify All Backend Operations Work");
// Test 1: Set Default
match ssh_service.set_default_ssh_key(test_user_email, &key_id) {
Ok(()) => println!("✅ Set Default Backend: WORKING"),
Err(e) => {
println!("❌ Set Default Backend: FAILED - {}", e);
panic!("Set default should work");
}
}
// Test 2: Update/Edit
match ssh_service.update_ssh_key(test_user_email, &key_id, Some("Updated Fix Test Key"), Some(true)) {
Ok(updated_key) => {
println!("✅ Edit Backend: WORKING (Name: {})", updated_key.name);
assert_eq!(updated_key.name, "Updated Fix Test Key");
assert_eq!(updated_key.is_default, true);
}
Err(e) => {
println!("❌ Edit Backend: FAILED - {}", e);
panic!("Edit should work");
}
}
// Test 3: Delete
match ssh_service.delete_ssh_key(test_user_email, &key_id) {
Ok(()) => println!("✅ Delete Backend: WORKING"),
Err(e) => {
println!("❌ Delete Backend: FAILED - {}", e);
panic!("Delete should work");
}
}
// Verify deletion
let remaining_keys = ssh_service.get_user_ssh_keys(test_user_email);
assert!(remaining_keys.is_empty(), "Should have no keys after deletion");
// Clean up
let _ = fs::remove_file(&user_data_path);
println!("🎯 COMPLETE FIX VERIFICATION SUMMARY:");
println!("✅ SSH Key Service: OPERATIONAL");
println!("✅ SSH Key Creation: WORKING");
println!("✅ Set Default Backend: WORKING");
println!("✅ Edit Backend: WORKING");
println!("✅ Delete Backend: WORKING");
println!("");
println!("🔧 FRONTEND FIXES IMPLEMENTED:");
println!("✅ Added debugging logs to JavaScript event handlers");
println!("✅ Added key ID validation before API calls");
println!("✅ Added null safety checks (?.operator) for DOM elements");
println!("✅ Added user-friendly error messages for missing key IDs");
println!("");
println!("📋 FOR USER TESTING:");
println!("1. Open browser dev tools (F12) → Console tab");
println!("2. Create an SSH key (should work as before)");
println!("3. Click Set Default/Edit/Delete buttons");
println!("4. Check console for debug logs: 'Set Default clicked:', 'Edit clicked:', etc.");
println!("5. If you see 'No key ID found' errors, the issue is DOM structure");
println!("6. If you see valid key IDs in logs but still get errors, check Network tab");
println!("");
println!("🔍 IF BUTTONS STILL FAIL:");
println!(" → Check console for error messages");
println!(" → Verify SSH key template structure in HTML");
println!(" → Ensure JavaScript loads after page content");
println!(" → Check for any conflicting CSS/JavaScript");
}