1 | function EqualityError(message, actual, expected) {
|
2 | this.message = message;
|
3 | this.actual = actual;
|
4 | this.expected = expected;
|
5 | this.showDiff = true;
|
6 | Error.captureStackTrace(this, module.exports);
|
7 | }
|
8 |
|
9 | EqualityError.prototype = Object.create(Error.prototype);
|
10 | EqualityError.prototype.name = 'EqualityError';
|
11 | EqualityError.prototype.constructor = EqualityError;
|
12 |
|
13 | var assert = require('assert');
|
14 | var esprima = require('esprima');
|
15 |
|
16 | module.exports = function(actual, expected, message) {
|
17 | var parsedActual = esprima.parse(actual);
|
18 | var parsedExpected = esprima.parse(expected);
|
19 |
|
20 | var seemEqual = JSON.stringify(parsedActual) === JSON.stringify(parsedExpected);
|
21 |
|
22 | if (!seemEqual) {
|
23 | throw new EqualityError(message || "AST equality failed",
|
24 | parsedActual,
|
25 | parsedExpected
|
26 | );
|
27 | }
|
28 | };
|