All Downloads are FREE. Search and download functionalities are using the official Maven repository.

package.test.unit.htmldomapi.ts Maven / Gradle / Ivy

Go to download

A virtual DOM library with focus on simplicity, modularity, powerful features and performance.

The newest version!
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);
  });
});




© 2015 - 2025 Weber Informatics LLC | Privacy Policy