diff options
Diffstat (limited to 'tests/ngit_login.rs')
| -rw-r--r-- | tests/ngit_login.rs | 368 |
1 files changed, 217 insertions, 151 deletions
diff --git a/tests/ngit_login.rs b/tests/ngit_login.rs index b1e2676..9e708dc 100644 --- a/tests/ngit_login.rs +++ b/tests/ngit_login.rs | |||
| @@ -6,21 +6,27 @@ use test_utils::*; | |||
| 6 | static EXPECTED_NSEC_PROMPT: &str = "nsec"; | 6 | static EXPECTED_NSEC_PROMPT: &str = "nsec"; |
| 7 | 7 | ||
| 8 | fn show_first_time_login_choices(p: &mut CliTester) -> Result<CliTesterChoicePrompt> { | 8 | fn show_first_time_login_choices(p: &mut CliTester) -> Result<CliTesterChoicePrompt> { |
| 9 | p.expect_choice("login to nostr", vec![ | 9 | p.expect_choice( |
| 10 | "secret key (nsec / ncryptsec)".to_string(), | 10 | "login to nostr", |
| 11 | "nostr connect (remote signer)".to_string(), | 11 | vec![ |
| 12 | "create account".to_string(), | 12 | "secret key (nsec / ncryptsec)".to_string(), |
| 13 | "help".to_string(), | 13 | "nostr connect (remote signer)".to_string(), |
| 14 | ]) | 14 | "create account".to_string(), |
| 15 | "help".to_string(), | ||
| 16 | ], | ||
| 17 | ) | ||
| 15 | } | 18 | } |
| 16 | 19 | ||
| 17 | fn first_time_login_choices_succeeds_with_nsec(p: &mut CliTester, nsec: &str) -> Result<()> { | 20 | fn first_time_login_choices_succeeds_with_nsec(p: &mut CliTester, nsec: &str) -> Result<()> { |
| 18 | p.expect_choice("login to nostr", vec![ | 21 | p.expect_choice( |
| 19 | "secret key (nsec / ncryptsec)".to_string(), | 22 | "login to nostr", |
| 20 | "nostr connect (remote signer)".to_string(), | 23 | vec![ |
| 21 | "create account".to_string(), | 24 | "secret key (nsec / ncryptsec)".to_string(), |
| 22 | "help".to_string(), | 25 | "nostr connect (remote signer)".to_string(), |
| 23 | ])? | 26 | "create account".to_string(), |
| 27 | "help".to_string(), | ||
| 28 | ], | ||
| 29 | )? | ||
| 24 | .succeeds_with(0, false, Some(0))?; | 30 | .succeeds_with(0, false, Some(0))?; |
| 25 | 31 | ||
| 26 | p.expect_input(EXPECTED_NSEC_PROMPT)? | 32 | p.expect_input(EXPECTED_NSEC_PROMPT)? |
| @@ -110,9 +116,7 @@ mod with_relays { | |||
| 110 | 116 | ||
| 111 | p.expect("failed to extract account name from account metadata...\r\n")?; | 117 | p.expect("failed to extract account name from account metadata...\r\n")?; |
| 112 | 118 | ||
| 113 | p.expect_end_with( | 119 | p.expect_end_with(format!("logged in as {TEST_KEY_1_NPUB}\r\n").as_str())?; |
| 114 | format!("logged in as {}\r\n", TEST_KEY_1_NPUB).as_str(), | ||
| 115 | )?; | ||
| 116 | for p in [51, 52] { | 120 | for p in [51, 52] { |
| 117 | shutdown_relay(8000 + p)?; | 121 | shutdown_relay(8000 + p)?; |
| 118 | } | 122 | } |
| @@ -131,17 +135,25 @@ mod with_relays { | |||
| 131 | async fn when_latest_metadata_and_relay_list_on_all_relays() -> Result<()> { | 135 | async fn when_latest_metadata_and_relay_list_on_all_relays() -> Result<()> { |
| 132 | run_test_displays_correct_name( | 136 | run_test_displays_correct_name( |
| 133 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 137 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 134 | relay.respond_events(client_id, &subscription_id, &vec![ | 138 | relay.respond_events( |
| 135 | generate_test_key_1_metadata_event("fred"), | 139 | client_id, |
| 136 | generate_test_key_1_relay_list_event_same_as_fallback(), | 140 | &subscription_id, |
| 137 | ])?; | 141 | &vec![ |
| 142 | generate_test_key_1_metadata_event("fred"), | ||
| 143 | generate_test_key_1_relay_list_event_same_as_fallback(), | ||
| 144 | ], | ||
| 145 | )?; | ||
| 138 | Ok(()) | 146 | Ok(()) |
| 139 | }), | 147 | }), |
| 140 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 148 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 141 | relay.respond_events(client_id, &subscription_id, &vec![ | 149 | relay.respond_events( |
| 142 | generate_test_key_1_metadata_event("fred"), | 150 | client_id, |
| 143 | generate_test_key_1_relay_list_event_same_as_fallback(), | 151 | &subscription_id, |
| 144 | ])?; | 152 | &vec![ |
| 153 | generate_test_key_1_metadata_event("fred"), | ||
| 154 | generate_test_key_1_relay_list_event_same_as_fallback(), | ||
| 155 | ], | ||
| 156 | )?; | ||
| 145 | Ok(()) | 157 | Ok(()) |
| 146 | }), | 158 | }), |
| 147 | ) | 159 | ) |
| @@ -156,14 +168,18 @@ mod with_relays { | |||
| 156 | async fn when_metadata_contains_only_display_name() -> Result<()> { | 168 | async fn when_metadata_contains_only_display_name() -> Result<()> { |
| 157 | run_test_displays_correct_name( | 169 | run_test_displays_correct_name( |
| 158 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 170 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 159 | relay.respond_events(client_id, &subscription_id, &vec![ | 171 | relay.respond_events( |
| 160 | nostr::event::EventBuilder::metadata( | 172 | client_id, |
| 161 | &nostr::Metadata::new().display_name("fred"), | 173 | &subscription_id, |
| 162 | ) | 174 | &vec![ |
| 163 | .sign_with_keys(&TEST_KEY_1_KEYS) | 175 | nostr::event::EventBuilder::metadata( |
| 164 | .unwrap(), | 176 | &nostr::Metadata::new().display_name("fred"), |
| 165 | generate_test_key_1_relay_list_event_same_as_fallback(), | 177 | ) |
| 166 | ])?; | 178 | .sign_with_keys(&TEST_KEY_1_KEYS) |
| 179 | .unwrap(), | ||
| 180 | generate_test_key_1_relay_list_event_same_as_fallback(), | ||
| 181 | ], | ||
| 182 | )?; | ||
| 167 | Ok(()) | 183 | Ok(()) |
| 168 | }), | 184 | }), |
| 169 | None, | 185 | None, |
| @@ -189,14 +205,19 @@ mod with_relays { | |||
| 189 | 205 | ||
| 190 | run_test_displays_correct_name( | 206 | run_test_displays_correct_name( |
| 191 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 207 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 192 | relay.respond_events(client_id, &subscription_id, &vec![ | 208 | relay.respond_events( |
| 193 | nostr::event::EventBuilder::metadata( | 209 | client_id, |
| 194 | &nostr::Metadata::new().custom_field("displayName", "fred"), | 210 | &subscription_id, |
| 195 | ) | 211 | &vec![ |
| 196 | .sign_with_keys(&TEST_KEY_1_KEYS) | 212 | nostr::event::EventBuilder::metadata( |
| 197 | .unwrap(), | 213 | &nostr::Metadata::new() |
| 198 | generate_test_key_1_relay_list_event_same_as_fallback(), | 214 | .custom_field("displayName", "fred"), |
| 199 | ])?; | 215 | ) |
| 216 | .sign_with_keys(&TEST_KEY_1_KEYS) | ||
| 217 | .unwrap(), | ||
| 218 | generate_test_key_1_relay_list_event_same_as_fallback(), | ||
| 219 | ], | ||
| 220 | )?; | ||
| 200 | Ok(()) | 221 | Ok(()) |
| 201 | }), | 222 | }), |
| 202 | None, | 223 | None, |
| @@ -210,14 +231,18 @@ mod with_relays { | |||
| 210 | -> Result<()> { | 231 | -> Result<()> { |
| 211 | run_test_displays_fallback_to_npub( | 232 | run_test_displays_fallback_to_npub( |
| 212 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 233 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 213 | relay.respond_events(client_id, &subscription_id, &vec![ | 234 | relay.respond_events( |
| 214 | nostr::event::EventBuilder::metadata( | 235 | client_id, |
| 215 | &nostr::Metadata::new().about("other info in metadata"), | 236 | &subscription_id, |
| 216 | ) | 237 | &vec![ |
| 217 | .sign_with_keys(&TEST_KEY_1_KEYS) | 238 | nostr::event::EventBuilder::metadata( |
| 218 | .unwrap(), | 239 | &nostr::Metadata::new().about("other info in metadata"), |
| 219 | generate_test_key_1_relay_list_event_same_as_fallback(), | 240 | ) |
| 220 | ])?; | 241 | .sign_with_keys(&TEST_KEY_1_KEYS) |
| 242 | .unwrap(), | ||
| 243 | generate_test_key_1_relay_list_event_same_as_fallback(), | ||
| 244 | ], | ||
| 245 | )?; | ||
| 221 | Ok(()) | 246 | Ok(()) |
| 222 | }), | 247 | }), |
| 223 | None, | 248 | None, |
| @@ -232,10 +257,14 @@ mod with_relays { | |||
| 232 | -> Result<()> { | 257 | -> Result<()> { |
| 233 | run_test_displays_correct_name( | 258 | run_test_displays_correct_name( |
| 234 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 259 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 235 | relay.respond_events(client_id, &subscription_id, &vec![ | 260 | relay.respond_events( |
| 236 | generate_test_key_1_metadata_event("fred"), | 261 | client_id, |
| 237 | generate_test_key_1_relay_list_event_same_as_fallback(), | 262 | &subscription_id, |
| 238 | ])?; | 263 | &vec![ |
| 264 | generate_test_key_1_metadata_event("fred"), | ||
| 265 | generate_test_key_1_relay_list_event_same_as_fallback(), | ||
| 266 | ], | ||
| 267 | )?; | ||
| 239 | Ok(()) | 268 | Ok(()) |
| 240 | }), | 269 | }), |
| 241 | None, | 270 | None, |
| @@ -249,15 +278,19 @@ mod with_relays { | |||
| 249 | { | 278 | { |
| 250 | run_test_displays_correct_name( | 279 | run_test_displays_correct_name( |
| 251 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 280 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 252 | relay.respond_events(client_id, &subscription_id, &vec![ | 281 | relay.respond_events( |
| 253 | generate_test_key_1_metadata_event("fred"), | 282 | client_id, |
| 254 | ])?; | 283 | &subscription_id, |
| 284 | &vec![generate_test_key_1_metadata_event("fred")], | ||
| 285 | )?; | ||
| 255 | Ok(()) | 286 | Ok(()) |
| 256 | }), | 287 | }), |
| 257 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 288 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 258 | relay.respond_events(client_id, &subscription_id, &vec![ | 289 | relay.respond_events( |
| 259 | generate_test_key_1_relay_list_event_same_as_fallback(), | 290 | client_id, |
| 260 | ])?; | 291 | &subscription_id, |
| 292 | &vec![generate_test_key_1_relay_list_event_same_as_fallback()], | ||
| 293 | )?; | ||
| 261 | Ok(()) | 294 | Ok(()) |
| 262 | }), | 295 | }), |
| 263 | ) | 296 | ) |
| @@ -269,16 +302,22 @@ mod with_relays { | |||
| 269 | async fn when_some_relays_return_old_metadata_event() -> Result<()> { | 302 | async fn when_some_relays_return_old_metadata_event() -> Result<()> { |
| 270 | run_test_displays_correct_name( | 303 | run_test_displays_correct_name( |
| 271 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 304 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 272 | relay.respond_events(client_id, &subscription_id, &vec![ | 305 | relay.respond_events( |
| 273 | generate_test_key_1_metadata_event("fred"), | 306 | client_id, |
| 274 | generate_test_key_1_relay_list_event_same_as_fallback(), | 307 | &subscription_id, |
| 275 | ])?; | 308 | &vec![ |
| 309 | generate_test_key_1_metadata_event("fred"), | ||
| 310 | generate_test_key_1_relay_list_event_same_as_fallback(), | ||
| 311 | ], | ||
| 312 | )?; | ||
| 276 | Ok(()) | 313 | Ok(()) |
| 277 | }), | 314 | }), |
| 278 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 315 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 279 | relay.respond_events(client_id, &subscription_id, &vec![ | 316 | relay.respond_events( |
| 280 | generate_test_key_1_metadata_event_old("fred old"), | 317 | client_id, |
| 281 | ])?; | 318 | &subscription_id, |
| 319 | &vec![generate_test_key_1_metadata_event_old("fred old")], | ||
| 320 | )?; | ||
| 282 | Ok(()) | 321 | Ok(()) |
| 283 | }), | 322 | }), |
| 284 | ) | 323 | ) |
| @@ -290,16 +329,22 @@ mod with_relays { | |||
| 290 | async fn when_some_relays_return_other_users_metadata() -> Result<()> { | 329 | async fn when_some_relays_return_other_users_metadata() -> Result<()> { |
| 291 | run_test_displays_correct_name( | 330 | run_test_displays_correct_name( |
| 292 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 331 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 293 | relay.respond_events(client_id, &subscription_id, &vec![ | 332 | relay.respond_events( |
| 294 | generate_test_key_2_metadata_event("carole"), | 333 | client_id, |
| 295 | ])?; | 334 | &subscription_id, |
| 335 | &vec![generate_test_key_2_metadata_event("carole")], | ||
| 336 | )?; | ||
| 296 | Ok(()) | 337 | Ok(()) |
| 297 | }), | 338 | }), |
| 298 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 339 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 299 | relay.respond_events(client_id, &subscription_id, &vec![ | 340 | relay.respond_events( |
| 300 | generate_test_key_1_metadata_event_old("fred"), | 341 | client_id, |
| 301 | generate_test_key_1_relay_list_event_same_as_fallback(), | 342 | &subscription_id, |
| 302 | ])?; | 343 | &vec![ |
| 344 | generate_test_key_1_metadata_event_old("fred"), | ||
| 345 | generate_test_key_1_relay_list_event_same_as_fallback(), | ||
| 346 | ], | ||
| 347 | )?; | ||
| 303 | Ok(()) | 348 | Ok(()) |
| 304 | }), | 349 | }), |
| 305 | ) | 350 | ) |
| @@ -312,16 +357,22 @@ mod with_relays { | |||
| 312 | run_test_displays_correct_name( | 357 | run_test_displays_correct_name( |
| 313 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 358 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 314 | let event = generate_test_key_1_kind_event(nostr::Kind::TextNote); | 359 | let event = generate_test_key_1_kind_event(nostr::Kind::TextNote); |
| 315 | relay.respond_events(client_id, &subscription_id, &vec![ | 360 | relay.respond_events( |
| 316 | make_event_old_or_change_user(event, &TEST_KEY_1_KEYS, 0), | 361 | client_id, |
| 317 | ])?; | 362 | &subscription_id, |
| 363 | &vec![make_event_old_or_change_user(event, &TEST_KEY_1_KEYS, 0)], | ||
| 364 | )?; | ||
| 318 | Ok(()) | 365 | Ok(()) |
| 319 | }), | 366 | }), |
| 320 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 367 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 321 | relay.respond_events(client_id, &subscription_id, &vec![ | 368 | relay.respond_events( |
| 322 | generate_test_key_1_metadata_event_old("fred"), | 369 | client_id, |
| 323 | generate_test_key_1_relay_list_event_same_as_fallback(), | 370 | &subscription_id, |
| 324 | ])?; | 371 | &vec![ |
| 372 | generate_test_key_1_metadata_event_old("fred"), | ||
| 373 | generate_test_key_1_relay_list_event_same_as_fallback(), | ||
| 374 | ], | ||
| 375 | )?; | ||
| 325 | Ok(()) | 376 | Ok(()) |
| 326 | }), | 377 | }), |
| 327 | ) | 378 | ) |
| @@ -336,10 +387,14 @@ mod with_relays { | |||
| 336 | async fn displays_correct_name() -> Result<()> { | 387 | async fn displays_correct_name() -> Result<()> { |
| 337 | run_test_when_specifying_command_line_nsec_only_displays_correct_name( | 388 | run_test_when_specifying_command_line_nsec_only_displays_correct_name( |
| 338 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 389 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 339 | relay.respond_events(client_id, &subscription_id, &vec![ | 390 | relay.respond_events( |
| 340 | generate_test_key_1_metadata_event("fred"), | 391 | client_id, |
| 341 | generate_test_key_1_relay_list_event_same_as_fallback(), | 392 | &subscription_id, |
| 342 | ])?; | 393 | &vec![ |
| 394 | generate_test_key_1_metadata_event("fred"), | ||
| 395 | generate_test_key_1_relay_list_event_same_as_fallback(), | ||
| 396 | ], | ||
| 397 | )?; | ||
| 343 | Ok(()) | 398 | Ok(()) |
| 344 | }), | 399 | }), |
| 345 | None, | 400 | None, |
| @@ -357,12 +412,10 @@ mod with_relays { | |||
| 357 | 412 | ||
| 358 | let cli_tester_handle = std::thread::spawn(move || -> Result<()> { | 413 | let cli_tester_handle = std::thread::spawn(move || -> Result<()> { |
| 359 | let test_repo = GitTestRepo::default(); | 414 | let test_repo = GitTestRepo::default(); |
| 360 | let mut p = CliTester::new_from_dir(&test_repo.dir, [ | 415 | let mut p = CliTester::new_from_dir( |
| 361 | "account", | 416 | &test_repo.dir, |
| 362 | "login", | 417 | ["account", "login", "--nsec", TEST_KEY_1_NSEC], |
| 363 | "--nsec", | 418 | ); |
| 364 | TEST_KEY_1_NSEC, | ||
| 365 | ]); | ||
| 366 | 419 | ||
| 367 | p.expect("saved login details to local git config. you are only logged in to this local repository.\r\n")?; | 420 | p.expect("saved login details to local git config. you are only logged in to this local repository.\r\n")?; |
| 368 | 421 | ||
| @@ -434,9 +487,11 @@ mod with_relays { | |||
| 434 | async fn warm_user_and_displays_name() -> Result<()> { | 487 | async fn warm_user_and_displays_name() -> Result<()> { |
| 435 | run_test_when_no_relay_list_found_warns_user_and_uses_npub( | 488 | run_test_when_no_relay_list_found_warns_user_and_uses_npub( |
| 436 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 489 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 437 | relay.respond_events(client_id, &subscription_id, &vec![ | 490 | relay.respond_events( |
| 438 | generate_test_key_1_metadata_event("fred"), | 491 | client_id, |
| 439 | ])?; | 492 | &subscription_id, |
| 493 | &vec![generate_test_key_1_metadata_event("fred")], | ||
| 494 | )?; | ||
| 440 | Ok(()) | 495 | Ok(()) |
| 441 | }), | 496 | }), |
| 442 | None, | 497 | None, |
| @@ -527,17 +582,25 @@ mod with_relays { | |||
| 527 | async fn displays_correct_name() -> Result<()> { | 582 | async fn displays_correct_name() -> Result<()> { |
| 528 | run_test_displays_correct_name( | 583 | run_test_displays_correct_name( |
| 529 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 584 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 530 | relay.respond_events(client_id, &subscription_id, &vec![ | 585 | relay.respond_events( |
| 531 | generate_test_key_1_metadata_event_old("Fred"), | 586 | client_id, |
| 532 | generate_test_key_1_relay_list_event(), | 587 | &subscription_id, |
| 533 | ])?; | 588 | &vec![ |
| 589 | generate_test_key_1_metadata_event_old("Fred"), | ||
| 590 | generate_test_key_1_relay_list_event(), | ||
| 591 | ], | ||
| 592 | )?; | ||
| 534 | Ok(()) | 593 | Ok(()) |
| 535 | }), | 594 | }), |
| 536 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 595 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 537 | relay.respond_events(client_id, &subscription_id, &vec![ | 596 | relay.respond_events( |
| 538 | generate_test_key_1_metadata_event("fred"), | 597 | client_id, |
| 539 | generate_test_key_1_relay_list_event(), | 598 | &subscription_id, |
| 540 | ])?; | 599 | &vec![ |
| 600 | generate_test_key_1_metadata_event("fred"), | ||
| 601 | generate_test_key_1_relay_list_event(), | ||
| 602 | ], | ||
| 603 | )?; | ||
| 541 | Ok(()) | 604 | Ok(()) |
| 542 | }), | 605 | }), |
| 543 | ) | 606 | ) |
| @@ -572,7 +635,7 @@ mod with_offline_flag { | |||
| 572 | 635 | ||
| 573 | p.expect("saved login details to local git config. you are only logged in to this local repository.\r\n")?; | 636 | p.expect("saved login details to local git config. you are only logged in to this local repository.\r\n")?; |
| 574 | 637 | ||
| 575 | p.expect_end_with(format!("logged in as {}\r\n", TEST_KEY_1_NPUB).as_str()) | 638 | p.expect_end_with(format!("logged in as {TEST_KEY_1_NPUB}\r\n").as_str()) |
| 576 | } | 639 | } |
| 577 | 640 | ||
| 578 | #[test] | 641 | #[test] |
| @@ -587,7 +650,7 @@ mod with_offline_flag { | |||
| 587 | 650 | ||
| 588 | p.expect("saved login details to local git config. you are only logged in to this local repository.\r\n")?; | 651 | p.expect("saved login details to local git config. you are only logged in to this local repository.\r\n")?; |
| 589 | 652 | ||
| 590 | p.expect_end_with(format!("logged in as {}\r\n", TEST_KEY_1_NPUB).as_str()) | 653 | p.expect_end_with(format!("logged in as {TEST_KEY_1_NPUB}\r\n").as_str()) |
| 591 | } | 654 | } |
| 592 | 655 | ||
| 593 | mod when_invalid_nsec { | 656 | mod when_invalid_nsec { |
| @@ -609,10 +672,10 @@ mod with_offline_flag { | |||
| 609 | true, | 672 | true, |
| 610 | )?; | 673 | )?; |
| 611 | 674 | ||
| 612 | p.expect_choice("login to nostr", vec![ | 675 | p.expect_choice( |
| 613 | "try again with nsec".to_string(), | 676 | "login to nostr", |
| 614 | "back".to_string(), | 677 | vec!["try again with nsec".to_string(), "back".to_string()], |
| 615 | ])? | 678 | )? |
| 616 | .succeeds_with(0, false, Some(0))?; | 679 | .succeeds_with(0, false, Some(0))?; |
| 617 | } | 680 | } |
| 618 | 681 | ||
| @@ -621,7 +684,7 @@ mod with_offline_flag { | |||
| 621 | 684 | ||
| 622 | p.expect("saved login details to local git config. you are only logged in to this local repository.\r\n")?; | 685 | p.expect("saved login details to local git config. you are only logged in to this local repository.\r\n")?; |
| 623 | 686 | ||
| 624 | p.expect_end_with(format!("logged in as {}\r\n", TEST_KEY_1_NPUB).as_str()) | 687 | p.expect_end_with(format!("logged in as {TEST_KEY_1_NPUB}\r\n").as_str()) |
| 625 | } | 688 | } |
| 626 | } | 689 | } |
| 627 | } | 690 | } |
| @@ -632,31 +695,25 @@ mod with_offline_flag { | |||
| 632 | #[test] | 695 | #[test] |
| 633 | fn valid_nsec_param_succeeds_without_prompts() -> Result<()> { | 696 | fn valid_nsec_param_succeeds_without_prompts() -> Result<()> { |
| 634 | let test_repo = GitTestRepo::default(); | 697 | let test_repo = GitTestRepo::default(); |
| 635 | let mut p = CliTester::new_from_dir(&test_repo.dir, [ | 698 | let mut p = CliTester::new_from_dir( |
| 636 | "account", | 699 | &test_repo.dir, |
| 637 | "login", | 700 | ["account", "login", "--offline", "--nsec", TEST_KEY_1_NSEC], |
| 638 | "--offline", | 701 | ); |
| 639 | "--nsec", | ||
| 640 | TEST_KEY_1_NSEC, | ||
| 641 | ]); | ||
| 642 | 702 | ||
| 643 | p.expect("saved login details to local git config. you are only logged in to this local repository.\r\n")?; | 703 | p.expect("saved login details to local git config. you are only logged in to this local repository.\r\n")?; |
| 644 | 704 | ||
| 645 | p.expect_end_with( | 705 | p.expect_end_with( |
| 646 | format!("logged in as {} via cli arguments\r\n", TEST_KEY_1_NPUB).as_str(), | 706 | format!("logged in as {TEST_KEY_1_NPUB} via cli arguments\r\n").as_str(), |
| 647 | ) | 707 | ) |
| 648 | } | 708 | } |
| 649 | 709 | ||
| 650 | #[test] | 710 | #[test] |
| 651 | fn invalid_nsec_param_fails_without_prompts() -> Result<()> { | 711 | fn invalid_nsec_param_fails_without_prompts() -> Result<()> { |
| 652 | let test_repo = GitTestRepo::default(); | 712 | let test_repo = GitTestRepo::default(); |
| 653 | let mut p = CliTester::new_from_dir(&test_repo.dir, [ | 713 | let mut p = CliTester::new_from_dir( |
| 654 | "account", | 714 | &test_repo.dir, |
| 655 | "login", | 715 | ["account", "login", "--offline", "--nsec", TEST_INVALID_NSEC], |
| 656 | "--offline", | 716 | ); |
| 657 | "--nsec", | ||
| 658 | TEST_INVALID_NSEC, | ||
| 659 | ]); | ||
| 660 | 717 | ||
| 661 | p.expect_end_with( | 718 | p.expect_end_with( |
| 662 | "Error: invalid nsec parameter\r\n\r\nCaused by:\r\n Invalid secret key\r\n", | 719 | "Error: invalid nsec parameter\r\n\r\nCaused by:\r\n Invalid secret key\r\n", |
| @@ -670,38 +727,44 @@ mod with_offline_flag { | |||
| 670 | #[test] | 727 | #[test] |
| 671 | fn valid_nsec_param_succeeds_without_prompts() -> Result<()> { | 728 | fn valid_nsec_param_succeeds_without_prompts() -> Result<()> { |
| 672 | let test_repo = GitTestRepo::default(); | 729 | let test_repo = GitTestRepo::default(); |
| 673 | let mut p = CliTester::new_from_dir(&test_repo.dir, [ | 730 | let mut p = CliTester::new_from_dir( |
| 674 | "account", | 731 | &test_repo.dir, |
| 675 | "login", | 732 | [ |
| 676 | "--offline", | 733 | "account", |
| 677 | "--nsec", | 734 | "login", |
| 678 | TEST_KEY_1_NSEC, | 735 | "--offline", |
| 679 | "--password", | 736 | "--nsec", |
| 680 | TEST_PASSWORD, | 737 | TEST_KEY_1_NSEC, |
| 681 | ]); | 738 | "--password", |
| 739 | TEST_PASSWORD, | ||
| 740 | ], | ||
| 741 | ); | ||
| 682 | p.expect("saved login details to local git config. you are only logged in to this local repository.\r\n")?; | 742 | p.expect("saved login details to local git config. you are only logged in to this local repository.\r\n")?; |
| 683 | 743 | ||
| 684 | p.expect_end_with( | 744 | p.expect_end_with( |
| 685 | format!("logged in as {} via cli arguments\r\n", TEST_KEY_1_NPUB).as_str(), | 745 | format!("logged in as {TEST_KEY_1_NPUB} via cli arguments\r\n").as_str(), |
| 686 | ) | 746 | ) |
| 687 | } | 747 | } |
| 688 | 748 | ||
| 689 | #[test] | 749 | #[test] |
| 690 | fn parameters_can_be_called_globally() -> Result<()> { | 750 | fn parameters_can_be_called_globally() -> Result<()> { |
| 691 | let test_repo = GitTestRepo::default(); | 751 | let test_repo = GitTestRepo::default(); |
| 692 | let mut p = CliTester::new_from_dir(&test_repo.dir, [ | 752 | let mut p = CliTester::new_from_dir( |
| 693 | "--nsec", | 753 | &test_repo.dir, |
| 694 | TEST_KEY_1_NSEC, | 754 | [ |
| 695 | "--password", | 755 | "--nsec", |
| 696 | TEST_PASSWORD, | 756 | TEST_KEY_1_NSEC, |
| 697 | "account", | 757 | "--password", |
| 698 | "login", | 758 | TEST_PASSWORD, |
| 699 | "--offline", | 759 | "account", |
| 700 | ]); | 760 | "login", |
| 761 | "--offline", | ||
| 762 | ], | ||
| 763 | ); | ||
| 701 | p.expect("saved login details to local git config. you are only logged in to this local repository.\r\n")?; | 764 | p.expect("saved login details to local git config. you are only logged in to this local repository.\r\n")?; |
| 702 | 765 | ||
| 703 | p.expect_end_with( | 766 | p.expect_end_with( |
| 704 | format!("logged in as {} via cli arguments\r\n", TEST_KEY_1_NPUB).as_str(), | 767 | format!("logged in as {TEST_KEY_1_NPUB} via cli arguments\r\n").as_str(), |
| 705 | ) | 768 | ) |
| 706 | } | 769 | } |
| 707 | 770 | ||
| @@ -712,19 +775,22 @@ mod with_offline_flag { | |||
| 712 | fn valid_nsec_param_succeeds_without_prompts_and_logs_in() -> Result<()> { | 775 | fn valid_nsec_param_succeeds_without_prompts_and_logs_in() -> Result<()> { |
| 713 | standard_first_time_login_with_nsec()?.exit()?; | 776 | standard_first_time_login_with_nsec()?.exit()?; |
| 714 | let test_repo = GitTestRepo::default(); | 777 | let test_repo = GitTestRepo::default(); |
| 715 | let mut p = CliTester::new_from_dir(&test_repo.dir, [ | 778 | let mut p = CliTester::new_from_dir( |
| 716 | "account", | 779 | &test_repo.dir, |
| 717 | "login", | 780 | [ |
| 718 | "--offline", | 781 | "account", |
| 719 | "--nsec", | 782 | "login", |
| 720 | TEST_KEY_2_NSEC, | 783 | "--offline", |
| 721 | "--password", | 784 | "--nsec", |
| 722 | TEST_PASSWORD, | 785 | TEST_KEY_2_NSEC, |
| 723 | ]); | 786 | "--password", |
| 787 | TEST_PASSWORD, | ||
| 788 | ], | ||
| 789 | ); | ||
| 724 | p.expect("saved login details to local git config. you are only logged in to this local repository.\r\n")?; | 790 | p.expect("saved login details to local git config. you are only logged in to this local repository.\r\n")?; |
| 725 | 791 | ||
| 726 | p.expect_end_with( | 792 | p.expect_end_with( |
| 727 | format!("logged in as {} via cli arguments\r\n", TEST_KEY_2_NPUB).as_str(), | 793 | format!("logged in as {TEST_KEY_2_NPUB} via cli arguments\r\n").as_str(), |
| 728 | ) | 794 | ) |
| 729 | } | 795 | } |
| 730 | } | 796 | } |