Skip to content

Commit

Permalink
Add failing test that gitconfig insteadOf is honored
Browse files Browse the repository at this point in the history
See #693
  • Loading branch information
dandavison committed Aug 21, 2021
1 parent e6c644f commit e540004
Showing 1 changed file with 41 additions and 0 deletions.
41 changes: 41 additions & 0 deletions src/features/hyperlinks.rs
Original file line number Diff line number Diff line change
Expand Up @@ -110,3 +110,44 @@ fn format_commit_line_captures_with_osc8_commit_hyperlink(
fn format_github_commit_url(commit: &str, github_repo: &str) -> String {
format!("https://github.com/{}/commit/{}", github_repo, commit)
}

#[cfg(test)]
mod tests {
use std::fs::remove_file;

use super::format_commit_line_with_osc8_commit_hyperlink;
use crate::tests::integration_test_utils;

#[test]
fn test_commit_hyperlink_honors_insteadof() {
let git_config_contents = br#"
[remote "origin"]
url = github:dandavison/delta
fetch = +refs/heads/*:refs/remotes/origin/*
[url "https://github.com/"]
insteadOf = github:
[url "ssh://git@github.com/"]
pushInsteadOf = github:
insteadOf = githubpriv:
"#;
let git_config_path = "delta__test_commit_hyperlink_honors_insteadof";
let config = integration_test_utils::make_config_from_args_and_git_config(
&[],
Some(git_config_contents),
Some(git_config_path),
);
let hash = "342016d0a69d8361dc17396d9a441704416eb7bb";
let line = format!("commit {}", hash);
// TODO: This doesn't work because a git2::Repository is needed in order
// to compute the remote URL but we do not actually have a repositoty
// since the utility make_config_from_args_and_git_config creates a
// GitConfig struct with a null Repository.
let formatted = format_commit_line_with_osc8_commit_hyperlink(&line, &config);
assert!(formatted.contains(&format!(
"https://github.com/dandavison/delta/commit/{}",
hash
)));

remove_file(git_config_path).unwrap();
}
}

0 comments on commit e540004

Please sign in to comment.