45 lines · 1.7 KB · Rust
RawDownload
mod describe {    use git_repository::commit::describe::SelectRef::{AllRefs, AllTags, AnnotatedTags};     use crate::named_repo;     #[test]    fn tags_are_sorted_by_date_and_lexicographically() -> crate::Result {        let repo = named_repo("make_commit_describe_multiple_tags.sh")?;        let mut describe = repo.head_commit()?.describe();        for filter in &[AnnotatedTags, AllTags, AllRefs] {            describe = describe.names(*filter);            assert_eq!(describe.format()?.to_string(), "v4", "{:?}", filter);        }        Ok(())    }     #[test]    fn tags_are_sorted_by_priority() -> crate::Result {        let repo = named_repo("make_commit_describe_multiple_tags.sh")?;        let commit = repo.find_reference("refs/tags/v0")?.id().object()?.into_commit();        let mut describe = commit.describe();        for filter in &[AnnotatedTags, AllTags, AllRefs] {            describe = describe.names(*filter);            assert_eq!(describe.format()?.to_string(), "v1", "{:?}", filter);        }        Ok(())    }     #[test]    fn lightweight_tags_are_sorted_lexicographically() -> crate::Result {        let repo = named_repo("make_commit_describe_multiple_tags.sh")?;        let commit = repo.find_reference("refs/tags/l0")?.id().object()?.into_commit();        let mut describe = commit.describe();        for filter in &[AnnotatedTags, AllTags, AllRefs] {            describe = describe.names(*filter);            let expected = match filter {                AnnotatedTags => None,                _ => Some("l0"),            };            let actual = describe.try_format()?.map(|f| f.to_string());            assert_eq!(actual.as_deref(), expected, "{:?}", filter);        }        Ok(())    }}