From 3383477386916e82a19fa1e9c4d95b232ba0a40e Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Tue, 10 Feb 2026 12:52:26 +0000 Subject: 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 --- tests/ngit_login.rs | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) (limited to 'tests/ngit_login.rs') 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) -> fn standard_first_time_login_with_nsec() -> Result { let test_repo = GitTestRepo::default(); - let mut p = CliTester::new_from_dir(&test_repo.dir, ["account", "login", "--offline"]); + let mut p = CliTester::new_from_dir(&test_repo.dir, ["-i", "account", "login", "--offline"]); first_time_login_choices_succeeds_with_nsec(&mut p, TEST_KEY_1_NSEC)?; @@ -77,7 +77,8 @@ mod with_relays { let cli_tester_handle = std::thread::spawn(move || -> Result<()> { let test_repo = GitTestRepo::default(); - let mut p = CliTester::new_from_dir(&test_repo.dir, ["account", "login"]); + let mut p = + CliTester::new_from_dir(&test_repo.dir, ["-i", "account", "login"]); first_time_login_choices_succeeds_with_nsec(&mut p, TEST_KEY_1_NSEC)?; @@ -108,7 +109,8 @@ mod with_relays { let cli_tester_handle = std::thread::spawn(move || -> Result<()> { let test_repo = GitTestRepo::default(); - let mut p = CliTester::new_from_dir(&test_repo.dir, ["account", "login"]); + let mut p = + CliTester::new_from_dir(&test_repo.dir, ["-i", "account", "login"]); first_time_login_choices_succeeds_with_nsec(&mut p, TEST_KEY_1_NSEC)?; @@ -456,7 +458,8 @@ mod with_relays { let cli_tester_handle = std::thread::spawn(move || -> Result<()> { let test_repo = GitTestRepo::default(); - let mut p = CliTester::new_from_dir(&test_repo.dir, ["account", "login"]); + let mut p = + CliTester::new_from_dir(&test_repo.dir, ["-i", "account", "login"]); first_time_login_choices_succeeds_with_nsec(&mut p, TEST_KEY_1_NSEC)?; @@ -510,7 +513,8 @@ mod with_relays { let cli_tester_handle = std::thread::spawn(move || -> Result<()> { let test_repo = GitTestRepo::default(); - let mut p = CliTester::new_from_dir(&test_repo.dir, ["account", "login"]); + let mut p = + CliTester::new_from_dir(&test_repo.dir, ["-i", "account", "login"]); first_time_login_choices_succeeds_with_nsec(&mut p, TEST_KEY_1_NSEC)?; @@ -551,7 +555,7 @@ mod with_relays { let cli_tester_handle = std::thread::spawn(move || -> Result<()> { let test_repo = GitTestRepo::default(); - let mut p = CliTester::new_from_dir(&test_repo.dir, ["account", "login"]); + let mut p = CliTester::new_from_dir(&test_repo.dir, ["-i", "account", "login"]); first_time_login_choices_succeeds_with_nsec(&mut p, TEST_KEY_1_NSEC)?; @@ -626,7 +630,8 @@ mod with_offline_flag { #[test] fn succeeds_with_text_logged_in_as_npub() -> Result<()> { let test_repo = GitTestRepo::default(); - let mut p = CliTester::new_from_dir(&test_repo.dir, ["account", "login", "--offline"]); + let mut p = + CliTester::new_from_dir(&test_repo.dir, ["-i", "account", "login", "--offline"]); show_first_time_login_choices(&mut p)?.succeeds_with(0, false, Some(0))?; @@ -641,7 +646,8 @@ mod with_offline_flag { #[test] fn succeeds_with_hex_secret_key_in_place_of_nsec() -> Result<()> { let test_repo = GitTestRepo::default(); - let mut p = CliTester::new_from_dir(&test_repo.dir, ["account", "login", "--offline"]); + let mut p = + CliTester::new_from_dir(&test_repo.dir, ["-i", "account", "login", "--offline"]); show_first_time_login_choices(&mut p)?.succeeds_with(0, false, Some(0))?; @@ -659,8 +665,10 @@ mod with_offline_flag { #[test] fn prompts_for_nsec_until_valid() -> Result<()> { let test_repo = GitTestRepo::default(); - let mut p = - CliTester::new_from_dir(&test_repo.dir, ["account", "login", "--offline"]); + let mut p = CliTester::new_from_dir( + &test_repo.dir, + ["-i", "account", "login", "--offline"], + ); show_first_time_login_choices(&mut p)?.succeeds_with(0, false, Some(0))?; -- cgit v1.2.3