Skip to content

Commit 3d50bde

Browse files
committed
fixup! feat(users): add update_relay_lists
1 parent 515a47d commit 3d50bde

File tree

1 file changed

+20
-49
lines changed

1 file changed

+20
-49
lines changed

src/whitenoise/users.rs

Lines changed: 20 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,6 @@ mod tests {
389389
assert_eq!(url1, url2);
390390
assert_ne!(url1, url3);
391391

392-
// Test HashSet behavior with RelayUrls
393392
let mut url_set = HashSet::new();
394393
url_set.insert(&url1);
395394
url_set.insert(&url2); // Should not increase size since url1 == url2
@@ -404,7 +403,6 @@ mod tests {
404403
async fn test_update_relay_lists_success() {
405404
let (whitenoise, _data_temp, _logs_temp) = create_mock_whitenoise().await;
406405

407-
// Create a test user
408406
let test_pubkey = nostr_sdk::Keys::generate().public_key();
409407
let user = User {
410408
id: None,
@@ -413,11 +411,7 @@ mod tests {
413411
created_at: Utc::now(),
414412
updated_at: Utc::now(),
415413
};
416-
417-
// Save the user
418414
let saved_user = user.save(&whitenoise.database).await.unwrap();
419-
420-
// Create some initial NIP-65 relays for the user
421415
let initial_relay_url = RelayUrl::parse("wss://initial.example.com").unwrap();
422416
let initial_relay = whitenoise
423417
.find_or_create_relay(&initial_relay_url)
@@ -429,35 +423,19 @@ mod tests {
429423
.await
430424
.unwrap();
431425

432-
// The actual network calls would be mocked in a real test environment
433-
// For now, this tests the structure and database operations
434-
let result = saved_user.update_relay_lists(&whitenoise).await;
435-
436-
// The test should succeed even if network calls fail (graceful degradation)
437-
match result {
438-
Ok(()) => {
439-
// Success case - verify the user still has relays
440-
let relays = saved_user
441-
.relays(RelayType::Nip65, &whitenoise.database)
442-
.await
443-
.unwrap();
444-
assert!(
445-
!relays.is_empty(),
446-
"User should still have relays after update"
447-
);
448-
}
449-
Err(_) => {
450-
// Error case is also acceptable since we don't have real network responses
451-
// The important part is that the method handles errors gracefully
452-
}
453-
}
426+
saved_user.update_relay_lists(&whitenoise).await.unwrap();
427+
let relays = saved_user
428+
.relays(RelayType::Nip65, &whitenoise.database)
429+
.await
430+
.unwrap();
431+
assert_eq!(relays.len(), 1);
432+
assert_eq!(relays[0].url, initial_relay_url);
454433
}
455434

456435
#[tokio::test]
457436
async fn test_update_relay_lists_with_no_initial_relays() {
458437
let (whitenoise, _data_temp, _logs_temp) = create_mock_whitenoise().await;
459438

460-
// Create a test user with no relays
461439
let test_pubkey = nostr_sdk::Keys::generate().public_key();
462440
let user = User {
463441
id: None,
@@ -469,20 +447,12 @@ mod tests {
469447

470448
let saved_user = user.save(&whitenoise.database).await.unwrap();
471449

472-
// This should fall back to default relays and handle the case gracefully
473-
let result = saved_user.update_relay_lists(&whitenoise).await;
474-
475-
// Should not panic and should handle the no-relays case gracefully
476-
match result {
477-
Ok(()) => {
478-
// Check if any default relays were potentially added
479-
println!("Update completed successfully");
480-
}
481-
Err(e) => {
482-
// Errors are expected when there are no network responses
483-
println!("Update failed as expected: {}", e);
484-
}
485-
}
450+
saved_user.update_relay_lists(&whitenoise).await.unwrap();
451+
assert!(saved_user
452+
.relays(RelayType::Nip65, &whitenoise.database)
453+
.await
454+
.unwrap()
455+
.is_empty());
486456
}
487457

488458
#[tokio::test]
@@ -518,17 +488,18 @@ mod tests {
518488
#[tokio::test]
519489
async fn test_get_query_relays_with_no_stored_relays() {
520490
let (whitenoise, _data_temp, _logs_temp) = create_mock_whitenoise().await;
521-
522491
let test_pubkey = nostr_sdk::Keys::generate().public_key();
523492
let user = User::new(test_pubkey);
524-
525493
let saved_user = user.save(&whitenoise.database).await.unwrap();
526-
527-
// Test get_query_relays with no stored relays
528494
let query_relays = saved_user.get_query_relays(&whitenoise).await.unwrap();
529495

530-
// Should fall back to default relays
531-
assert!(!query_relays.is_empty(), "Should have default relays");
496+
assert_eq!(
497+
query_relays.into_iter().map(|r| r.url).collect::<Vec<_>>(),
498+
Relay::defaults()
499+
.into_iter()
500+
.map(|r| r.url)
501+
.collect::<Vec<_>>()
502+
);
532503
}
533504

534505
#[tokio::test]

0 commit comments

Comments
 (0)