Refactor: Formalize ports and update related files
This commit is contained in:
@@ -189,7 +189,7 @@ fn test_setup_hooks_skipped_on_rerun() {
|
||||
interpreter: None,
|
||||
};
|
||||
let runner = HookRunner::new(d.to_path_buf());
|
||||
let phase_report = run_phase(&[hook_spec], &HookPhase::Setup, &runner);
|
||||
let phase_report = run_phase(&[hook_spec], &HookPhase::Setup, &runner).unwrap();
|
||||
let step = phase_report
|
||||
.steps
|
||||
.iter()
|
||||
@@ -244,3 +244,49 @@ fn test_bootstrap_fails_fast_on_bad_key() {
|
||||
"should not reach link dotfiles step after key failure"
|
||||
);
|
||||
}
|
||||
|
||||
/// A link conflict must stop bootstrap before any hook phase runs.
|
||||
#[test]
|
||||
fn test_bootstrap_stops_after_link_failure() {
|
||||
let env = make_test_env();
|
||||
let d = env.dotfiles.path();
|
||||
let home = env.home.path();
|
||||
|
||||
fs::write(home.join(".zshrc"), "local override\n").unwrap();
|
||||
|
||||
let script = d.join("scripts/greet.nu");
|
||||
fs::write(&script, "print hello\n").unwrap();
|
||||
fs::write(
|
||||
&env.config,
|
||||
format!(
|
||||
"[bootstrap]\n\
|
||||
dotfiles_repo = \"https://example.com/fake.git\"\n\
|
||||
dotfiles_dir = \"{dotfiles}\"\n\n\
|
||||
[[hooks]]\n\
|
||||
name = \"greet\"\n\
|
||||
script = \"{script}\"\n\
|
||||
phase = \"dot\"\n",
|
||||
dotfiles = d.display(),
|
||||
script = script.display(),
|
||||
),
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
let report = run(make_opts(&env, false)).unwrap();
|
||||
|
||||
let link_step = report
|
||||
.steps
|
||||
.iter()
|
||||
.find(|step| step.name == "link dotfiles")
|
||||
.expect("link dotfiles step should be present");
|
||||
assert!(
|
||||
matches!(link_step.status, StepStatus::Failed(_)),
|
||||
"link failure should be surfaced, got {:?}",
|
||||
link_step.status
|
||||
);
|
||||
assert!(
|
||||
report.steps.iter().all(|step| step.name != "dot hooks"),
|
||||
"bootstrap should stop before running hooks after link failure: {:?}",
|
||||
report.steps
|
||||
);
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ fn test_nothooks_notsecrets_independent() {
|
||||
};
|
||||
|
||||
let runner = HookRunner::new(dir.path().to_path_buf());
|
||||
let result = runner.run_hook(&spec);
|
||||
let result = runner.run_hook(&spec).expect("hook runner should not fail");
|
||||
assert!(
|
||||
matches!(result, HookResult::Ok),
|
||||
"expected HookResult::Ok, got: {result:?}"
|
||||
|
||||
Reference in New Issue
Block a user