chore: fmt + clippy
This commit is contained in:
@ -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, ®);
|
||||
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, ®);
|
||||
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, ®);
|
||||
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, ®);
|
||||
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, ®);
|
||||
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]
|
||||
|
||||
@ -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]
|
||||
|
||||
Reference in New Issue
Block a user