mirror of
https://github.com/storytold/figcraft.git
synced 2026-11-08 19:42:05 +00:00
Merge pull request #1783 from Silvertree2010/fix/h5009-page-move-silently-turns-a-negat
Reject negative or fractional index in page.move
This commit is contained in:
2 files changed
+15
-1
No files matched your search
@@ -129,7 +129,7 @@ pub fn specs() -> Vec<CommandSpec> {
|
||||
}),
|
||||
spec!("page.move", "Move page", "{id?, index}", true, |s, p| {
|
||||
let id = id(p, "id").unwrap_or(s.page()?);
|
||||
let k = req_num("page.move", p, "index")?.max(0.0) as usize;
|
||||
let k = req_index("page.move", p, "index")?;
|
||||
let doc = s.doc_mut()?;
|
||||
if !doc.pages.contains(&id) {
|
||||
return Err(bad("page.move", format!("{id} is not a page")));
|
||||
|
||||
@@ -398,6 +398,20 @@ fn page_select_and_doc_switch_refuse_negative_or_fractional_indexes() {
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn page_move_refuses_negative_or_fractional_indexes() {
|
||||
let mut s = Session::new();
|
||||
ex(&mut s, "page.add", json!({}));
|
||||
let p3 = id(&ex(&mut s, "page.add", json!({})));
|
||||
let before = pages(&mut s);
|
||||
for bad_index in [json!(-1), json!(1.5)] {
|
||||
assert!(s.execute("page.move", &json!({"id": p3, "index": bad_index})).is_err(), "page.move index {bad_index} must fail");
|
||||
assert_eq!(pages(&mut s), before, "page.move index {bad_index} leaves the order alone");
|
||||
}
|
||||
ex(&mut s, "page.move", json!({"id": p3, "index": 0}));
|
||||
assert_eq!(pages(&mut s)[0]["id"], json!(p3), "a valid index still moves the page");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn assets_panel_lists_files_and_drops_by_the_documented_rules() {
|
||||
let mut s = Session::new();
|
||||
|
||||
Reference in new issue
Block a user