From 2daee5e4cc075140af8040c3d085303af356a20b Mon Sep 17 00:00:00 2001 From: MarkXian Date: Sat, 1 Aug 2026 16:28:12 +0800 Subject: [PATCH 1/2] fix(pretty-dom): call filterNode with node only --- src/DOMElementFilter.ts | 2 +- src/__tests__/pretty-dom.js | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/DOMElementFilter.ts b/src/DOMElementFilter.ts index 743c4e3bc..0c8b0f4fe 100644 --- a/src/DOMElementFilter.ts +++ b/src/DOMElementFilter.ts @@ -253,7 +253,7 @@ export default function createDOMElementFilter( printChildren( Array.prototype.slice .call(node.childNodes || node.children) - .filter(filterNode), + .filter(child => filterNode(child)), config, indentation + config.indent, depth, diff --git a/src/__tests__/pretty-dom.js b/src/__tests__/pretty-dom.js index 2b6ae6b44..0b4095b47 100644 --- a/src/__tests__/pretty-dom.js +++ b/src/__tests__/pretty-dom.js @@ -117,6 +117,22 @@ test('prettyDOM can include all elements with a custom filter', () => { `) }) +test('prettyDOM calls filterNode with only the node argument', () => { + const {container} = renderIntoDocument( + '

Hello, Dave

Second', + ) + + const filterNode = jest.fn(() => true) + + prettyDOM(container, Number.POSITIVE_INFINITY, {filterNode}) + + expect(filterNode).toHaveBeenCalledWith(expect.any(Node)) + filterNode.mock.calls.forEach(callArgs => { + expect(callArgs).toHaveLength(1) + expect(callArgs[0]).toBeInstanceOf(Node) + }) +}) + test('prettyDOM supports named custom elements', () => { window.customElements.define( 'my-element-1', From adbc86990ce4c30e45eafd379c811468d9f8566b Mon Sep 17 00:00:00 2001 From: MarkXian Date: Tue, 11 Aug 2026 14:48:47 +0800 Subject: [PATCH 2/2] fix(ci): pin node types for TypeScript compatibility --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 6fab4ee4e..60e14f95e 100644 --- a/package.json +++ b/package.json @@ -80,6 +80,7 @@ "typescript": "^4.1.2" }, "overrides": { + "@types/node": "18.19.0", "@babel/helper-compilation-targets": "7.24.7", "browserslist": "4.21.8", "caniuse-lite": "1.0.30001502"