Stage 4: drag-and-drop + keyboard chapter reordering (moveInList), chapters-changed broadcast, DnD/keyboard e2e
This commit is contained in:
parent
d3ab261346
commit
4b8d78458c
7 changed files with 217 additions and 34 deletions
|
|
@ -38,6 +38,7 @@ const {
|
|||
deleteChapter,
|
||||
duplicateChapter,
|
||||
reorderChapters,
|
||||
moveInOrder,
|
||||
} = chapters;
|
||||
|
||||
let failures = 0;
|
||||
|
|
@ -105,6 +106,11 @@ threw = false;
|
|||
try { createChapter(dir, " "); } catch { threw = true; }
|
||||
ok(threw, "createChapter rejects empty title");
|
||||
|
||||
// moveInOrder (pure reorder math used by drag & keyboard reorder)
|
||||
ok(JSON.stringify(moveInOrder(["a", "b", "c", "d"], 0, 2)) === JSON.stringify(["b", "c", "a", "d"]), "move item to middle");
|
||||
ok(JSON.stringify(moveInOrder(["a", "b", "c", "d"], 3, 0)) === JSON.stringify(["d", "a", "b", "c"]), "move last to top");
|
||||
ok(JSON.stringify(moveInOrder(["a", "b", "c", "d"], 1, 1)) === JSON.stringify(["a", "b", "c", "d"]), "no-op on same index");
|
||||
|
||||
fs.rmSync(projOut, { force: true });
|
||||
fs.rmSync(chapOut, { force: true });
|
||||
fs.rmSync(dir, { recursive: true, force: true });
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue