Skip to content

Commit 969a052

Browse files
committed
test(config): env wins over config cli on nonmergeable list
This is a showcase of a bug. Will fix in the next commit
1 parent 96e716d commit 969a052

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

tests/testsuite/config.rs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2224,6 +2224,36 @@ credential-provider = ['c', 'd']
22242224
// expect: no merge happens; config CLI takes precedence
22252225
assert_eq!(provider.path.raw_value(), "cli");
22262226
assert_eq!(provider.args, ["cli-arg"]);
2227+
2228+
let env = "CARGO_REGISTRIES_EXAMPLE_CREDENTIAL_PROVIDER";
2229+
let gctx = GlobalContextBuilder::new()
2230+
.env(env, "env env-arg")
2231+
.cwd("foo")
2232+
.build();
2233+
let provider = gctx
2234+
.get::<Option<RegistryConfig>>(&format!("registries.example"))
2235+
.unwrap()
2236+
.unwrap()
2237+
.credential_provider
2238+
.unwrap();
2239+
// expect: no merge happens; env takes precedence over files
2240+
assert_eq!(provider.path.raw_value(), "env");
2241+
assert_eq!(provider.args, ["env-arg"]);
2242+
2243+
let gctx = GlobalContextBuilder::new()
2244+
.env(env, "env env-arg")
2245+
.config_arg(cli_arg)
2246+
.cwd("foo")
2247+
.build();
2248+
let provider = gctx
2249+
.get::<Option<RegistryConfig>>(&format!("registries.example"))
2250+
.unwrap()
2251+
.unwrap()
2252+
.credential_provider
2253+
.unwrap();
2254+
// expect: no merge happens; cli takes precedence over files and env
2255+
assert_eq!(provider.path.raw_value(), "env");
2256+
assert_eq!(provider.args, ["env-arg"]);
22272257
}
22282258

22292259
#[cargo_test]

0 commit comments

Comments
 (0)