Prepare Gotcha 1.0 for release
This commit is contained in:
@@ -8,7 +8,7 @@ use tokio::task::JoinSet;
|
||||
use crate::{
|
||||
Client, Error, Result,
|
||||
domain::{DEFAULT_PAGE_SIZE, HistoryCommit, Page, RepositoryId},
|
||||
models,
|
||||
models, validate_page,
|
||||
};
|
||||
use gitea_openapi::apis;
|
||||
|
||||
@@ -481,112 +481,5 @@ fn commit_parents(commit: &models::Commit) -> impl Iterator<Item = &str> {
|
||||
.filter_map(|parent| parent.sha.as_deref())
|
||||
}
|
||||
|
||||
fn validate_page(page: i32, limit: i32) -> Result<()> {
|
||||
if page < 1 || limit < 1 {
|
||||
return Err(Error::InvalidInput(
|
||||
"page and limit must be positive".into(),
|
||||
));
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
fn commit(sha: &str, parents: &[&str]) -> models::Commit {
|
||||
models::Commit {
|
||||
sha: Some(sha.into()),
|
||||
parents: Some(
|
||||
parents
|
||||
.iter()
|
||||
.map(|sha| models::CommitMeta {
|
||||
sha: Some((*sha).into()),
|
||||
..Default::default()
|
||||
})
|
||||
.collect(),
|
||||
),
|
||||
..Default::default()
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn lays_out_shared_commit_graph() {
|
||||
let rows = build_graph(
|
||||
vec![
|
||||
(
|
||||
0,
|
||||
"main".into(),
|
||||
vec![
|
||||
commit("merge", &["left", "right"]),
|
||||
commit("left", &["base"]),
|
||||
commit("base", &[]),
|
||||
],
|
||||
),
|
||||
(
|
||||
1,
|
||||
"feature".into(),
|
||||
vec![commit("right", &["base"]), commit("base", &[])],
|
||||
),
|
||||
],
|
||||
PullMetadata::default(),
|
||||
);
|
||||
assert_eq!(rows.len(), 4);
|
||||
assert!(rows.iter().any(|row| row.refs == ["main"]));
|
||||
assert!(rows.iter().any(|row| row.refs == ["feature"]));
|
||||
let merge = rows
|
||||
.iter()
|
||||
.find(|row| row.commit.sha.as_deref() == Some("merge"))
|
||||
.unwrap();
|
||||
assert_eq!(merge.node_lane, Some(0));
|
||||
assert_eq!(merge.bottom_connections, [1]);
|
||||
let right = rows
|
||||
.iter()
|
||||
.find(|row| row.commit.sha.as_deref() == Some("right"))
|
||||
.unwrap();
|
||||
assert_eq!(right.node_lane, Some(1));
|
||||
let base = rows
|
||||
.iter()
|
||||
.find(|row| row.commit.sha.as_deref() == Some("base"))
|
||||
.unwrap();
|
||||
assert_eq!(base.node_lane, Some(0));
|
||||
assert_eq!(base.top_connections, [1]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn labels_first_commit_of_pull_branch() {
|
||||
let rows = build_graph(
|
||||
vec![(
|
||||
0,
|
||||
"main".into(),
|
||||
vec![
|
||||
commit("merge", &["main", "head"]),
|
||||
commit("head", &["first"]),
|
||||
commit("first", &["base"]),
|
||||
commit("main", &["base"]),
|
||||
commit("base", &[]),
|
||||
],
|
||||
)],
|
||||
PullMetadata {
|
||||
tips: HashMap::from([("head".into(), vec!["feature".into()])]),
|
||||
starts: vec![PullBranch {
|
||||
head: "head".into(),
|
||||
base: "base".into(),
|
||||
label: "feature".into(),
|
||||
}],
|
||||
},
|
||||
);
|
||||
let first = rows
|
||||
.iter()
|
||||
.find(|row| row.commit.sha.as_deref() == Some("first"))
|
||||
.unwrap();
|
||||
assert_eq!(first.branch_starts, ["feature"]);
|
||||
assert!(
|
||||
rows.iter()
|
||||
.find(|row| row.commit.sha.as_deref() == Some("head"))
|
||||
.unwrap()
|
||||
.refs
|
||||
.contains(&"feature".into())
|
||||
);
|
||||
}
|
||||
}
|
||||
mod tests;
|
||||
|
||||
Reference in New Issue
Block a user