import * as React from "react";
import { render } from "@testing-library/react";
import { expectLogsAndClear, log } from "./expectLogs";
function Hello({ name }) {
const items = [1, 2, 3].map((item) => {
log(`recomputing ${item}`);
return <div key={item}>Item {item}</div>;
});
return (
<div>
Hello<b>{name}</b>
{items}
</div>
);
}
test("hello", () => {
const { asFragment, rerender } = render(<Hello name="World" />);
expect(asFragment()).toMatchInlineSnapshot(`
<DocumentFragment>
<div>
Hello
<b>
World
</b>
<div>
Item 1
</div>
<div>
Item 2
</div>
<div>
Item 3
</div>
</div>
</DocumentFragment>
`);
expectLogsAndClear(["recomputing 1", "recomputing 2", "recomputing 3"]);
rerender(<Hello name="Universe" />);
expect(asFragment()).toMatchInlineSnapshot(`
<DocumentFragment>
<div>
Hello
<b>
Universe
</b>
<div>
Item 1
</div>
<div>
Item 2
</div>
<div>
Item 3
</div>
</div>
</DocumentFragment>
`);
expectLogsAndClear(
__FORGET__ ? [] : ["recomputing 1", "recomputing 2", "recomputing 3"]
);
});