/** * @jsxImportSource solid-js * @jest-environment jsdom */ import { createContext, useContext } from "../../src"; import { render, Show } from "../src"; describe("Testing Context", () => { const ThemeContext = createContext("light"); const Component = () => { const theme = useContext(ThemeContext); return
{theme}
; }; const CondComponent = () => { const theme = useContext(ThemeContext); return (
{theme}
); }; const div = document.createElement("div"); it("should create context properly", () => { expect(ThemeContext.id).toBeDefined(); expect(ThemeContext.defaultValue).toBe("light"); }); it("should work with single provider child", () => { render( () => ( ), div ); expect((div.firstChild as HTMLDivElement).innerHTML).toBe("dark"); div.innerHTML = ""; }); it("should work with single conditional provider child", () => { render( () => ( ), div ); expect((div.firstChild as HTMLDivElement).innerHTML).toBe("dark"); div.innerHTML = ""; }); it("should work with multi provider child", () => { render( () => (
Hi
), div ); expect((div.firstChild!.nextSibling! as HTMLDivElement).innerHTML).toBe("dark"); div.innerHTML = ""; }); it("should work with multi conditional provider child", () => { render( () => (
Hi
), div ); expect((div.firstChild!.nextSibling! as HTMLDivElement).innerHTML).toBe("dark"); div.innerHTML = ""; }); it("should work with dynamic multi provider child", () => { const child = () => ; render( () => (
Hi
{child()}
), div ); expect((div.firstChild!.nextSibling! as HTMLDivElement).innerHTML).toBe("dark"); div.innerHTML = ""; }); it("should work with dynamic multi conditional provider child", () => { const child = () => ; render( () => (
Hi
{child()}
), div ); expect((div.firstChild!.nextSibling! as HTMLDivElement).innerHTML).toBe("dark"); div.innerHTML = ""; }); });