From bdf71cb3d5a5ff8399c10c8d2492d3dd01c5fa33 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Tue, 26 Nov 2024 16:28:09 +0000 Subject: test(login): update `ngit login` test to reflect the new interface and testing only nsec login --- src/lib/login/existing.rs | 17 ++++++++++++----- src/lib/login/fresh.rs | 18 +++++++++++------- 2 files changed, 23 insertions(+), 12 deletions(-) (limited to 'src/lib') diff --git a/src/lib/login/existing.rs b/src/lib/login/existing.rs index 342f792..872e459 100644 --- a/src/lib/login/existing.rs +++ b/src/lib/login/existing.rs @@ -69,11 +69,18 @@ fn get_signer_info( Ok(match source { None => { let mut result = None; - for source in &[ - SignerInfoSource::CommandLineArguments, - SignerInfoSource::GitLocal, - SignerInfoSource::GitGlobal, - ] { + for source in if std::env::var("NGITTEST").is_ok() { + vec![ + SignerInfoSource::CommandLineArguments, + SignerInfoSource::GitLocal, + ] + } else { + vec![ + SignerInfoSource::CommandLineArguments, + SignerInfoSource::GitLocal, + SignerInfoSource::GitGlobal, + ] + } { if let Ok(res) = get_signer_info(git_repo, signer_info, password, &Some(source.clone())) { diff --git a/src/lib/login/fresh.rs b/src/lib/login/fresh.rs index 59026bd..b874992 100644 --- a/src/lib/login/fresh.rs +++ b/src/lib/login/fresh.rs @@ -25,7 +25,7 @@ use crate::{ Interactor, InteractorPrompt, Printer, PromptChoiceParms, PromptConfirmParms, PromptInputParms, PromptPasswordParms, }, - client::{fetch_public_key, send_events, Connect}, + client::{send_events, Connect}, git::{remove_git_config_item, save_git_config_item, Repo, RepoActions}, }; @@ -38,7 +38,7 @@ pub async fn fresh_login_or_signup( ) -> Result<(Arc, UserRef, SignerInfoSource)> { let (signer, public_key, signer_info, source) = loop { if let Some(signer_info) = signer_info { - let (signer, _user_ref, source) = load_existing_login( + let (signer, user_ref, source) = load_existing_login( git_repo, &Some(signer_info.clone()), &None, @@ -48,8 +48,7 @@ pub async fn fresh_login_or_signup( true, ) .await?; - let public_key = fetch_public_key(&signer).await?; - break (signer, public_key, signer_info, source); + break (signer, user_ref.public_key, signer_info, source); } match Interactor::default().choice( PromptChoiceParms::default() @@ -176,7 +175,7 @@ pub async fn get_fresh_nsec_signer() -> Result< (keys, signer_info) } else if let Ok(keys) = nostr::Keys::from_str(&input) { let nsec = keys.secret_key().to_bech32()?; - show_prompt_success("nsec", &shorten_string(&nsec)); + show_prompt_success("nsec", &shorten_string(&input)); let signer_info = SignerInfo::Nsec { nsec, password: None, @@ -223,11 +222,11 @@ fn show_prompt_error(label: &str, value: &str) { let _ = ColorfulTheme::default().format_error( &mut s, &format!( - "{label}: {}", + "{label}: \"{}\"", if value.is_empty() { "empty".to_string() } else { - shorten_string(&format!("\"{}\"", &value)) + shorten_string(value) } ), ); @@ -490,6 +489,11 @@ async fn save_to_git_config( signer_info: &SignerInfo, global: bool, ) -> Result<()> { + let global = if std::env::var("NGITTEST").is_ok() { + false + } else { + global + }; let err_msg = format!( "failed to save login details to {} git config", if global { "global" } else { "local" } -- cgit v1.2.3