use super::{
COMMAND_WORD, COMMIT_TIMING_LOG, DATA_FOLDER, DISCARD_AUDIT_LOG, MERGE_INTENT_FOLDER, MESSAGE_PREFIX, PROGRAM,
PUSH_TRIGGER_LOG, REPOSITORY_SCRATCH, RenamedName, SERVICE_UNIT, SETTINGS_FILE, WORKTREE_ADD_TIMING_LOG, WORKTREE_COPY_RECORD_FOLDER,
};
const ALL_PAIRS: [RenamedName; 13] = [
PROGRAM,
COMMAND_WORD,
SETTINGS_FILE,
MESSAGE_PREFIX,
DATA_FOLDER,
DISCARD_AUDIT_LOG,
COMMIT_TIMING_LOG,
WORKTREE_ADD_TIMING_LOG,
PUSH_TRIGGER_LOG,
MERGE_INTENT_FOLDER,
WORKTREE_COPY_RECORD_FOLDER,
REPOSITORY_SCRATCH,
SERVICE_UNIT,
];
#[test]
fn program_and_command_word_follow_the_crate_name() {
assert_eq!(PROGRAM.current, "monochromatic-git-policy-cli");
assert_eq!(PROGRAM.earlier, "cli-git-native");
assert_eq!(COMMAND_WORD.current, PROGRAM.current);
assert_eq!(COMMAND_WORD.earlier, "cli-git");
}
#[test]
fn settings_file_is_the_program_name_with_the_same_ending() {
assert_eq!(SETTINGS_FILE.current, format!("{}.config.jsonc", PROGRAM.current));
assert_eq!(SETTINGS_FILE.earlier, format!("{}.config.jsonc", COMMAND_WORD.earlier));
}
#[test]
fn no_pair_has_the_same_spelling_twice() {
for pair in ALL_PAIRS {
assert_ne!(pair.current, pair.earlier, "{pair:?}");
}
}
#[test]
fn an_earlier_spelling_never_matches_a_current_name_by_prefix_and_separator() {
for pair in ALL_PAIRS {
for other in ALL_PAIRS {
let prefix_of_current: bool = other.current.starts_with(pair.earlier);
assert!(!prefix_of_current, "{} starts with {}", other.current, pair.earlier);
}
}
}
#[test]
fn kept_names_begin_with_the_program_name() {
for pair in [DATA_FOLDER, DISCARD_AUDIT_LOG, COMMIT_TIMING_LOG, WORKTREE_ADD_TIMING_LOG, PUSH_TRIGGER_LOG, MERGE_INTENT_FOLDER, WORKTREE_COPY_RECORD_FOLDER, REPOSITORY_SCRATCH] {
assert!(pair.current.starts_with(PROGRAM.current), "{pair:?}");
assert!(pair.earlier.starts_with("cli-git"), "{pair:?}");
}
}