
package.test.unit.dataset.ts Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of snabbdom Show documentation
Show all versions of snabbdom Show documentation
A virtual DOM library with focus on simplicity, modularity, powerful features and performance.
The newest version!
import { assert } from "chai";
import { datasetModule, init, h } from "../../src/index";
const patch = init([datasetModule]);
describe("dataset", function () {
before(function () {
if (!Object.hasOwnProperty.call(HTMLElement.prototype, "dataset")) {
this.skip();
}
});
let elm: any, vnode0: any;
beforeEach(function () {
elm = document.createElement("div");
vnode0 = elm;
});
it("is set on initial element creation", function () {
elm = patch(vnode0, h("div", { dataset: { foo: "foo" } })).elm;
assert.strictEqual(elm.dataset.foo, "foo");
});
it("updates dataset", function () {
const vnode1 = h("i", { dataset: { foo: "foo", bar: "bar" } });
const vnode2 = h("i", { dataset: { baz: "baz" } });
elm = patch(vnode0, vnode1).elm;
assert.strictEqual(elm.dataset.foo, "foo");
assert.strictEqual(elm.dataset.bar, "bar");
elm = patch(vnode1, vnode2).elm;
assert.strictEqual(elm.dataset.baz, "baz");
assert.strictEqual(elm.dataset.foo, undefined);
});
it("can be memoized", function () {
const cachedDataset = { foo: "foo", bar: "bar" };
const vnode1 = h("i", { dataset: cachedDataset });
const vnode2 = h("i", { dataset: cachedDataset });
elm = patch(vnode0, vnode1).elm;
assert.strictEqual(elm.dataset.foo, "foo");
assert.strictEqual(elm.dataset.bar, "bar");
elm = patch(vnode1, vnode2).elm;
assert.strictEqual(elm.dataset.foo, "foo");
assert.strictEqual(elm.dataset.bar, "bar");
});
it("handles string conversions", function () {
const vnode1 = h("i", {
dataset: {
empty: "",
dash: "-",
dashed: "foo-bar",
camel: "fooBar",
integer: 0 as any,
float: 0.1 as any,
},
});
elm = patch(vnode0, vnode1).elm;
assert.strictEqual(elm.dataset.empty, "");
assert.strictEqual(elm.dataset.dash, "-");
assert.strictEqual(elm.dataset.dashed, "foo-bar");
assert.strictEqual(elm.dataset.camel, "fooBar");
assert.strictEqual(elm.dataset.integer, "0");
assert.strictEqual(elm.dataset.float, "0.1");
});
});
© 2015 - 2025 Weber Informatics LLC | Privacy Policy