/**
* @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 = "";
});
});