chore: fmt + clippy

This commit is contained in:
Edward Langley
2026-04-09 00:21:48 -07:00
parent 08df85664e
commit 6239ac83ad
12 changed files with 264 additions and 195 deletions

View File

@ -1602,7 +1602,11 @@ impl Cmd for TileAxisOp {
None => Box::new(effect::CycleAxis(name.to_string())),
};
let status = format!("{}{}", name, axis_label(new_axis));
vec![axis_effect, effect::mark_dirty(), effect::set_status(status)]
vec![
axis_effect,
effect::mark_dirty(),
effect::set_status(status),
]
} else {
vec![]
}
@ -2250,10 +2254,7 @@ effect_cmd!(
"help",
|_args: &[String]| -> Result<(), String> { Ok(()) },
|_args: &Vec<String>, _ctx: &CmdContext| -> Vec<Box<dyn Effect>> {
vec![
effect::help_page_set(0),
effect::change_mode(AppMode::Help),
]
vec![effect::help_page_set(0), effect::change_mode(AppMode::Help)]
}
);
@ -3425,7 +3426,10 @@ mod tests {
let effects = TransposeAxes.execute(&ctx);
assert_eq!(effects.len(), 2);
let dbg = effects_debug(&effects);
assert!(dbg.contains("TransposeAxes"), "Expected TransposeAxes, got: {dbg}");
assert!(
dbg.contains("TransposeAxes"),
"Expected TransposeAxes, got: {dbg}"
);
}
// ── View navigation ────────────────────────────────────────────────
@ -3439,7 +3443,10 @@ mod tests {
let cmd = ViewNavigate { forward: true };
let effects = cmd.execute(&ctx);
let dbg = effects_debug(&effects);
assert!(dbg.contains("No forward view"), "Expected status message, got: {dbg}");
assert!(
dbg.contains("No forward view"),
"Expected status message, got: {dbg}"
);
}
#[test]
@ -3451,7 +3458,10 @@ mod tests {
let cmd = ViewNavigate { forward: false };
let effects = cmd.execute(&ctx);
let dbg = effects_debug(&effects);
assert!(dbg.contains("No previous view"), "Expected status message, got: {dbg}");
assert!(
dbg.contains("No previous view"),
"Expected status message, got: {dbg}"
);
}
#[test]
@ -3465,7 +3475,10 @@ mod tests {
let cmd = ViewNavigate { forward: true };
let effects = cmd.execute(&ctx);
let dbg = effects_debug(&effects);
assert!(dbg.contains("ViewForward"), "Expected ViewForward, got: {dbg}");
assert!(
dbg.contains("ViewForward"),
"Expected ViewForward, got: {dbg}"
);
}
#[test]
@ -3480,7 +3493,10 @@ mod tests {
let effects = cmd.execute(&ctx);
assert_eq!(effects.len(), 2); // ApplyAndClearDrill + ViewBack
let dbg = effects_debug(&effects);
assert!(dbg.contains("ApplyAndClearDrill"), "Expected ApplyAndClearDrill, got: {dbg}");
assert!(
dbg.contains("ApplyAndClearDrill"),
"Expected ApplyAndClearDrill, got: {dbg}"
);
assert!(dbg.contains("ViewBack"), "Expected ViewBack, got: {dbg}");
}
@ -3501,7 +3517,10 @@ mod tests {
let effects = cmd.execute(&ctx);
assert_eq!(effects.len(), 1);
let dbg = effects_debug(&effects);
assert!(dbg.contains("SetPanelCursor"), "Expected SetPanelCursor, got: {dbg}");
assert!(
dbg.contains("SetPanelCursor"),
"Expected SetPanelCursor, got: {dbg}"
);
}
#[test]
@ -3588,7 +3607,10 @@ mod tests {
// Should produce SetPageSelection effects
assert!(!effects.is_empty());
let dbg = effects_debug(&effects);
assert!(dbg.contains("SetPageSelection"), "Expected SetPageSelection, got: {dbg}");
assert!(
dbg.contains("SetPageSelection"),
"Expected SetPageSelection, got: {dbg}"
);
}
#[test]
@ -3600,7 +3622,10 @@ mod tests {
let effects = PagePrev.execute(&ctx);
assert!(!effects.is_empty());
let dbg = effects_debug(&effects);
assert!(dbg.contains("SetPageSelection"), "Expected SetPageSelection, got: {dbg}");
assert!(
dbg.contains("SetPageSelection"),
"Expected SetPageSelection, got: {dbg}"
);
}
// ── Tile axis commands ─────────────────────────────────────────────
@ -3657,7 +3682,10 @@ mod tests {
let effects = cmd.execute(&ctx);
assert_eq!(effects.len(), 1);
let dbg = effects_debug(&effects);
assert!(dbg.contains("SetTileCatIdx(1)"), "Expected idx 1, got: {dbg}");
assert!(
dbg.contains("SetTileCatIdx(1)"),
"Expected idx 1, got: {dbg}"
);
}
#[test]
@ -3670,7 +3698,10 @@ mod tests {
let effects = cmd.execute(&ctx);
assert_eq!(effects.len(), 1);
let dbg = effects_debug(&effects);
assert!(dbg.contains("SetTileCatIdx(0)"), "Expected clamped to 0, got: {dbg}");
assert!(
dbg.contains("SetTileCatIdx(0)"),
"Expected clamped to 0, got: {dbg}"
);
}
// ── Commit formula ─────────────────────────────────────────────────
@ -3686,8 +3717,14 @@ mod tests {
ctx.buffers = &bufs;
let effects = CommitFormula.execute(&ctx);
let dbg = effects_debug(&effects);
assert!(dbg.contains("AddFormula"), "Expected AddFormula, got: {dbg}");
assert!(dbg.contains("FormulaPanel"), "Expected return to FormulaPanel, got: {dbg}");
assert!(
dbg.contains("AddFormula"),
"Expected AddFormula, got: {dbg}"
);
assert!(
dbg.contains("FormulaPanel"),
"Expected return to FormulaPanel, got: {dbg}"
);
}
/// Regression: CommitFormula must not target virtual categories (_Index, _Dim)
@ -3727,7 +3764,10 @@ mod tests {
ctx.buffers = &bufs;
let effects = CommitCategoryAdd.execute(&ctx);
let dbg = effects_debug(&effects);
assert!(dbg.contains("AddCategory"), "Expected AddCategory, got: {dbg}");
assert!(
dbg.contains("AddCategory"),
"Expected AddCategory, got: {dbg}"
);
}
#[test]
@ -3741,7 +3781,10 @@ mod tests {
ctx.buffers = &bufs;
let effects = CommitCategoryAdd.execute(&ctx);
let dbg = effects_debug(&effects);
assert!(dbg.contains("CategoryPanel"), "Expected return to CategoryPanel, got: {dbg}");
assert!(
dbg.contains("CategoryPanel"),
"Expected return to CategoryPanel, got: {dbg}"
);
}
// ── Commit item add ────────────────────────────────────────────────
@ -3802,7 +3845,10 @@ mod tests {
ctx.buffers = &bufs;
let effects = CommandModeBackspace.execute(&ctx);
let dbg = effects_debug(&effects);
assert!(dbg.contains("Normal"), "Expected return to Normal, got: {dbg}");
assert!(
dbg.contains("Normal"),
"Expected return to Normal, got: {dbg}"
);
}
// ── Execute command ────────────────────────────────────────────────
@ -3833,7 +3879,10 @@ mod tests {
let effects = ExecuteCommand.execute(&ctx);
let dbg = effects_debug(&effects);
// Should show an error status AND return to Normal
assert!(dbg.contains("Normal"), "Expected Normal mode on error, got: {dbg}");
assert!(
dbg.contains("Normal"),
"Expected Normal mode on error, got: {dbg}"
);
}
#[test]
@ -3842,15 +3891,15 @@ mod tests {
let layout = make_layout(&m);
let reg = default_registry();
let mut bufs = HashMap::new();
bufs.insert(
"command".to_string(),
"add-category Region".to_string(),
);
bufs.insert("command".to_string(), "add-category Region".to_string());
let mut ctx = make_ctx(&m, &layout, &reg);
ctx.buffers = &bufs;
let effects = ExecuteCommand.execute(&ctx);
let dbg = effects_debug(&effects);
assert!(dbg.contains("AddCategory"), "Expected AddCategory effect, got: {dbg}");
assert!(
dbg.contains("AddCategory"),
"Expected AddCategory effect, got: {dbg}"
);
}
// ── Save command ───────────────────────────────────────────────────
@ -3878,8 +3927,14 @@ mod tests {
let effects = EnterSearchMode.execute(&ctx);
assert_eq!(effects.len(), 2);
let dbg = effects_debug(&effects);
assert!(dbg.contains("SetSearchMode(true)"), "Expected search mode on, got: {dbg}");
assert!(dbg.contains("SetSearchQuery"), "Expected query reset, got: {dbg}");
assert!(
dbg.contains("SetSearchMode(true)"),
"Expected search mode on, got: {dbg}"
);
assert!(
dbg.contains("SetSearchQuery"),
"Expected query reset, got: {dbg}"
);
}
#[test]
@ -3891,7 +3946,10 @@ mod tests {
let effects = ExitSearchMode.execute(&ctx);
assert_eq!(effects.len(), 1);
let dbg = effects_debug(&effects);
assert!(dbg.contains("SetSearchMode(false)"), "Expected search mode off, got: {dbg}");
assert!(
dbg.contains("SetSearchMode(false)"),
"Expected search mode off, got: {dbg}"
);
}
// ── Search navigate with query finds match ─────────────────────────
@ -3922,7 +3980,10 @@ mod tests {
// Should find the cell with 99 and navigate to it
if !effects.is_empty() {
let dbg = effects_debug(&effects);
assert!(dbg.contains("SetSelected"), "Expected SetSelected, got: {dbg}");
assert!(
dbg.contains("SetSelected"),
"Expected SetSelected, got: {dbg}"
);
}
// If empty, the search didn't find it through layout — that's OK since
// layout coordinates may not map 1:1 with model cells in all cases.
@ -3939,9 +4000,18 @@ mod tests {
let effects = CreateAndSwitchView.execute(&ctx);
let dbg = effects_debug(&effects);
// Model starts with 1 view ("Default"), so new view should be "View 2"
assert!(dbg.contains("CreateView"), "Expected CreateView, got: {dbg}");
assert!(dbg.contains("SwitchView"), "Expected SwitchView, got: {dbg}");
assert!(dbg.contains("Normal"), "Expected return to Normal, got: {dbg}");
assert!(
dbg.contains("CreateView"),
"Expected CreateView, got: {dbg}"
);
assert!(
dbg.contains("SwitchView"),
"Expected SwitchView, got: {dbg}"
);
assert!(
dbg.contains("Normal"),
"Expected return to Normal, got: {dbg}"
);
}
// ── Switch view at cursor ──────────────────────────────────────────
@ -3955,7 +4025,10 @@ mod tests {
let effects = SwitchViewAtCursor.execute(&ctx);
// cursor 0, model has "Default" view
let dbg = effects_debug(&effects);
assert!(dbg.contains("SwitchView"), "Expected SwitchView, got: {dbg}");
assert!(
dbg.contains("SwitchView"),
"Expected SwitchView, got: {dbg}"
);
assert!(dbg.contains("Normal"), "Expected Normal mode, got: {dbg}");
}
@ -3980,10 +4053,15 @@ mod tests {
let ctx = make_ctx(&m, &layout, &reg);
let effects = DeleteViewAtCursor.execute(&ctx);
let dbg = effects_debug(&effects);
assert!(dbg.contains("DeleteView"), "Expected DeleteView, got: {dbg}");
assert!(
dbg.contains("DeleteView"),
"Expected DeleteView, got: {dbg}"
);
// At cursor 0, should NOT have SetPanelCursor (no cursor adjustment needed)
assert!(!dbg.contains("SetPanelCursor"),
"Expected no cursor adjustment at position 0, got: {dbg}");
assert!(
!dbg.contains("SetPanelCursor"),
"Expected no cursor adjustment at position 0, got: {dbg}"
);
}
// ── Delete formula at cursor ───────────────────────────────────────
@ -4003,7 +4081,10 @@ mod tests {
let ctx = make_ctx(&m, &layout, &reg);
let effects = DeleteFormulaAtCursor.execute(&ctx);
let dbg = effects_debug(&effects);
assert!(dbg.contains("RemoveFormula"), "Expected RemoveFormula, got: {dbg}");
assert!(
dbg.contains("RemoveFormula"),
"Expected RemoveFormula, got: {dbg}"
);
}
// ── Commit export ──────────────────────────────────────────────────
@ -4064,7 +4145,10 @@ mod tests {
let ctx = make_ctx(&m, &layout, &reg);
let effects = EnterExportPrompt.execute(&ctx);
let dbg = effects_debug(&effects);
assert!(dbg.contains("ExportPrompt"), "Expected ExportPrompt mode, got: {dbg}");
assert!(
dbg.contains("ExportPrompt"),
"Expected ExportPrompt mode, got: {dbg}"
);
}
// ── Toggle prune empty ─────────────────────────────────────────────
@ -4077,7 +4161,10 @@ mod tests {
let ctx = make_ctx(&m, &layout, &reg);
let effects = TogglePruneEmpty.execute(&ctx);
let dbg = effects_debug(&effects);
assert!(dbg.contains("TogglePruneEmpty"), "Expected TogglePruneEmpty, got: {dbg}");
assert!(
dbg.contains("TogglePruneEmpty"),
"Expected TogglePruneEmpty, got: {dbg}"
);
}
// ── Edit or drill ──────────────────────────────────────────────────
@ -4131,7 +4218,10 @@ mod tests {
let effects = cmd.execute(&ctx);
assert_eq!(effects.len(), 1);
let dbg = effects_debug(&effects);
assert!(dbg.contains("AddCategory"), "Expected AddCategory, got: {dbg}");
assert!(
dbg.contains("AddCategory"),
"Expected AddCategory, got: {dbg}"
);
}
#[test]

View File

@ -1017,7 +1017,9 @@ mod tests {
// hjkl should be bound
for key in ['h', 'j', 'k', 'l'] {
assert!(
normal.lookup(KeyCode::Char(key), KeyModifiers::NONE).is_some(),
normal
.lookup(KeyCode::Char(key), KeyModifiers::NONE)
.is_some(),
"Normal mode missing binding for '{}'",
key
);
@ -1041,9 +1043,7 @@ mod tests {
.lookup(KeyCode::Char('z'), KeyModifiers::NONE)
.is_some());
// Should have Esc to exit
assert!(editing
.lookup(KeyCode::Esc, KeyModifiers::NONE)
.is_some());
assert!(editing.lookup(KeyCode::Esc, KeyModifiers::NONE).is_some());
}
#[test]
@ -1053,9 +1053,7 @@ mod tests {
assert!(search
.lookup(KeyCode::Char('a'), KeyModifiers::NONE)
.is_some());
assert!(search
.lookup(KeyCode::Esc, KeyModifiers::NONE)
.is_some());
assert!(search.lookup(KeyCode::Esc, KeyModifiers::NONE).is_some());
}
#[test]