From 2605182eb6e55ea6e87aa73567ddfc023c6f7c71 Mon Sep 17 00:00:00 2001
From: Lucas Correia
Date: Tue, 14 Jan 2025 15:50:37 -0300
Subject: [PATCH 01/28] fix: prevent infinite loop on prettyDOM calls
---
packages/utils/src/display.ts | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/packages/utils/src/display.ts b/packages/utils/src/display.ts
index f61b425787d6..de574b37008c 100644
--- a/packages/utils/src/display.ts
+++ b/packages/utils/src/display.ts
@@ -72,9 +72,11 @@ export function stringify(
...options,
})
}
-
+
+ // Prevents infinite loop https://github.com/vitest-dev/vitest/issues/7249
+ const nextMaxDepth = maxDepth === Infinity ? Number.MAX_VALUE : Math.floor(maxDepth / 2)
return result.length >= MAX_LENGTH && maxDepth > 1
- ? stringify(object, Math.floor(maxDepth / 2))
+ ? stringify(object, nextMaxDepth)
: result
}
From f78072280dc16fda6b31bd9f2a5ff6bd5199f5f9 Mon Sep 17 00:00:00 2001
From: Lucas Correia
Date: Tue, 14 Jan 2025 16:00:47 -0300
Subject: [PATCH 02/28] fix lint
---
packages/utils/src/display.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/utils/src/display.ts b/packages/utils/src/display.ts
index de574b37008c..a07b4977a380 100644
--- a/packages/utils/src/display.ts
+++ b/packages/utils/src/display.ts
@@ -72,7 +72,7 @@ export function stringify(
...options,
})
}
-
+
// Prevents infinite loop https://github.com/vitest-dev/vitest/issues/7249
const nextMaxDepth = maxDepth === Infinity ? Number.MAX_VALUE : Math.floor(maxDepth / 2)
return result.length >= MAX_LENGTH && maxDepth > 1
From 0b13cbf25f5705101187eaef3a4b9b450b8adc5c Mon Sep 17 00:00:00 2001
From: Lucas Correia
Date: Wed, 15 Jan 2025 10:34:04 -0300
Subject: [PATCH 03/28] use MAX_SAFE_INTEGER instead of MAX_VALUE
---
packages/utils/src/display.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/utils/src/display.ts b/packages/utils/src/display.ts
index a07b4977a380..a13e51aa53e9 100644
--- a/packages/utils/src/display.ts
+++ b/packages/utils/src/display.ts
@@ -74,7 +74,7 @@ export function stringify(
}
// Prevents infinite loop https://github.com/vitest-dev/vitest/issues/7249
- const nextMaxDepth = maxDepth === Infinity ? Number.MAX_VALUE : Math.floor(maxDepth / 2)
+ const nextMaxDepth = maxDepth === Infinity ? Number.MAX_SAFE_INTEGER : Math.floor(maxDepth / 2)
return result.length >= MAX_LENGTH && maxDepth > 1
? stringify(object, nextMaxDepth)
: result
From 6be46fe18ff12e11c146e627ee6e4caa5a322725 Mon Sep 17 00:00:00 2001
From: Lucas Correia
Date: Wed, 15 Jan 2025 10:34:28 -0300
Subject: [PATCH 04/28] add test case to handle large nested DOM in prettyDOM
calls
---
.../test/__snapshots__/utils.test.ts.snap | 30 +++++++++++++++++++
test/browser/test/utils.test.ts | 16 ++++++++++
2 files changed, 46 insertions(+)
diff --git a/test/browser/test/__snapshots__/utils.test.ts.snap b/test/browser/test/__snapshots__/utils.test.ts.snap
index c0ab66b34255..3ebc059f520a 100644
--- a/test/browser/test/__snapshots__/utils.test.ts.snap
+++ b/test/browser/test/__snapshots__/utils.test.ts.snap
@@ -35,3 +35,33 @@ exports[`prints the element with attributes 1`] = `
+
+
+
+
+
+
+
+