1 | import * as React from "react";
|
2 | import Renderer from "../classes/renderer";
|
3 | import { render } from "react-dom";
|
4 | import { renderToString } from "react-dom/server";
|
5 |
|
6 | const Login = ({
|
7 | message
|
8 | }) => (
|
9 | <h1>{message}</h1>
|
10 | );
|
11 |
|
12 | const loader = (id: string) => {
|
13 | const registry = { "core/login": Login };
|
14 | return registry[id];
|
15 | };
|
16 |
|
17 | describe("dotcom-core", () => {
|
18 | describe("renderer", () => {
|
19 | it("should render a component to html", () => {
|
20 | const renderer = new Renderer(
|
21 | loader,
|
22 | render,
|
23 | renderToString,
|
24 | );
|
25 |
|
26 | const html = renderer.render({
|
27 | component: "core/login",
|
28 | props: {
|
29 | message: "oh hai"
|
30 | }
|
31 | });
|
32 |
|
33 | expect(html).toMatchSnapshot();
|
34 | });
|
35 |
|
36 | it("should render a component to an element", () => {
|
37 | const El = jest.fn<Element>();
|
38 | const render = jest.fn();
|
39 | const renderer = new Renderer(
|
40 | loader,
|
41 | render,
|
42 | renderToString,
|
43 | );
|
44 |
|
45 | renderer.render({
|
46 | component: "core/login",
|
47 | el: new El(),
|
48 | props: {
|
49 | message: "oh hai"
|
50 | }
|
51 | });
|
52 |
|
53 | expect(render).toHaveBeenCalled();
|
54 | });
|
55 | });
|
56 |
|
57 | describe("core", () => {
|
58 |
|
59 | });
|
60 | });
|
61 |
|
62 |
|
63 |
|
64 |
|
65 |
|
66 |
|
67 |
|
68 |
|
69 |
|
70 |
|