mirror of
https://github.com/marko-js/marko.git
synced 2025-12-08 19:26:05 +00:00
68 lines
1.8 KiB
JavaScript
68 lines
1.8 KiB
JavaScript
var expect = require("chai").expect;
|
|
|
|
module.exports = function (helpers) {
|
|
var component = helpers.mount(require.resolve("./index"), {});
|
|
expect(helpers.targetEl.querySelectorAll("div").length).to.equal(0);
|
|
|
|
function checkOrder(letters) {
|
|
component.input = { letters: letters };
|
|
component.update();
|
|
|
|
var divs = helpers.targetEl.querySelectorAll("div");
|
|
|
|
expect(divs.length).to.equal(letters.length);
|
|
|
|
for (var i = 0; i < letters.length; i++) {
|
|
expect(divs[i].id).to.equal(letters[i]);
|
|
expect(divs[i].innerHTML).to.equal(letters[i]);
|
|
}
|
|
}
|
|
|
|
checkOrder(["a", "b", "c", "d", "e"]);
|
|
|
|
// Single element swap
|
|
checkOrder(["a", "c", "b", "d", "e"]);
|
|
|
|
// Single element removal
|
|
checkOrder(["a", "b", "d", "e"]);
|
|
|
|
// Single element addition
|
|
checkOrder(["a", "b", "c", "d", "e"]);
|
|
|
|
// Double element addition
|
|
checkOrder(["a", "b", "b1", "b2", "c", "d", "e"]);
|
|
|
|
// Double element removal
|
|
checkOrder(["a", "b", "c", "d", "e"]);
|
|
|
|
// Swap b and d
|
|
checkOrder(["a", "d", "c", "b", "e"]);
|
|
|
|
// Swap b and d back to normal
|
|
checkOrder(["a", "b", "c", "d", "e"]);
|
|
|
|
// Single element addition to START
|
|
checkOrder(["1", "a", "b", "c", "d", "e"]);
|
|
|
|
// Double element addition to START
|
|
checkOrder(["3", "2", "1", "a", "b", "c", "d", "e"]);
|
|
|
|
// Single element removal from START
|
|
checkOrder(["2", "1", "a", "b", "c", "d", "e"]);
|
|
|
|
// Double element removal from START
|
|
checkOrder(["a", "b", "c", "d", "e"]);
|
|
|
|
// Single element addition to END
|
|
checkOrder(["a", "b", "c", "d", "e", "f"]);
|
|
|
|
// Double element addition to END
|
|
checkOrder(["a", "b", "c", "d", "e", "f", "g", "h"]);
|
|
|
|
// Single element removal from END
|
|
checkOrder(["a", "b", "c", "d", "e", "f", "g"]);
|
|
|
|
// Double element removal from END
|
|
checkOrder(["a", "b", "c", "d", "e"]);
|
|
};
|