diff options
Diffstat (limited to 'node_modules/ava/lib/assert.js')
-rw-r--r-- | node_modules/ava/lib/assert.js | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/node_modules/ava/lib/assert.js b/node_modules/ava/lib/assert.js index a0e9fe82c..18009b97d 100644 --- a/node_modules/ava/lib/assert.js +++ b/node_modules/ava/lib/assert.js @@ -64,6 +64,7 @@ function wrapAssertions(callbacks) { const pass = callbacks.pass; const pending = callbacks.pending; const fail = callbacks.fail; + const log = callbacks.log; const noop = () => {}; const makeRethrow = reason => () => { @@ -86,14 +87,25 @@ function wrapAssertions(callbacks) { if (Object.is(actual, expected)) { pass(this); } else { - const actualDescriptor = concordance.describe(actual, concordanceOptions); - const expectedDescriptor = concordance.describe(expected, concordanceOptions); - fail(this, new AssertionError({ - assertion: 'is', - message, - raw: {actual, expected}, - values: [formatDescriptorDiff(actualDescriptor, expectedDescriptor)] - })); + const result = concordance.compare(actual, expected, concordanceOptions); + const actualDescriptor = result.actual || concordance.describe(actual, concordanceOptions); + const expectedDescriptor = result.expected || concordance.describe(expected, concordanceOptions); + + if (result.pass) { + fail(this, new AssertionError({ + assertion: 'is', + message, + raw: {actual, expected}, + values: [formatDescriptorWithLabel('Values are deeply equal to each other, but they are not the same:', actualDescriptor)] + })); + } else { + fail(this, new AssertionError({ + assertion: 'is', + message, + raw: {actual, expected}, + values: [formatDescriptorDiff(actualDescriptor, expectedDescriptor)] + })); + } } }, @@ -110,6 +122,10 @@ function wrapAssertions(callbacks) { } }, + log(text) { + log(this, text); + }, + deepEqual(actual, expected, message) { const result = concordance.compare(actual, expected, concordanceOptions); if (result.pass) { |