Skip to content

Commit 8802c55

Browse files
committed
reproduce mailmap parsing issue (#1416)
1 parent 78b8e41 commit 8802c55

File tree

4 files changed

+22
-3
lines changed

4 files changed

+22
-3
lines changed

gix-mailmap/src/entry.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,18 @@ impl<'a> Entry<'a> {
4141
..Default::default()
4242
}
4343
}
44+
pub fn change_email_by_name_and_email(
45+
proper_email: impl Into<&'a BStr>,
46+
commit_name: impl Into<&'a BStr>,
47+
commit_email: impl Into<&'a BStr>,
48+
) -> Self {
49+
Entry {
50+
new_email: Some(proper_email.into()),
51+
old_email: commit_email.into(),
52+
old_name: Some(commit_name.into()),
53+
..Default::default()
54+
}
55+
}
4456
pub fn change_name_and_email_by_email(
4557
proper_name: impl Into<&'a BStr>,
4658
proper_email: impl Into<&'a BStr>,

gix-mailmap/tests/fixtures/typical.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ Joe R. Developer <[email protected]> Joe <[email protected]>
66
Jane Doe <[email protected]> <jane@laptop.(none)>
77
Jane Doe <[email protected]> <jane@desktop.(none)>
88
9+
<[email protected]> Jane <Jane@ipad.(none)>

gix-mailmap/tests/parse/mod.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ fn a_typical_mailmap() {
3131
Entry::change_name_and_email_by_email("Jane Doe", "[email protected]", "jane@laptop.(none)"),
3232
Entry::change_name_and_email_by_email("Jane Doe", "[email protected]", "jane@desktop.(none)"),
3333
Entry::change_name_and_email_by_name_and_email("Jane Doe", "[email protected]", "Jane", "[email protected]"),
34+
Entry::change_email_by_name_and_email("[email protected]", "Jane", "Jane@ipad.(none)"),
3435
]
3536
);
3637
}
@@ -76,8 +77,8 @@ fn valid_entries() {
7677
Entry::change_name_and_email_by_email("proper name", "proper email", "commit-email")
7778
);
7879
assert_eq!(
79-
line(" proper name <proper email>\tcommit name\t<commit-email>\t"),
80-
Entry::change_name_and_email_by_name_and_email("proper name", "proper email", "commit name", "commit-email")
80+
line("<proper-email> commit name <commit-email>"),
81+
Entry::change_email_by_name_and_email("proper-email", "commit name", "commit-email")
8182
);
8283
}
8384

gix-mailmap/tests/snapshot/mod.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@ fn try_resolve() {
3131
Some(signature("Jane Doe", "[email protected]")),
3232
"name and email can be mapped specifically, case insensitive matching of name"
3333
);
34+
assert_eq!(
35+
snapshot.resolve(signature("janE", "jane@ipad.(none)").to_ref()),
36+
signature("janE", "[email protected]"),
37+
"an email can be mapped by name and email specifically, both match case-insensitively"
38+
);
3439

3540
let sig = signature("Jane", "[email protected]");
3641
assert_eq!(snapshot.try_resolve(sig.to_ref()), None, "unmatched email");
@@ -49,7 +54,7 @@ fn try_resolve() {
4954
);
5055
assert_eq!(snapshot.resolve(sig.to_ref()), sig);
5156

52-
assert_eq!(snapshot.entries().len(), 5);
57+
assert_eq!(snapshot.entries().len(), 6);
5358
}
5459

5560
#[test]

0 commit comments

Comments
 (0)