chore: improve git workflow testing
This commit is contained in:
parent
3c40a32fba
commit
c76b351198
3 changed files with 55 additions and 6 deletions
19
Cargo.lock
generated
19
Cargo.lock
generated
|
@ -801,6 +801,15 @@ dependencies = [
|
||||||
"winapi",
|
"winapi",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "mktemp"
|
||||||
|
version = "0.4.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "975de676448231fcde04b9149d2543077e166b78fc29eae5aa219e7928410da2"
|
||||||
|
dependencies = [
|
||||||
|
"uuid",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "nom"
|
name = "nom"
|
||||||
version = "5.1.2"
|
version = "5.1.2"
|
||||||
|
@ -896,6 +905,7 @@ dependencies = [
|
||||||
"git2",
|
"git2",
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
"log",
|
"log",
|
||||||
|
"mktemp",
|
||||||
"num_cpus",
|
"num_cpus",
|
||||||
"pretty_env_logger",
|
"pretty_env_logger",
|
||||||
"serde 1.0.136",
|
"serde 1.0.136",
|
||||||
|
@ -1374,6 +1384,15 @@ dependencies = [
|
||||||
"percent-encoding",
|
"percent-encoding",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "uuid"
|
||||||
|
version = "0.8.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
|
||||||
|
dependencies = [
|
||||||
|
"getrandom",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "vcpkg"
|
name = "vcpkg"
|
||||||
version = "0.2.15"
|
version = "0.2.15"
|
||||||
|
|
|
@ -34,3 +34,6 @@ url = "2.2"
|
||||||
derive_more = "0.99"
|
derive_more = "0.99"
|
||||||
|
|
||||||
num_cpus = "1.13"
|
num_cpus = "1.13"
|
||||||
|
|
||||||
|
[dev-dependencies]
|
||||||
|
mktemp = "0.4.1"
|
||||||
|
|
39
src/page.rs
39
src/page.rs
|
@ -27,7 +27,7 @@ pub struct Page {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Page {
|
impl Page {
|
||||||
pub fn create_repo(&self) -> Repository {
|
fn create_repo(&self) -> Repository {
|
||||||
let repo = Repository::open(&self.path);
|
let repo = Repository::open(&self.path);
|
||||||
|
|
||||||
if let Ok(repo) = repo {
|
if let Ok(repo) = repo {
|
||||||
|
@ -36,9 +36,7 @@ impl Page {
|
||||||
info!("Cloning repository {} at {}", self.repo, self.path);
|
info!("Cloning repository {} at {}", self.repo, self.path);
|
||||||
Repository::clone(&self.repo, &self.path).unwrap()
|
Repository::clone(&self.repo, &self.path).unwrap()
|
||||||
};
|
};
|
||||||
// let branch = repo.find_branch(&self.branch, BranchType::Local).unwrap();
|
|
||||||
|
|
||||||
//repo.branches(BranchType::Local).unwrap().find(|b| b.unwrap().na
|
|
||||||
let repo = Repository::open(&self.path).unwrap();
|
let repo = Repository::open(&self.path).unwrap();
|
||||||
{
|
{
|
||||||
self._fetch_upstream(&repo, &self.branch);
|
self._fetch_upstream(&repo, &self.branch);
|
||||||
|
@ -53,11 +51,8 @@ impl Page {
|
||||||
|
|
||||||
repo.checkout_tree(&tree, Some(&mut checkout_options))
|
repo.checkout_tree(&tree, Some(&mut checkout_options))
|
||||||
.unwrap();
|
.unwrap();
|
||||||
// repo.set_head(&format!("refs/heads/{}", &self.branch))
|
|
||||||
// .unwrap();
|
|
||||||
|
|
||||||
repo.set_head(branch.get().name().unwrap()).unwrap();
|
repo.set_head(branch.get().name().unwrap()).unwrap();
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
repo
|
repo
|
||||||
}
|
}
|
||||||
|
@ -75,3 +70,35 @@ impl Page {
|
||||||
self._fetch_upstream(&repo, branch);
|
self._fetch_upstream(&repo, branch);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
use mktemp::Temp;
|
||||||
|
|
||||||
|
#[actix_rt::test]
|
||||||
|
async fn pages_works() {
|
||||||
|
let tmp_dir = Temp::new_dir().unwrap();
|
||||||
|
assert!(tmp_dir.exists(), "tmp directory successully created");
|
||||||
|
let page = Page {
|
||||||
|
secret: String::default(),
|
||||||
|
repo: "https://github.com/mcaptcha/website".to_owned(),
|
||||||
|
path: tmp_dir.to_str().unwrap().to_string(),
|
||||||
|
branch: "gh-pages".to_string(),
|
||||||
|
};
|
||||||
|
|
||||||
|
assert!(
|
||||||
|
Repository::open(tmp_dir.as_path()).is_err(),
|
||||||
|
"repository doesn't exist yet"
|
||||||
|
);
|
||||||
|
|
||||||
|
let repo = page.create_repo();
|
||||||
|
assert!(!repo.is_bare(), "repository isn't bare");
|
||||||
|
page.create_repo();
|
||||||
|
assert!(
|
||||||
|
Repository::open(tmp_dir.as_path()).is_ok(),
|
||||||
|
"repository exists yet"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue