You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.5 KiB
TypeScript
51 lines
1.5 KiB
TypeScript
import { assert } from "chai";
|
|
|
|
import { init, h, attributesModule } from "../../src/index";
|
|
|
|
const patch = init([attributesModule]);
|
|
|
|
describe("svg", function () {
|
|
let elm: any, vnode0: any;
|
|
beforeEach(function () {
|
|
elm = document.createElement("svg");
|
|
vnode0 = elm;
|
|
});
|
|
|
|
it("removes child svg elements", function () {
|
|
const a = h("svg", {}, [h("g"), h("g")]);
|
|
const b = h("svg", {}, [h("g")]);
|
|
const result = patch(patch(vnode0, a), b).elm as SVGElement;
|
|
assert.strictEqual(result.childNodes.length, 1);
|
|
});
|
|
|
|
it("adds correctly xlink namespaced attribute", function () {
|
|
const xlinkNS = "http://www.w3.org/1999/xlink";
|
|
const testUrl = "/test";
|
|
const a = h("svg", {}, [
|
|
h(
|
|
"use",
|
|
{
|
|
attrs: { "xlink:href": testUrl },
|
|
},
|
|
[]
|
|
),
|
|
]);
|
|
|
|
const result = patch(vnode0, a).elm as SVGElement;
|
|
assert.strictEqual(result.childNodes.length, 1);
|
|
const child = result.childNodes[0] as SVGUseElement;
|
|
assert.strictEqual(child.getAttribute("xlink:href"), testUrl);
|
|
assert.strictEqual(child.getAttributeNS(xlinkNS, "href"), testUrl);
|
|
});
|
|
|
|
it("adds correctly xml namespaced attribute", function () {
|
|
const xmlNS = "http://www.w3.org/XML/1998/namespace";
|
|
const testAttrValue = "und";
|
|
const a = h("svg", { attrs: { "xml:lang": testAttrValue } }, []);
|
|
|
|
const result = patch(vnode0, a).elm as SVGElement;
|
|
assert.strictEqual(result.getAttributeNS(xmlNS, "lang"), testAttrValue);
|
|
assert.strictEqual(result.getAttribute("xml:lang"), testAttrValue);
|
|
});
|
|
});
|