diff --git a/framework/src/index.ts b/framework/src/index.ts index 3842106..a65b2ec 100644 --- a/framework/src/index.ts +++ b/framework/src/index.ts @@ -1,4 +1,5 @@ export * from "./lib/decorators"; +export * from "./lib/deref"; export * from "./lib/di"; export { default as bind, type Props as BindProps } from "./lib/directives/bind"; export { default as drag, type Props as DragProps } from "./lib/directives/drag"; diff --git a/framework/src/lib/deref.spec.ts b/framework/src/lib/deref.spec.ts new file mode 100644 index 0000000..90b7655 --- /dev/null +++ b/framework/src/lib/deref.spec.ts @@ -0,0 +1,38 @@ +import { html, render } from "lit"; +import { createRef, ref } from "lit/directives/ref.js"; +import { deref } from "./deref"; + +describe("deref", () => { + let elRef = createRef(); + + beforeEach(() => { + elRef = createRef(); + render(html`
`, document.body); + }); + + it("should return an HTML element when given an HTML element", () => { + const el = elRef.value; + expect(el).toBeDefined(); + + const derefed = deref(el); + expect(derefed).toBe(el); + }); + + it("should return an HTML element when given a `RefHello, world!
- *Hello, world!
+ *These paragraphs will appear in the main content area.
+ *Lorem ipsum dolor sit amet.
+ *Consectetur adipiscing elit.
+ * + * + * ` + * } + * + * render = () => html` + *The count is ${this.count}.
+ *(Nice.)
+ * ` : nothing} + *Lorem ipsum dolor sit amet
+ `; + } + protected override render = (): TemplateResult => html` -