From 7d4b96145df171542d2db7469e6d449406148ae3 Mon Sep 17 00:00:00 2001 From: William Grant Date: Mon, 20 May 2024 16:22:47 +1000 Subject: [PATCH] feat: added print functions for react render results and html elements used for unit testing --- ts/test/test-utils/utils/components.ts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 ts/test/test-utils/utils/components.ts diff --git a/ts/test/test-utils/utils/components.ts b/ts/test/test-utils/utils/components.ts new file mode 100644 index 000000000..c9edc5cae --- /dev/null +++ b/ts/test/test-utils/utils/components.ts @@ -0,0 +1,24 @@ +import { RenderResult } from '@testing-library/react'; +import * as prettier from 'prettier'; +import { enableLogRedirect } from './stubbing'; + +const printHTMLElement = async (element: HTMLElement) => { + if (!window.log || !enableLogRedirect) { + throw Error('window.log is not defined. Have you turned on enableLogRedirect?'); + } + + return window.log.debug( + `\nRender Result:\n${await prettier.format(element.outerHTML, { parser: 'html' })}\n` + ); +}; +const printRenderResult = async (result: RenderResult) => { + if (!window.log || !enableLogRedirect) { + throw Error('window.log is not defined. Have you turned on enableLogRedirect?'); + } + + return window.log.debug( + `\nHTML Element:\n${await prettier.format(result.baseElement.outerHTML, { parser: 'html' })}\n` + ); +}; + +export { printHTMLElement, printRenderResult };