From 6ce8dd249685f3baebb80d7d90c769447a98db5f Mon Sep 17 00:00:00 2001 From: Drew Paroski Date: Thu, 29 Apr 2021 18:22:24 +0000 Subject: SERVER-56493 Fix "unionWith_explain.js" test in various aggregation suites --- .../aggregation/sources/unionWith/unionWith_explain.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/jstests/aggregation/sources/unionWith/unionWith_explain.js b/jstests/aggregation/sources/unionWith/unionWith_explain.js index 2ffff833330..a22b2a3c994 100644 --- a/jstests/aggregation/sources/unionWith/unionWith_explain.js +++ b/jstests/aggregation/sources/unionWith/unionWith_explain.js @@ -42,9 +42,8 @@ function getUnionWithStage(explain) { } function buildErrorString(unionExplain, realExplain, field) { - const toString = e => typeof e !== 'string' ? tojson(e) : e; - return "Explains did not match in field " + field + ". Union:\n" + toString(unionExplain) + - "\nRegular:\n" + toString(realExplain); + return "Explains did not match in field " + field + ". Union:\n" + tojson(unionExplain) + + "\nRegular:\n" + tojson(realExplain); } function docEqWithIgnoredFields(union, regular) { @@ -55,6 +54,13 @@ function docEqWithIgnoredFields(union, regular) { "restoreState", "works", "needTime", + "slots", + ]); +} + +function arrayEqWithIgnoredFields(union, regular) { + return arrayEq(union, regular, false /* verbose */, null /* valueComparator */, [ + "slots", ]); } @@ -86,11 +92,9 @@ function assertExplainEq(unionExplain, regularExplain) { assert(docEqWithIgnoredFields(unionSubStats, realStats), buildErrorString(unionSubStats, realStats)); } else { - // Tolerate different values for the "NOW" slot when comparing explain output. - const toString = e => tojson(e).replace(/^.* NOW = s[0-9]+ \([0-9]+\).*$/gm, ""); const realExplain = regularExplain.stages; - assert(toString(unionSubExplain) == toString(realExplain), - buildErrorString(toString(unionSubExplain), toString(realExplain))); + assert(arrayEqWithIgnoredFields(unionSubExplain, realExplain), + buildErrorString(unionSubExplain, realExplain)); } } } -- cgit v1.2.1