Reuse native macOS Git credentials
Some checks failed
Dependency security audit / rustsec (push) Has been cancelled
Some checks failed
Dependency security audit / rustsec (push) Has been cancelled
This commit is contained in:
@@ -133,6 +133,49 @@ key_material = "keys"
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[cfg(not(any(target_os = "ios", target_os = "watchos")))]
|
||||
#[test]
|
||||
fn repository_https_remote_reuses_credentials_only_for_the_same_url() -> TestResult {
|
||||
let fixture = ConfigurationFixture::new()?;
|
||||
let vault = fixture.temporary.path().join("cwd/vault");
|
||||
fs::create_dir_all(vault.join(".git"))?;
|
||||
fs::write(
|
||||
vault.join(".git/config"),
|
||||
r#"[remote "origin"]
|
||||
url = https://git.example.test/team/store.git
|
||||
[remote "mirror"]
|
||||
url = https://mirror.example.test/team/store.git
|
||||
"#,
|
||||
)?;
|
||||
fixture.write_explicit(
|
||||
r#"
|
||||
vault = "../vault"
|
||||
default_key = "0123456789ABCDEF0123456789ABCDEF01234567"
|
||||
key_material = "keys"
|
||||
|
||||
[[git.remotes]]
|
||||
name = "legacy-name"
|
||||
url = "https://git.example.test/team/store.git"
|
||||
server_id = "existing-server"
|
||||
application_id = "existing-application"
|
||||
"#,
|
||||
)?;
|
||||
|
||||
let config = fixture
|
||||
.loader()
|
||||
.load(Some(Path::new("config/config.toml")))?;
|
||||
let origin = config.git_remote(Some("origin")).expect("origin remote");
|
||||
let (server, application) = origin.https_credentials().expect("HTTPS credentials");
|
||||
assert_eq!(server.as_str(), "existing-server");
|
||||
assert_eq!(application.as_str(), "existing-application");
|
||||
|
||||
let mirror = config.git_remote(Some("mirror")).expect("mirror remote");
|
||||
let (server, application) = mirror.https_credentials().expect("HTTPS credentials");
|
||||
assert_ne!(server.as_str(), "existing-server");
|
||||
assert_ne!(application.as_str(), "existing-application");
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn git_commit_identity_defaults_validates_and_persists() -> TestResult {
|
||||
let fixture = ConfigurationFixture::new()?;
|
||||
|
||||
Reference in New Issue
Block a user