// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at <https://mozilla.org/MPL/2.0/>.
-import { assertStrictEquals } from "./dev-deps.js";
+import { assertStrictEquals, DOMImplementation } from "./dev-deps.js";
import Lemon from "./mod.js";
Deno.test({
},
});
+Deno.test({
+ name:
+ "Lemon can be used to make a new element in a specified document.",
+ fn: () => {
+ const doc = new DOMImplementation().createDocument(
+ null,
+ "福",
+ null,
+ );
+ const elt = Lemon.call({ document: doc }, "xxx")({})``;
+ assertStrictEquals(elt.ownerDocument, doc);
+ },
+});
+
Deno.test({
name: "Lemon uses X·H·T·M·L as the default namespace.",
fn: () => {
},
});
+Deno.test({
+ name: "Bound Lemons are also proxied.",
+ fn: () => {
+ const doc = new DOMImplementation().createDocument(
+ null,
+ "福",
+ null,
+ );
+ const myLemon = Lemon.bind({ document: doc });
+ const elt = myLemon.creamPie({})``;
+ assertStrictEquals(typeof elt, "object");
+ assertStrictEquals(elt.localName, "cream-pie");
+ assertStrictEquals(elt.ownerDocument, doc);
+ },
+});
+
Deno.test({
name: "Lemon tags can be destructured.",
fn: () => {
Deno.test({
name: "Lemon tags support all kinds of expression.",
fn: () => {
- const elt = Lemon.xxx({})` a ${null} b ${Lemon.creamPie({})
- `\t`}${" c "}`;
+ const elt = Lemon.xxx({})` a ${null} b ${Lemon.creamPie(
+ {},
+ )`\t`}${" c "}`;
assertStrictEquals(elt.childNodes.length, 3);
assertStrictEquals(elt.childNodes[0].nodeType, 3);
assertStrictEquals(elt.childNodes[0].textContent, " a b ");