feat(script): remove a range of keyframes in one command (#814)

This commit is contained in:
Nigel Ihza Firdausy
2026-10-11 21:25:13 +07:00
parent 9a7d3e7699
commit be2c73ece9
2 changed files with 33 additions and 0 deletions
+20
View File
@@ -730,3 +730,23 @@ fn import_options_sequence_picks_one_still_or_the_run() {
assert_eq!(kind_of(&s, "shot_[0001-0003].png"), FootageKind::Sequence);
let _ = std::fs::remove_dir_all(&dir);
}
#[test]
fn script_remove_keys_batches_a_range_as_one_edit() {
let mut s = session();
let o = ok(
&mut s,
"var c = app.project.items.addComp('Batch Keys', 100, 100, 1, 10, 25); var p = c.layers.addNull().transform.rotation; for (var i = 0; i < 5; i++) p.setValueAtTime(i, i * 10); p.removeKeys(2, 4); [p.numKeys, p.keyTime(1), p.keyTime(2)]",
);
assert_eq!(o.result, json!([2, 0, 4]));
// The entire deletion is one undo step; keys outside the range survive.
s.undo();
let restored = ok(&mut s, "app.project.item(1).layer(1).transform.rotation.numKeys");
assert_eq!(restored.result, json!(5));
let invalid = run_code(
&mut s,
"app.project.item(1).layer(1).transform.rotation.removeKeys(0, 2)",
"remove-keys-range.jsx",
);
assert!(invalid.error.is_some());
}