Customize HTML in Jest
· One min read
In some scenarios, you may want to customize the HTML in Jest to align with your actual app's HTML structure. You can do it by one of the following options:
- Update the initial HTML by
testEnvironmentOptions
Update to jest.config.js
testEnvironmentOptions: {
html: '<!DOCTYPE html><div id="root"></div></html>',
},
Use container option to specify container of your test
root.id = "root";
render(<App />, {
container: document.getElementById("root"),
});
- Update HTML at runtime
Use container of @testing-library/react's render function (Please refer to https://testing-library.com/ if you are using @testing-library/other-framework)
// App.test.tsx
const root = document.createElement("div");
root.id = "root";
test("should work correctly", () => {
render(<App />, {
// Add container here 👇
container: document.body.appendChild(root),
});
});
You can assert your HTML by console.log(document.body.outerHTML)
<body>
<div id="root">
<!-- Your app's HTML -->
</div>
</body>
Or just see it directly in a browser using Jest Preview

