From 64b78834d37b0311e2dfdee0f40fdfbe9538846c Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Fri, 20 Mar 2026 11:05:09 +0900 Subject: [PATCH] fix: minimize diff between different primitive types --- packages/utils/src/diff/index.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/utils/src/diff/index.ts b/packages/utils/src/diff/index.ts index 4fd6ac9b2078..6460e268de60 100644 --- a/packages/utils/src/diff/index.ts +++ b/packages/utils/src/diff/index.ts @@ -97,7 +97,11 @@ export function diff(a: any, b: any, options?: DiffOptions): string | undefined if (expectedType !== getType(b)) { const { aAnnotation, aColor, aIndicator, bAnnotation, bColor, bIndicator } = normalizeDiffOptions(options) - const formatOptions = getFormatOptions(FALLBACK_FORMAT_OPTIONS, options) + // depth can be minimized when diffing different type of values + // since the difference would manifest at the top level. + // this heuristics can help avoiding printing large objects for assertion failure patterns such as: + // expect(shouldBeNullButMaybeHugeObject).toBeFalsy() + const formatOptions = getFormatOptions({ ...FALLBACK_FORMAT_OPTIONS, maxDepth: 1 }, options) let aDisplay = prettyFormat(a, formatOptions) let bDisplay = prettyFormat(b, formatOptions) // even if prettyFormat prints successfully big objects,