Compare commits

...

2 Commits

Author SHA1 Message Date
8167f6d85d fix(store): add test for moving to the last position
All checks were successful
continuous-integration/drone/push Build is passing
2021-08-24 21:46:57 +02:00
22edb6165b fix(store): copy indent from next item after moving 2021-08-24 21:44:10 +02:00
2 changed files with 32 additions and 0 deletions

View File

@ -189,4 +189,30 @@ describe("A store", function () {
expect(store.debug().idList).toEqual(["_a", "_c", "_b", "_d"])
})
})
describe("contains a moveBefore method which handles indentation", function () {
let store
beforeEach(function () {
store = createStore([
{text: "a", id: "_a", indented: 0},
{text: "b", id: "_b", indented: 1},
{text: "c", id: "_c", indented: 2},
{text: "d", id: "_d", indented: 3},
{text: "e", id: "_e", indented: 0},
])
})
it("moveBefore _e, _c", function () {
store.moveBefore("_e", "_c")
let debug = store.debug();
expect(debug.idList).toEqual(["_a", "_b", "_e", "_c", "_d"])
expect(debug.result[2]).toEqual({text: "e", id: "_e", indented: 2})
})
it("moveBefore _d, at-end", function () {
store.moveBefore("_d", "at-end")
let debug = store.debug();
expect(debug.idList).toEqual(["_a", "_b", "_c", "_e", "_d"])
expect(debug.result[4]).toEqual({text: "d", id: "_d", indented: 0})
})
})
})

View File

@ -301,6 +301,12 @@ function Store(inputData) {
rotate(idList, toIndex, fromIndex + n, fromIndex - toIndex)
changed = true
}
// Copy indent from the next item, or 0 when at the end
const v = value(to)
if (v) value(from).indented = v.indented
else value(from).indented = 0
return [index(from), n]
}