feat: separate draft pull requests into their own tab
This commit is contained in:
@@ -7,6 +7,42 @@ fn parse(url: &str, provider: Option<&str>) -> Result<Forge, String> {
|
||||
})
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn draft_summaries_keep_open_closed_and_merged_states_distinct() {
|
||||
for provider in [Provider::Github, Provider::Gitlab, Provider::Gitea] {
|
||||
for (closed, merged, expected) in [
|
||||
(false, false, "draft"),
|
||||
(true, false, "closed"),
|
||||
(true, true, "merged"),
|
||||
] {
|
||||
let mut value = json!({
|
||||
"number": 7, "iid": 7, "title": "Unfinished work", "draft": true,
|
||||
"state": if merged && provider == Provider::Gitlab { "merged" }
|
||||
else if closed { "closed" }
|
||||
else if provider == Provider::Gitlab { "opened" } else { "open" },
|
||||
"merged": merged,
|
||||
"merged_at": if merged { Some("2024-01-02T00:00:00Z") } else { None },
|
||||
"user": null, "author": null, "created_at": "2024-01-01T00:00:00Z"
|
||||
});
|
||||
let entry = summary(provider, &value, Some((1, 2))).unwrap();
|
||||
assert!(entry.draft);
|
||||
assert_eq!(entry.closed, closed);
|
||||
assert_eq!(
|
||||
entry.description,
|
||||
format!("deleted user · {expected} · +1 -2")
|
||||
);
|
||||
if !closed {
|
||||
value["draft"] = json!(false);
|
||||
assert!(!summary(provider, &value, None).unwrap().draft);
|
||||
value.as_object_mut().unwrap().remove("draft");
|
||||
assert!(!summary(provider, &value, None).unwrap().draft);
|
||||
value["draft"] = json!("true");
|
||||
assert!(summary(provider, &value, None).is_err());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn pull_request_sizes_include_zero_and_preserve_unknown_statistics() {
|
||||
for (url, provider) in [
|
||||
|
||||
Reference in New Issue
Block a user