1#![cfg(feature = "env")]
2
3use crate::utils;
4
5use clap::Parser;
6
7#[test]
8fn it_works() {
9    #[derive(Debug, PartialEq, Parser)]
10    #[command(rename_all_env = "kebab")]
11    struct BehaviorModel {
12        #[arg(env)]
13        be_nice: String,
14    }
15
16    let help = utils::get_help::<BehaviorModel>();
17    assert!(help.contains("[env: be-nice=]"));
18}
19
20#[test]
21fn default_is_screaming() {
22    #[derive(Debug, PartialEq, Parser)]
23    struct BehaviorModel {
24        #[arg(env)]
25        be_nice: String,
26    }
27
28    let help = utils::get_help::<BehaviorModel>();
29    assert!(help.contains("[env: BE_NICE=]"));
30}
31
32#[test]
33fn overridable() {
34    #[derive(Debug, PartialEq, Parser)]
35    #[command(rename_all_env = "kebab")]
36    struct BehaviorModel {
37        #[arg(env)]
38        be_nice: String,
39
40        #[arg(rename_all_env = "pascal", env)]
41        be_aggressive: String,
42    }
43
44    let help = utils::get_help::<BehaviorModel>();
45    assert!(help.contains("[env: be-nice=]"));
46    assert!(help.contains("[env: BeAggressive=]"));
47}
48