upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/tests/ngit_login.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ngit_login.rs')
-rw-r--r--tests/ngit_login.rs368
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::*;
6static EXPECTED_NSEC_PROMPT: &str = "nsec"; 6static EXPECTED_NSEC_PROMPT: &str = "nsec";
7 7
8fn show_first_time_login_choices(p: &mut CliTester) -> Result<CliTesterChoicePrompt> { 8fn 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
17fn first_time_login_choices_succeeds_with_nsec(p: &mut CliTester, nsec: &str) -> Result<()> { 20fn 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 }