[-] Remove legacy features

This commit is contained in:
2026-05-09 17:41:20 +00:00
parent cd5ac0a52e
commit 496baa75c9
14 changed files with 107 additions and 200 deletions
+18 -15
View File
@@ -21,21 +21,14 @@ fn cli_rejects_removed_config_subcommands() {
}
#[test]
fn cli_accepts_sync_repo_pattern() {
let cli = Cli::try_parse_from([
"refray",
"sync",
"--repo-pattern",
"^(foo|bar)-",
"--dry-run",
])
.unwrap();
let Command::Sync(args) = cli.command else {
panic!("parsed unexpected command");
};
assert_eq!(args.repo_pattern, Some("^(foo|bar)-".to_string()));
assert!(args.dry_run);
fn cli_rejects_removed_sync_args() {
for args in [
["refray", "sync", "--repo-pattern", "^(foo|bar)-"].as_slice(),
["refray", "sync", "--work-dir", "/tmp/refray"].as_slice(),
["refray", "sync", "--force"].as_slice(),
] {
assert!(Cli::try_parse_from(args).is_err());
}
}
#[test]
@@ -85,6 +78,7 @@ fn cli_rejects_removed_serve_args() {
["refray", "serve", "--secret", "secret"].as_slice(),
["refray", "serve", "--secret-env", "WEBHOOK_SECRET"].as_slice(),
["refray", "serve", "--full-sync-interval-minutes", "30"].as_slice(),
["refray", "serve", "--work-dir", "/tmp/refray"].as_slice(),
] {
assert!(Cli::try_parse_from(args).is_err());
}
@@ -262,6 +256,15 @@ fn cli_rejects_removed_webhook_update_secret_args() {
"WEBHOOK_SECRET",
]
.as_slice(),
[
"refray",
"webhook",
"update",
"https://new.example.test/webhook",
"--work-dir",
"/tmp/refray",
]
.as_slice(),
] {
assert!(Cli::try_parse_from(args).is_err());
}
-4
View File
@@ -26,7 +26,6 @@ fn parses_token_forms() {
repo_blacklist = ["-archive$"]
create_missing = true
visibility = "private"
allow_force = false
conflict_resolution = "auto_rebase_pull_request"
[[mirrors.endpoints]]
@@ -92,7 +91,6 @@ fn validation_rejects_unknown_sites_and_single_endpoint_groups() {
repo_blacklist: Vec::new(),
create_missing: true,
visibility: Visibility::Private,
allow_force: false,
conflict_resolution: ConflictResolutionStrategy::Fail,
}],
webhook: None,
@@ -122,7 +120,6 @@ fn validation_rejects_unknown_sites_and_single_endpoint_groups() {
repo_blacklist: Vec::new(),
create_missing: true,
visibility: Visibility::Private,
allow_force: false,
conflict_resolution: ConflictResolutionStrategy::Fail,
}],
webhook: None,
@@ -245,7 +242,6 @@ fn mirror_config() -> MirrorConfig {
repo_blacklist: Vec::new(),
create_missing: true,
visibility: Visibility::Private,
allow_force: false,
conflict_resolution: ConflictResolutionStrategy::Fail,
}
}
+8 -33
View File
@@ -75,7 +75,7 @@ fn branch_decisions_choose_fast_forward_tip() {
let mirror = fixture.mirror();
fixture.fetch_all(&mirror);
let (decisions, conflicts) = mirror.branch_decisions(&fixture.remotes(), false).unwrap();
let (decisions, conflicts) = mirror.branch_decisions(&fixture.remotes()).unwrap();
assert!(conflicts.is_empty());
let main = find_branch(&decisions, "main");
@@ -94,7 +94,7 @@ fn branch_decisions_do_not_target_remotes_that_already_match() {
let mirror = fixture.mirror();
fixture.fetch_all(&mirror);
let (decisions, conflicts) = mirror.branch_decisions(&fixture.remotes(), false).unwrap();
let (decisions, conflicts) = mirror.branch_decisions(&fixture.remotes()).unwrap();
assert!(conflicts.is_empty());
let main = find_branch(&decisions, "main");
@@ -132,7 +132,7 @@ fn cached_remote_refs_match_ls_remote_snapshot_after_fetch() {
}
#[test]
fn branch_decisions_report_divergent_tips_without_force() {
fn branch_decisions_report_divergent_tips_as_conflicts() {
let fixture = GitFixture::new();
let base = fixture.commit("base", "base", 1_700_000_000);
fixture.push_head(&fixture.remote_a, "main");
@@ -146,7 +146,7 @@ fn branch_decisions_report_divergent_tips_without_force() {
let mirror = fixture.mirror();
fixture.fetch_all(&mirror);
let (decisions, conflicts) = mirror.branch_decisions(&fixture.remotes(), false).unwrap();
let (decisions, conflicts) = mirror.branch_decisions(&fixture.remotes()).unwrap();
assert!(decisions.is_empty());
assert_eq!(conflicts.len(), 1);
@@ -155,31 +155,6 @@ fn branch_decisions_report_divergent_tips_without_force() {
assert!(conflicts[0].tips.iter().any(|(_, sha)| sha == &b_tip));
}
#[test]
fn branch_decisions_force_selects_newest_divergent_tip() {
let fixture = GitFixture::new();
let base = fixture.commit("base", "base", 1_700_000_000);
fixture.push_head(&fixture.remote_a, "main");
fixture.push_head(&fixture.remote_b, "main");
let older = fixture.commit("older", "older", 1_700_000_100);
fixture.push_head(&fixture.remote_a, "main");
fixture.reset_hard(&base);
let newer = fixture.commit("newer", "newer", 1_700_000_200);
fixture.push_head(&fixture.remote_b, "main");
let mirror = fixture.mirror();
fixture.fetch_all(&mirror);
let (decisions, conflicts) = mirror.branch_decisions(&fixture.remotes(), true).unwrap();
assert!(conflicts.is_empty());
let main = find_branch(&decisions, "main");
assert_eq!(main.sha, newer);
assert_ne!(main.sha, older);
assert_eq!(main.source_remotes, vec!["b".to_string()]);
assert_eq!(main.target_remotes, vec!["a".to_string()]);
}
#[test]
fn auto_rebase_branch_conflict_replays_later_tip_and_marks_force_targets() {
let fixture = GitFixture::new();
@@ -195,7 +170,7 @@ fn auto_rebase_branch_conflict_replays_later_tip_and_marks_force_targets() {
let mirror = fixture.mirror();
fixture.fetch_all(&mirror);
let (_, conflicts) = mirror.branch_decisions(&fixture.remotes(), false).unwrap();
let (_, conflicts) = mirror.branch_decisions(&fixture.remotes()).unwrap();
let decision = mirror
.auto_rebase_branch_conflict(&fixture.remotes(), "main", &conflicts[0].tips)
@@ -247,7 +222,7 @@ fn auto_rebase_branch_conflict_fails_on_file_conflict() {
let mirror = fixture.mirror();
fixture.fetch_all(&mirror);
let (_, conflicts) = mirror.branch_decisions(&fixture.remotes(), false).unwrap();
let (_, conflicts) = mirror.branch_decisions(&fixture.remotes()).unwrap();
let error = mirror
.auto_rebase_branch_conflict(&fixture.remotes(), "main", &conflicts[0].tips)
@@ -265,10 +240,10 @@ fn push_branches_creates_missing_branch_on_other_remotes() {
let mirror = fixture.mirror();
fixture.fetch_all(&mirror);
let (decisions, conflicts) = mirror.branch_decisions(&fixture.remotes(), false).unwrap();
let (decisions, conflicts) = mirror.branch_decisions(&fixture.remotes()).unwrap();
assert!(conflicts.is_empty());
mirror
.push_branches(&fixture.remotes(), &decisions, false)
.push_branches(&fixture.remotes(), &decisions)
.unwrap();
assert_eq!(
-9
View File
@@ -47,7 +47,6 @@ fn wizard_builds_sync_group_from_profile_urls() {
assert_eq!(config.mirrors[0].sync_visibility, SyncVisibility::All);
assert!(config.mirrors[0].create_missing);
assert_eq!(config.mirrors[0].visibility, Visibility::Private);
assert!(!config.mirrors[0].allow_force);
assert_eq!(
config.mirrors[0].conflict_resolution,
ConflictResolutionStrategy::AutoRebasePullRequest
@@ -216,7 +215,6 @@ fn wizard_starts_existing_config_at_sync_group_menu() {
repo_blacklist: Vec::new(),
create_missing: true,
visibility: Visibility::Private,
allow_force: false,
conflict_resolution: ConflictResolutionStrategy::Fail,
}],
webhook: None,
@@ -246,7 +244,6 @@ fn wizard_can_ask_to_run_full_sync_after_config() {
repo_blacklist: Vec::new(),
create_missing: true,
visibility: Visibility::Private,
allow_force: false,
conflict_resolution: ConflictResolutionStrategy::Fail,
}],
webhook: None,
@@ -323,7 +320,6 @@ fn wizard_edits_existing_sync_group_from_menu() {
repo_blacklist: vec!["-archive$".to_string()],
create_missing: false,
visibility: Visibility::Public,
allow_force: true,
conflict_resolution: ConflictResolutionStrategy::Fail,
}],
webhook: None,
@@ -364,8 +360,6 @@ fn wizard_edits_existing_sync_group_from_menu() {
assert_eq!(mirror.repo_whitelist, vec!["^public-".to_string()]);
assert_eq!(mirror.repo_blacklist, vec!["-skip$".to_string()]);
assert_eq!(mirror.visibility, Visibility::Public);
assert!(mirror.allow_force);
let output = String::from_utf8(output).unwrap();
assert!(output.contains("Edit sync group"));
assert!(output.contains("updated sync group 1"));
@@ -413,7 +407,6 @@ fn wizard_prefills_existing_sync_group_when_editing() {
repo_blacklist: Vec::new(),
create_missing: true,
visibility: Visibility::Private,
allow_force: false,
conflict_resolution: ConflictResolutionStrategy::Fail,
}],
webhook: None,
@@ -478,7 +471,6 @@ fn wizard_deletes_existing_sync_group_from_menu() {
repo_blacklist: Vec::new(),
create_missing: true,
visibility: Visibility::Private,
allow_force: false,
conflict_resolution: ConflictResolutionStrategy::Fail,
}],
webhook: None,
@@ -538,7 +530,6 @@ fn wizard_can_go_back_from_delete_menu() {
repo_blacklist: Vec::new(),
create_missing: true,
visibility: Visibility::Private,
allow_force: false,
conflict_resolution: ConflictResolutionStrategy::Fail,
}],
webhook: None,
-1
View File
@@ -74,7 +74,6 @@ where
repo_blacklist: repo_filters.blacklist,
create_missing: true,
visibility: Visibility::Private,
allow_force: false,
conflict_resolution,
});
prompt_webhook_setup(reader, writer, config)?;
-1
View File
@@ -413,7 +413,6 @@ fn test_mirror() -> MirrorConfig {
repo_blacklist: Vec::new(),
create_missing: true,
visibility: crate::config::Visibility::Private,
allow_force: false,
conflict_resolution: ConflictResolutionStrategy::Fail,
}
}
-2
View File
@@ -116,7 +116,6 @@ fn matches_jobs_by_provider_and_namespace() {
repo_blacklist: Vec::new(),
create_missing: true,
visibility: Visibility::Private,
allow_force: false,
conflict_resolution: ConflictResolutionStrategy::Fail,
}],
webhook: None,
@@ -144,7 +143,6 @@ fn matching_jobs_respects_repo_name_filters() {
repo_blacklist: vec!["-archive$".to_string()],
create_missing: true,
visibility: Visibility::Private,
allow_force: false,
conflict_resolution: ConflictResolutionStrategy::Fail,
};
let config = Config {