aboutsummaryrefslogtreecommitdiff
path: root/node_modules/ava/lib/assert.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/ava/lib/assert.js')
-rw-r--r--node_modules/ava/lib/assert.js32
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) {