diff options
| author | DanConwayDev <DanConwayDev@protonmail.com> | 2026-02-10 12:52:26 +0000 |
|---|---|---|
| committer | DanConwayDev <DanConwayDev@protonmail.com> | 2026-02-10 13:03:39 +0000 |
| commit | 3383477386916e82a19fa1e9c4d95b232ba0a40e (patch) | |
| tree | 90347a4d2a5d09d218b534a945ced243bedd8a0d /tests/ngit_login.rs | |
| parent | 09bb21462ac5571cace5a7e71103156772a499fe (diff) | |
feat: update ngit send for non-interactive mode
Rewrite ngit send to support non-interactive mode:
- Add validation for required arguments (title/description)
- Add --force flag to bypass commit suitability checks
- Add --no-cover-letter flag to skip cover letter
- Improve error messages for missing required fields
- Update title/description/cover-letter logic for non-interactive mode
- Add comprehensive tests for non-interactive behavior
Diffstat (limited to 'tests/ngit_login.rs')
| -rw-r--r-- | tests/ngit_login.rs | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/tests/ngit_login.rs b/tests/ngit_login.rs index 31c6edf..0d397ae 100644 --- a/tests/ngit_login.rs +++ b/tests/ngit_login.rs | |||
| @@ -38,7 +38,7 @@ fn first_time_login_choices_succeeds_with_nsec(p: &mut CliTester, nsec: &str) -> | |||
| 38 | 38 | ||
| 39 | fn standard_first_time_login_with_nsec() -> Result<CliTester> { | 39 | fn standard_first_time_login_with_nsec() -> Result<CliTester> { |
| 40 | let test_repo = GitTestRepo::default(); | 40 | let test_repo = GitTestRepo::default(); |
| 41 | let mut p = CliTester::new_from_dir(&test_repo.dir, ["account", "login", "--offline"]); | 41 | let mut p = CliTester::new_from_dir(&test_repo.dir, ["-i", "account", "login", "--offline"]); |
| 42 | 42 | ||
| 43 | first_time_login_choices_succeeds_with_nsec(&mut p, TEST_KEY_1_NSEC)?; | 43 | first_time_login_choices_succeeds_with_nsec(&mut p, TEST_KEY_1_NSEC)?; |
| 44 | 44 | ||
| @@ -77,7 +77,8 @@ mod with_relays { | |||
| 77 | 77 | ||
| 78 | let cli_tester_handle = std::thread::spawn(move || -> Result<()> { | 78 | let cli_tester_handle = std::thread::spawn(move || -> Result<()> { |
| 79 | let test_repo = GitTestRepo::default(); | 79 | let test_repo = GitTestRepo::default(); |
| 80 | let mut p = CliTester::new_from_dir(&test_repo.dir, ["account", "login"]); | 80 | let mut p = |
| 81 | CliTester::new_from_dir(&test_repo.dir, ["-i", "account", "login"]); | ||
| 81 | 82 | ||
| 82 | first_time_login_choices_succeeds_with_nsec(&mut p, TEST_KEY_1_NSEC)?; | 83 | first_time_login_choices_succeeds_with_nsec(&mut p, TEST_KEY_1_NSEC)?; |
| 83 | 84 | ||
| @@ -108,7 +109,8 @@ mod with_relays { | |||
| 108 | 109 | ||
| 109 | let cli_tester_handle = std::thread::spawn(move || -> Result<()> { | 110 | let cli_tester_handle = std::thread::spawn(move || -> Result<()> { |
| 110 | let test_repo = GitTestRepo::default(); | 111 | let test_repo = GitTestRepo::default(); |
| 111 | let mut p = CliTester::new_from_dir(&test_repo.dir, ["account", "login"]); | 112 | let mut p = |
| 113 | CliTester::new_from_dir(&test_repo.dir, ["-i", "account", "login"]); | ||
| 112 | 114 | ||
| 113 | first_time_login_choices_succeeds_with_nsec(&mut p, TEST_KEY_1_NSEC)?; | 115 | first_time_login_choices_succeeds_with_nsec(&mut p, TEST_KEY_1_NSEC)?; |
| 114 | 116 | ||
| @@ -456,7 +458,8 @@ mod with_relays { | |||
| 456 | 458 | ||
| 457 | let cli_tester_handle = std::thread::spawn(move || -> Result<()> { | 459 | let cli_tester_handle = std::thread::spawn(move || -> Result<()> { |
| 458 | let test_repo = GitTestRepo::default(); | 460 | let test_repo = GitTestRepo::default(); |
| 459 | let mut p = CliTester::new_from_dir(&test_repo.dir, ["account", "login"]); | 461 | let mut p = |
| 462 | CliTester::new_from_dir(&test_repo.dir, ["-i", "account", "login"]); | ||
| 460 | 463 | ||
| 461 | first_time_login_choices_succeeds_with_nsec(&mut p, TEST_KEY_1_NSEC)?; | 464 | first_time_login_choices_succeeds_with_nsec(&mut p, TEST_KEY_1_NSEC)?; |
| 462 | 465 | ||
| @@ -510,7 +513,8 @@ mod with_relays { | |||
| 510 | 513 | ||
| 511 | let cli_tester_handle = std::thread::spawn(move || -> Result<()> { | 514 | let cli_tester_handle = std::thread::spawn(move || -> Result<()> { |
| 512 | let test_repo = GitTestRepo::default(); | 515 | let test_repo = GitTestRepo::default(); |
| 513 | let mut p = CliTester::new_from_dir(&test_repo.dir, ["account", "login"]); | 516 | let mut p = |
| 517 | CliTester::new_from_dir(&test_repo.dir, ["-i", "account", "login"]); | ||
| 514 | 518 | ||
| 515 | first_time_login_choices_succeeds_with_nsec(&mut p, TEST_KEY_1_NSEC)?; | 519 | first_time_login_choices_succeeds_with_nsec(&mut p, TEST_KEY_1_NSEC)?; |
| 516 | 520 | ||
| @@ -551,7 +555,7 @@ mod with_relays { | |||
| 551 | 555 | ||
| 552 | let cli_tester_handle = std::thread::spawn(move || -> Result<()> { | 556 | let cli_tester_handle = std::thread::spawn(move || -> Result<()> { |
| 553 | let test_repo = GitTestRepo::default(); | 557 | let test_repo = GitTestRepo::default(); |
| 554 | let mut p = CliTester::new_from_dir(&test_repo.dir, ["account", "login"]); | 558 | let mut p = CliTester::new_from_dir(&test_repo.dir, ["-i", "account", "login"]); |
| 555 | 559 | ||
| 556 | first_time_login_choices_succeeds_with_nsec(&mut p, TEST_KEY_1_NSEC)?; | 560 | first_time_login_choices_succeeds_with_nsec(&mut p, TEST_KEY_1_NSEC)?; |
| 557 | 561 | ||
| @@ -626,7 +630,8 @@ mod with_offline_flag { | |||
| 626 | #[test] | 630 | #[test] |
| 627 | fn succeeds_with_text_logged_in_as_npub() -> Result<()> { | 631 | fn succeeds_with_text_logged_in_as_npub() -> Result<()> { |
| 628 | let test_repo = GitTestRepo::default(); | 632 | let test_repo = GitTestRepo::default(); |
| 629 | let mut p = CliTester::new_from_dir(&test_repo.dir, ["account", "login", "--offline"]); | 633 | let mut p = |
| 634 | CliTester::new_from_dir(&test_repo.dir, ["-i", "account", "login", "--offline"]); | ||
| 630 | 635 | ||
| 631 | show_first_time_login_choices(&mut p)?.succeeds_with(0, false, Some(0))?; | 636 | show_first_time_login_choices(&mut p)?.succeeds_with(0, false, Some(0))?; |
| 632 | 637 | ||
| @@ -641,7 +646,8 @@ mod with_offline_flag { | |||
| 641 | #[test] | 646 | #[test] |
| 642 | fn succeeds_with_hex_secret_key_in_place_of_nsec() -> Result<()> { | 647 | fn succeeds_with_hex_secret_key_in_place_of_nsec() -> Result<()> { |
| 643 | let test_repo = GitTestRepo::default(); | 648 | let test_repo = GitTestRepo::default(); |
| 644 | let mut p = CliTester::new_from_dir(&test_repo.dir, ["account", "login", "--offline"]); | 649 | let mut p = |
| 650 | CliTester::new_from_dir(&test_repo.dir, ["-i", "account", "login", "--offline"]); | ||
| 645 | 651 | ||
| 646 | show_first_time_login_choices(&mut p)?.succeeds_with(0, false, Some(0))?; | 652 | show_first_time_login_choices(&mut p)?.succeeds_with(0, false, Some(0))?; |
| 647 | 653 | ||
| @@ -659,8 +665,10 @@ mod with_offline_flag { | |||
| 659 | #[test] | 665 | #[test] |
| 660 | fn prompts_for_nsec_until_valid() -> Result<()> { | 666 | fn prompts_for_nsec_until_valid() -> Result<()> { |
| 661 | let test_repo = GitTestRepo::default(); | 667 | let test_repo = GitTestRepo::default(); |
| 662 | let mut p = | 668 | let mut p = CliTester::new_from_dir( |
| 663 | CliTester::new_from_dir(&test_repo.dir, ["account", "login", "--offline"]); | 669 | &test_repo.dir, |
| 670 | ["-i", "account", "login", "--offline"], | ||
| 671 | ); | ||
| 664 | 672 | ||
| 665 | show_first_time_login_choices(&mut p)?.succeeds_with(0, false, Some(0))?; | 673 | show_first_time_login_choices(&mut p)?.succeeds_with(0, false, Some(0))?; |
| 666 | 674 | ||