diff options
Diffstat (limited to 'tests/ngit_login.rs')
| -rw-r--r-- | tests/ngit_login.rs | 350 |
1 files changed, 209 insertions, 141 deletions
diff --git a/tests/ngit_login.rs b/tests/ngit_login.rs index 09e40f1..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)? |
| @@ -129,17 +135,25 @@ mod with_relays { | |||
| 129 | 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<()> { |
| 130 | run_test_displays_correct_name( | 136 | run_test_displays_correct_name( |
| 131 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 137 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 132 | relay.respond_events(client_id, &subscription_id, &vec![ | 138 | relay.respond_events( |
| 133 | generate_test_key_1_metadata_event("fred"), | 139 | client_id, |
| 134 | generate_test_key_1_relay_list_event_same_as_fallback(), | 140 | &subscription_id, |
| 135 | ])?; | 141 | &vec![ |
| 142 | generate_test_key_1_metadata_event("fred"), | ||
| 143 | generate_test_key_1_relay_list_event_same_as_fallback(), | ||
| 144 | ], | ||
| 145 | )?; | ||
| 136 | Ok(()) | 146 | Ok(()) |
| 137 | }), | 147 | }), |
| 138 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 148 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 139 | relay.respond_events(client_id, &subscription_id, &vec![ | 149 | relay.respond_events( |
| 140 | generate_test_key_1_metadata_event("fred"), | 150 | client_id, |
| 141 | generate_test_key_1_relay_list_event_same_as_fallback(), | 151 | &subscription_id, |
| 142 | ])?; | 152 | &vec![ |
| 153 | generate_test_key_1_metadata_event("fred"), | ||
| 154 | generate_test_key_1_relay_list_event_same_as_fallback(), | ||
| 155 | ], | ||
| 156 | )?; | ||
| 143 | Ok(()) | 157 | Ok(()) |
| 144 | }), | 158 | }), |
| 145 | ) | 159 | ) |
| @@ -154,14 +168,18 @@ mod with_relays { | |||
| 154 | async fn when_metadata_contains_only_display_name() -> Result<()> { | 168 | async fn when_metadata_contains_only_display_name() -> Result<()> { |
| 155 | run_test_displays_correct_name( | 169 | run_test_displays_correct_name( |
| 156 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 170 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 157 | relay.respond_events(client_id, &subscription_id, &vec![ | 171 | relay.respond_events( |
| 158 | nostr::event::EventBuilder::metadata( | 172 | client_id, |
| 159 | &nostr::Metadata::new().display_name("fred"), | 173 | &subscription_id, |
| 160 | ) | 174 | &vec![ |
| 161 | .sign_with_keys(&TEST_KEY_1_KEYS) | 175 | nostr::event::EventBuilder::metadata( |
| 162 | .unwrap(), | 176 | &nostr::Metadata::new().display_name("fred"), |
| 163 | generate_test_key_1_relay_list_event_same_as_fallback(), | 177 | ) |
| 164 | ])?; | 178 | .sign_with_keys(&TEST_KEY_1_KEYS) |
| 179 | .unwrap(), | ||
| 180 | generate_test_key_1_relay_list_event_same_as_fallback(), | ||
| 181 | ], | ||
| 182 | )?; | ||
| 165 | Ok(()) | 183 | Ok(()) |
| 166 | }), | 184 | }), |
| 167 | None, | 185 | None, |
| @@ -187,14 +205,19 @@ mod with_relays { | |||
| 187 | 205 | ||
| 188 | run_test_displays_correct_name( | 206 | run_test_displays_correct_name( |
| 189 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 207 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 190 | relay.respond_events(client_id, &subscription_id, &vec![ | 208 | relay.respond_events( |
| 191 | nostr::event::EventBuilder::metadata( | 209 | client_id, |
| 192 | &nostr::Metadata::new().custom_field("displayName", "fred"), | 210 | &subscription_id, |
| 193 | ) | 211 | &vec![ |
| 194 | .sign_with_keys(&TEST_KEY_1_KEYS) | 212 | nostr::event::EventBuilder::metadata( |
| 195 | .unwrap(), | 213 | &nostr::Metadata::new() |
| 196 | generate_test_key_1_relay_list_event_same_as_fallback(), | 214 | .custom_field("displayName", "fred"), |
| 197 | ])?; | 215 | ) |
| 216 | .sign_with_keys(&TEST_KEY_1_KEYS) | ||
| 217 | .unwrap(), | ||
| 218 | generate_test_key_1_relay_list_event_same_as_fallback(), | ||
| 219 | ], | ||
| 220 | )?; | ||
| 198 | Ok(()) | 221 | Ok(()) |
| 199 | }), | 222 | }), |
| 200 | None, | 223 | None, |
| @@ -208,14 +231,18 @@ mod with_relays { | |||
| 208 | -> Result<()> { | 231 | -> Result<()> { |
| 209 | run_test_displays_fallback_to_npub( | 232 | run_test_displays_fallback_to_npub( |
| 210 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 233 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 211 | relay.respond_events(client_id, &subscription_id, &vec![ | 234 | relay.respond_events( |
| 212 | nostr::event::EventBuilder::metadata( | 235 | client_id, |
| 213 | &nostr::Metadata::new().about("other info in metadata"), | 236 | &subscription_id, |
| 214 | ) | 237 | &vec![ |
| 215 | .sign_with_keys(&TEST_KEY_1_KEYS) | 238 | nostr::event::EventBuilder::metadata( |
| 216 | .unwrap(), | 239 | &nostr::Metadata::new().about("other info in metadata"), |
| 217 | generate_test_key_1_relay_list_event_same_as_fallback(), | 240 | ) |
| 218 | ])?; | 241 | .sign_with_keys(&TEST_KEY_1_KEYS) |
| 242 | .unwrap(), | ||
| 243 | generate_test_key_1_relay_list_event_same_as_fallback(), | ||
| 244 | ], | ||
| 245 | )?; | ||
| 219 | Ok(()) | 246 | Ok(()) |
| 220 | }), | 247 | }), |
| 221 | None, | 248 | None, |
| @@ -230,10 +257,14 @@ mod with_relays { | |||
| 230 | -> Result<()> { | 257 | -> Result<()> { |
| 231 | run_test_displays_correct_name( | 258 | run_test_displays_correct_name( |
| 232 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 259 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 233 | relay.respond_events(client_id, &subscription_id, &vec![ | 260 | relay.respond_events( |
| 234 | generate_test_key_1_metadata_event("fred"), | 261 | client_id, |
| 235 | generate_test_key_1_relay_list_event_same_as_fallback(), | 262 | &subscription_id, |
| 236 | ])?; | 263 | &vec![ |
| 264 | generate_test_key_1_metadata_event("fred"), | ||
| 265 | generate_test_key_1_relay_list_event_same_as_fallback(), | ||
| 266 | ], | ||
| 267 | )?; | ||
| 237 | Ok(()) | 268 | Ok(()) |
| 238 | }), | 269 | }), |
| 239 | None, | 270 | None, |
| @@ -247,15 +278,19 @@ mod with_relays { | |||
| 247 | { | 278 | { |
| 248 | run_test_displays_correct_name( | 279 | run_test_displays_correct_name( |
| 249 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 280 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 250 | relay.respond_events(client_id, &subscription_id, &vec![ | 281 | relay.respond_events( |
| 251 | generate_test_key_1_metadata_event("fred"), | 282 | client_id, |
| 252 | ])?; | 283 | &subscription_id, |
| 284 | &vec![generate_test_key_1_metadata_event("fred")], | ||
| 285 | )?; | ||
| 253 | Ok(()) | 286 | Ok(()) |
| 254 | }), | 287 | }), |
| 255 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 288 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 256 | relay.respond_events(client_id, &subscription_id, &vec![ | 289 | relay.respond_events( |
| 257 | generate_test_key_1_relay_list_event_same_as_fallback(), | 290 | client_id, |
| 258 | ])?; | 291 | &subscription_id, |
| 292 | &vec![generate_test_key_1_relay_list_event_same_as_fallback()], | ||
| 293 | )?; | ||
| 259 | Ok(()) | 294 | Ok(()) |
| 260 | }), | 295 | }), |
| 261 | ) | 296 | ) |
| @@ -267,16 +302,22 @@ mod with_relays { | |||
| 267 | async fn when_some_relays_return_old_metadata_event() -> Result<()> { | 302 | async fn when_some_relays_return_old_metadata_event() -> Result<()> { |
| 268 | run_test_displays_correct_name( | 303 | run_test_displays_correct_name( |
| 269 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 304 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 270 | relay.respond_events(client_id, &subscription_id, &vec![ | 305 | relay.respond_events( |
| 271 | generate_test_key_1_metadata_event("fred"), | 306 | client_id, |
| 272 | generate_test_key_1_relay_list_event_same_as_fallback(), | 307 | &subscription_id, |
| 273 | ])?; | 308 | &vec![ |
| 309 | generate_test_key_1_metadata_event("fred"), | ||
| 310 | generate_test_key_1_relay_list_event_same_as_fallback(), | ||
| 311 | ], | ||
| 312 | )?; | ||
| 274 | Ok(()) | 313 | Ok(()) |
| 275 | }), | 314 | }), |
| 276 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 315 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 277 | relay.respond_events(client_id, &subscription_id, &vec![ | 316 | relay.respond_events( |
| 278 | generate_test_key_1_metadata_event_old("fred old"), | 317 | client_id, |
| 279 | ])?; | 318 | &subscription_id, |
| 319 | &vec![generate_test_key_1_metadata_event_old("fred old")], | ||
| 320 | )?; | ||
| 280 | Ok(()) | 321 | Ok(()) |
| 281 | }), | 322 | }), |
| 282 | ) | 323 | ) |
| @@ -288,16 +329,22 @@ mod with_relays { | |||
| 288 | async fn when_some_relays_return_other_users_metadata() -> Result<()> { | 329 | async fn when_some_relays_return_other_users_metadata() -> Result<()> { |
| 289 | run_test_displays_correct_name( | 330 | run_test_displays_correct_name( |
| 290 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 331 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 291 | relay.respond_events(client_id, &subscription_id, &vec![ | 332 | relay.respond_events( |
| 292 | generate_test_key_2_metadata_event("carole"), | 333 | client_id, |
| 293 | ])?; | 334 | &subscription_id, |
| 335 | &vec![generate_test_key_2_metadata_event("carole")], | ||
| 336 | )?; | ||
| 294 | Ok(()) | 337 | Ok(()) |
| 295 | }), | 338 | }), |
| 296 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 339 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 297 | relay.respond_events(client_id, &subscription_id, &vec![ | 340 | relay.respond_events( |
| 298 | generate_test_key_1_metadata_event_old("fred"), | 341 | client_id, |
| 299 | generate_test_key_1_relay_list_event_same_as_fallback(), | 342 | &subscription_id, |
| 300 | ])?; | 343 | &vec![ |
| 344 | generate_test_key_1_metadata_event_old("fred"), | ||
| 345 | generate_test_key_1_relay_list_event_same_as_fallback(), | ||
| 346 | ], | ||
| 347 | )?; | ||
| 301 | Ok(()) | 348 | Ok(()) |
| 302 | }), | 349 | }), |
| 303 | ) | 350 | ) |
| @@ -310,16 +357,22 @@ mod with_relays { | |||
| 310 | run_test_displays_correct_name( | 357 | run_test_displays_correct_name( |
| 311 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 358 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 312 | let event = generate_test_key_1_kind_event(nostr::Kind::TextNote); | 359 | let event = generate_test_key_1_kind_event(nostr::Kind::TextNote); |
| 313 | relay.respond_events(client_id, &subscription_id, &vec![ | 360 | relay.respond_events( |
| 314 | make_event_old_or_change_user(event, &TEST_KEY_1_KEYS, 0), | 361 | client_id, |
| 315 | ])?; | 362 | &subscription_id, |
| 363 | &vec![make_event_old_or_change_user(event, &TEST_KEY_1_KEYS, 0)], | ||
| 364 | )?; | ||
| 316 | Ok(()) | 365 | Ok(()) |
| 317 | }), | 366 | }), |
| 318 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 367 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 319 | relay.respond_events(client_id, &subscription_id, &vec![ | 368 | relay.respond_events( |
| 320 | generate_test_key_1_metadata_event_old("fred"), | 369 | client_id, |
| 321 | generate_test_key_1_relay_list_event_same_as_fallback(), | 370 | &subscription_id, |
| 322 | ])?; | 371 | &vec![ |
| 372 | generate_test_key_1_metadata_event_old("fred"), | ||
| 373 | generate_test_key_1_relay_list_event_same_as_fallback(), | ||
| 374 | ], | ||
| 375 | )?; | ||
| 323 | Ok(()) | 376 | Ok(()) |
| 324 | }), | 377 | }), |
| 325 | ) | 378 | ) |
| @@ -334,10 +387,14 @@ mod with_relays { | |||
| 334 | async fn displays_correct_name() -> Result<()> { | 387 | async fn displays_correct_name() -> Result<()> { |
| 335 | run_test_when_specifying_command_line_nsec_only_displays_correct_name( | 388 | run_test_when_specifying_command_line_nsec_only_displays_correct_name( |
| 336 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 389 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 337 | relay.respond_events(client_id, &subscription_id, &vec![ | 390 | relay.respond_events( |
| 338 | generate_test_key_1_metadata_event("fred"), | 391 | client_id, |
| 339 | generate_test_key_1_relay_list_event_same_as_fallback(), | 392 | &subscription_id, |
| 340 | ])?; | 393 | &vec![ |
| 394 | generate_test_key_1_metadata_event("fred"), | ||
| 395 | generate_test_key_1_relay_list_event_same_as_fallback(), | ||
| 396 | ], | ||
| 397 | )?; | ||
| 341 | Ok(()) | 398 | Ok(()) |
| 342 | }), | 399 | }), |
| 343 | None, | 400 | None, |
| @@ -355,12 +412,10 @@ mod with_relays { | |||
| 355 | 412 | ||
| 356 | let cli_tester_handle = std::thread::spawn(move || -> Result<()> { | 413 | let cli_tester_handle = std::thread::spawn(move || -> Result<()> { |
| 357 | let test_repo = GitTestRepo::default(); | 414 | let test_repo = GitTestRepo::default(); |
| 358 | let mut p = CliTester::new_from_dir(&test_repo.dir, [ | 415 | let mut p = CliTester::new_from_dir( |
| 359 | "account", | 416 | &test_repo.dir, |
| 360 | "login", | 417 | ["account", "login", "--nsec", TEST_KEY_1_NSEC], |
| 361 | "--nsec", | 418 | ); |
| 362 | TEST_KEY_1_NSEC, | ||
| 363 | ]); | ||
| 364 | 419 | ||
| 365 | 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")?; |
| 366 | 421 | ||
| @@ -432,9 +487,11 @@ mod with_relays { | |||
| 432 | async fn warm_user_and_displays_name() -> Result<()> { | 487 | async fn warm_user_and_displays_name() -> Result<()> { |
| 433 | 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( |
| 434 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 489 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 435 | relay.respond_events(client_id, &subscription_id, &vec![ | 490 | relay.respond_events( |
| 436 | generate_test_key_1_metadata_event("fred"), | 491 | client_id, |
| 437 | ])?; | 492 | &subscription_id, |
| 493 | &vec![generate_test_key_1_metadata_event("fred")], | ||
| 494 | )?; | ||
| 438 | Ok(()) | 495 | Ok(()) |
| 439 | }), | 496 | }), |
| 440 | None, | 497 | None, |
| @@ -525,17 +582,25 @@ mod with_relays { | |||
| 525 | async fn displays_correct_name() -> Result<()> { | 582 | async fn displays_correct_name() -> Result<()> { |
| 526 | run_test_displays_correct_name( | 583 | run_test_displays_correct_name( |
| 527 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 584 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 528 | relay.respond_events(client_id, &subscription_id, &vec![ | 585 | relay.respond_events( |
| 529 | generate_test_key_1_metadata_event_old("Fred"), | 586 | client_id, |
| 530 | generate_test_key_1_relay_list_event(), | 587 | &subscription_id, |
| 531 | ])?; | 588 | &vec![ |
| 589 | generate_test_key_1_metadata_event_old("Fred"), | ||
| 590 | generate_test_key_1_relay_list_event(), | ||
| 591 | ], | ||
| 592 | )?; | ||
| 532 | Ok(()) | 593 | Ok(()) |
| 533 | }), | 594 | }), |
| 534 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { | 595 | Some(&|relay, client_id, subscription_id, _| -> Result<()> { |
| 535 | relay.respond_events(client_id, &subscription_id, &vec![ | 596 | relay.respond_events( |
| 536 | generate_test_key_1_metadata_event("fred"), | 597 | client_id, |
| 537 | generate_test_key_1_relay_list_event(), | 598 | &subscription_id, |
| 538 | ])?; | 599 | &vec![ |
| 600 | generate_test_key_1_metadata_event("fred"), | ||
| 601 | generate_test_key_1_relay_list_event(), | ||
| 602 | ], | ||
| 603 | )?; | ||
| 539 | Ok(()) | 604 | Ok(()) |
| 540 | }), | 605 | }), |
| 541 | ) | 606 | ) |
| @@ -607,10 +672,10 @@ mod with_offline_flag { | |||
| 607 | true, | 672 | true, |
| 608 | )?; | 673 | )?; |
| 609 | 674 | ||
| 610 | p.expect_choice("login to nostr", vec![ | 675 | p.expect_choice( |
| 611 | "try again with nsec".to_string(), | 676 | "login to nostr", |
| 612 | "back".to_string(), | 677 | vec!["try again with nsec".to_string(), "back".to_string()], |
| 613 | ])? | 678 | )? |
| 614 | .succeeds_with(0, false, Some(0))?; | 679 | .succeeds_with(0, false, Some(0))?; |
| 615 | } | 680 | } |
| 616 | 681 | ||
| @@ -630,13 +695,10 @@ mod with_offline_flag { | |||
| 630 | #[test] | 695 | #[test] |
| 631 | fn valid_nsec_param_succeeds_without_prompts() -> Result<()> { | 696 | fn valid_nsec_param_succeeds_without_prompts() -> Result<()> { |
| 632 | let test_repo = GitTestRepo::default(); | 697 | let test_repo = GitTestRepo::default(); |
| 633 | let mut p = CliTester::new_from_dir(&test_repo.dir, [ | 698 | let mut p = CliTester::new_from_dir( |
| 634 | "account", | 699 | &test_repo.dir, |
| 635 | "login", | 700 | ["account", "login", "--offline", "--nsec", TEST_KEY_1_NSEC], |
| 636 | "--offline", | 701 | ); |
| 637 | "--nsec", | ||
| 638 | TEST_KEY_1_NSEC, | ||
| 639 | ]); | ||
| 640 | 702 | ||
| 641 | 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")?; |
| 642 | 704 | ||
| @@ -648,13 +710,10 @@ mod with_offline_flag { | |||
| 648 | #[test] | 710 | #[test] |
| 649 | fn invalid_nsec_param_fails_without_prompts() -> Result<()> { | 711 | fn invalid_nsec_param_fails_without_prompts() -> Result<()> { |
| 650 | let test_repo = GitTestRepo::default(); | 712 | let test_repo = GitTestRepo::default(); |
| 651 | let mut p = CliTester::new_from_dir(&test_repo.dir, [ | 713 | let mut p = CliTester::new_from_dir( |
| 652 | "account", | 714 | &test_repo.dir, |
| 653 | "login", | 715 | ["account", "login", "--offline", "--nsec", TEST_INVALID_NSEC], |
| 654 | "--offline", | 716 | ); |
| 655 | "--nsec", | ||
| 656 | TEST_INVALID_NSEC, | ||
| 657 | ]); | ||
| 658 | 717 | ||
| 659 | p.expect_end_with( | 718 | p.expect_end_with( |
| 660 | "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", |
| @@ -668,15 +727,18 @@ mod with_offline_flag { | |||
| 668 | #[test] | 727 | #[test] |
| 669 | fn valid_nsec_param_succeeds_without_prompts() -> Result<()> { | 728 | fn valid_nsec_param_succeeds_without_prompts() -> Result<()> { |
| 670 | let test_repo = GitTestRepo::default(); | 729 | let test_repo = GitTestRepo::default(); |
| 671 | let mut p = CliTester::new_from_dir(&test_repo.dir, [ | 730 | let mut p = CliTester::new_from_dir( |
| 672 | "account", | 731 | &test_repo.dir, |
| 673 | "login", | 732 | [ |
| 674 | "--offline", | 733 | "account", |
| 675 | "--nsec", | 734 | "login", |
| 676 | TEST_KEY_1_NSEC, | 735 | "--offline", |
| 677 | "--password", | 736 | "--nsec", |
| 678 | TEST_PASSWORD, | 737 | TEST_KEY_1_NSEC, |
| 679 | ]); | 738 | "--password", |
| 739 | TEST_PASSWORD, | ||
| 740 | ], | ||
| 741 | ); | ||
| 680 | 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")?; |
| 681 | 743 | ||
| 682 | p.expect_end_with( | 744 | p.expect_end_with( |
| @@ -687,15 +749,18 @@ mod with_offline_flag { | |||
| 687 | #[test] | 749 | #[test] |
| 688 | fn parameters_can_be_called_globally() -> Result<()> { | 750 | fn parameters_can_be_called_globally() -> Result<()> { |
| 689 | let test_repo = GitTestRepo::default(); | 751 | let test_repo = GitTestRepo::default(); |
| 690 | let mut p = CliTester::new_from_dir(&test_repo.dir, [ | 752 | let mut p = CliTester::new_from_dir( |
| 691 | "--nsec", | 753 | &test_repo.dir, |
| 692 | TEST_KEY_1_NSEC, | 754 | [ |
| 693 | "--password", | 755 | "--nsec", |
| 694 | TEST_PASSWORD, | 756 | TEST_KEY_1_NSEC, |
| 695 | "account", | 757 | "--password", |
| 696 | "login", | 758 | TEST_PASSWORD, |
| 697 | "--offline", | 759 | "account", |
| 698 | ]); | 760 | "login", |
| 761 | "--offline", | ||
| 762 | ], | ||
| 763 | ); | ||
| 699 | 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")?; |
| 700 | 765 | ||
| 701 | p.expect_end_with( | 766 | p.expect_end_with( |
| @@ -710,15 +775,18 @@ mod with_offline_flag { | |||
| 710 | fn valid_nsec_param_succeeds_without_prompts_and_logs_in() -> Result<()> { | 775 | fn valid_nsec_param_succeeds_without_prompts_and_logs_in() -> Result<()> { |
| 711 | standard_first_time_login_with_nsec()?.exit()?; | 776 | standard_first_time_login_with_nsec()?.exit()?; |
| 712 | let test_repo = GitTestRepo::default(); | 777 | let test_repo = GitTestRepo::default(); |
| 713 | let mut p = CliTester::new_from_dir(&test_repo.dir, [ | 778 | let mut p = CliTester::new_from_dir( |
| 714 | "account", | 779 | &test_repo.dir, |
| 715 | "login", | 780 | [ |
| 716 | "--offline", | 781 | "account", |
| 717 | "--nsec", | 782 | "login", |
| 718 | TEST_KEY_2_NSEC, | 783 | "--offline", |
| 719 | "--password", | 784 | "--nsec", |
| 720 | TEST_PASSWORD, | 785 | TEST_KEY_2_NSEC, |
| 721 | ]); | 786 | "--password", |
| 787 | TEST_PASSWORD, | ||
| 788 | ], | ||
| 789 | ); | ||
| 722 | 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")?; |
| 723 | 791 | ||
| 724 | p.expect_end_with( | 792 | p.expect_end_with( |