use super::pretty_codegen;
use crate::derives::interactive_clap::to_cli_args_structs_test_bridge;
#[test]
fn test_simple_struct() {
let input = syn::parse_quote! {
struct Args {
age: u64,
first_name: String,
second_name: String,
}
};
let interactive_clap_codegen = crate::derives::interactive_clap::impl_interactive_clap(&input);
insta::assert_snapshot!(pretty_codegen(&interactive_clap_codegen));
let step_two_input = to_cli_args_structs_test_bridge::partial_output(&input)
.unwrap_or_else(|err| panic!("couldn't parse syn::DeriveInput: {:?}", err));
let to_cli_args_codegen = crate::derives::to_cli_args::impl_to_cli_args(&step_two_input);
insta::assert_snapshot!(pretty_codegen(&to_cli_args_codegen));
}
#[test]
fn test_simple_struct_with_named_arg() {
let input = syn::parse_quote! {
struct Account {
#[interactive_clap(named_arg)]
field_name: Sender,
}
};
let interactive_clap_codegen = crate::derives::interactive_clap::impl_interactive_clap(&input);
insta::assert_snapshot!(pretty_codegen(&interactive_clap_codegen));
let step_two_input = to_cli_args_structs_test_bridge::partial_output(&input)
.unwrap_or_else(|err| panic!("couldn't parse syn::DeriveInput: {:?}", err));
let to_cli_args_codegen = crate::derives::to_cli_args::impl_to_cli_args(&step_two_input);
insta::assert_snapshot!(pretty_codegen(&to_cli_args_codegen));
}
#[test]
fn test_bug_fix_of_to_cli_args_derive() {
let input = syn::parse_quote! {
pub struct ViewAccountSummary {
account_id: crate::types::account_id::AccountId,
}
};
let interactive_clap_codegen = crate::derives::interactive_clap::impl_interactive_clap(&input);
insta::assert_snapshot!(pretty_codegen(&interactive_clap_codegen));
let step_two_input = to_cli_args_structs_test_bridge::partial_output(&input)
.unwrap_or_else(|err| panic!("couldn't parse syn::DeriveInput: {:?}", err));
let to_cli_args_codegen = crate::derives::to_cli_args::impl_to_cli_args(&step_two_input);
insta::assert_snapshot!(pretty_codegen(&to_cli_args_codegen));
}
#[test]
fn test_flag() {
let input = syn::parse_quote! {
struct Args {
#[interactive_clap(long)]
offline: bool
}
};
let interactive_clap_codegen = crate::derives::interactive_clap::impl_interactive_clap(&input);
insta::assert_snapshot!(pretty_codegen(&interactive_clap_codegen));
let step_two_input = to_cli_args_structs_test_bridge::partial_output(&input)
.unwrap_or_else(|err| panic!("couldn't parse syn::DeriveInput: {:?}", err));
let to_cli_args_codegen = crate::derives::to_cli_args::impl_to_cli_args(&step_two_input);
insta::assert_snapshot!(pretty_codegen(&to_cli_args_codegen));
}
#[test]
fn test_vec_multiple_opt() {
let input = syn::parse_quote! {
struct Args {
#[interactive_clap(long_vec_multiple_opt)]
pub env: Vec<String>,
}
};
let interactive_clap_codegen = crate::derives::interactive_clap::impl_interactive_clap(&input);
insta::assert_snapshot!(pretty_codegen(&interactive_clap_codegen));
let step_two_input = to_cli_args_structs_test_bridge::partial_output(&input)
.unwrap_or_else(|err| panic!("couldn't parse syn::DeriveInput: {:?}", err));
let to_cli_args_codegen = crate::derives::to_cli_args::impl_to_cli_args(&step_two_input);
insta::assert_snapshot!(pretty_codegen(&to_cli_args_codegen));
}
#[test]
#[should_panic]
fn test_vec_multiple_opt_err() {
let input = syn::parse_quote! {
struct Args {
#[interactive_clap(long_vec_multiple_opt)]
pub env: String,
}
};
let interactive_clap_codegen = crate::derives::interactive_clap::impl_interactive_clap(&input);
insta::assert_snapshot!(pretty_codegen(&interactive_clap_codegen));
}
#[test]
fn test_doc_comments_propagate() {
let input = syn::parse_quote! {
struct Args {
#[interactive_clap(long)]
#[interactive_clap(skip_interactive_input)]
first_field: u64,
#[interactive_clap(long)]
#[interactive_clap(skip_interactive_input)]
#[interactive_clap(verbatim_doc_comment)]
second_field: String,
#[interactive_clap(long)]
#[interactive_clap(skip_interactive_input)]
#[interactive_clap(verbatim_doc_comment)]
third_field: bool,
}
};
let interactive_clap_codegen = crate::derives::interactive_clap::impl_interactive_clap(&input);
insta::assert_snapshot!(pretty_codegen(&interactive_clap_codegen));
let step_two_input = to_cli_args_structs_test_bridge::partial_output(&input)
.unwrap_or_else(|err| panic!("couldn't parse syn::DeriveInput: {:?}", err));
let to_cli_args_codegen = crate::derives::to_cli_args::impl_to_cli_args(&step_two_input);
insta::assert_snapshot!(pretty_codegen(&to_cli_args_codegen));
}