@@ -26,6 +26,7 @@ const { myersDiff, printMyersDiff, printSimpleMyersDiff } = require('internal/as
2626
2727const kReadableOperator = {
2828 deepStrictEqual : 'Expected values to be strictly deep-equal:' ,
29+ partialDeepStrictEqual : 'Expected values to be partially and strictly deep-equal:' ,
2930 strictEqual : 'Expected values to be strictly equal:' ,
3031 strictEqualObject : 'Expected "actual" to be reference-equal to "expected":' ,
3132 deepEqual : 'Expected values to be loosely deep-equal:' ,
@@ -41,6 +42,8 @@ const kReadableOperator = {
4142const kMaxShortStringLength = 12 ;
4243const kMaxLongStringLength = 512 ;
4344
45+ const kMethodsWithCustomMessageDiff = [ 'deepStrictEqual' , 'strictEqual' , 'partialDeepStrictEqual' ] ;
46+
4447function copyError ( source ) {
4548 const target = ObjectAssign (
4649 { __proto__ : ObjectGetPrototypeOf ( source ) } ,
@@ -210,9 +213,13 @@ function createErrDiff(actual, expected, operator, customMessage) {
210213 const checkCommaDisparity = actual != null && typeof actual === 'object' ;
211214 const diff = myersDiff ( inspectedSplitActual , inspectedSplitExpected , checkCommaDisparity ) ;
212215
213- const myersDiffMessage = printMyersDiff ( diff ) ;
216+ const myersDiffMessage = printMyersDiff ( diff , operator ) ;
214217 message = myersDiffMessage . message ;
215218
219+ if ( operator === 'partialDeepStrictEqual' ) {
220+ header = `${ colors . gray } ${ colors . hasColors ? '' : '+ ' } actual${ colors . white } ${ colors . red } - expected${ colors . white } ` ;
221+ }
222+
216223 if ( myersDiffMessage . skipped ) {
217224 skipped = true ;
218225 }
@@ -255,7 +262,7 @@ class AssertionError extends Error {
255262 if ( isErrorStackTraceLimitWritable ( ) ) Error . stackTraceLimit = 0 ;
256263
257264 if ( message != null ) {
258- if ( operator === 'deepStrictEqual' || operator === 'strictEqual' ) {
265+ if ( kMethodsWithCustomMessageDiff . includes ( operator ) ) {
259266 super ( createErrDiff ( actual , expected , operator , message ) ) ;
260267 } else {
261268 super ( String ( message ) ) ;
@@ -275,7 +282,7 @@ class AssertionError extends Error {
275282 expected = copyError ( expected ) ;
276283 }
277284
278- if ( operator === 'deepStrictEqual' || operator === 'strictEqual' ) {
285+ if ( kMethodsWithCustomMessageDiff . includes ( operator ) ) {
279286 super ( createErrDiff ( actual , expected , operator , message ) ) ;
280287 } else if ( operator === 'notDeepStrictEqual' ||
281288 operator === 'notStrictEqual' ) {
0 commit comments