UNPKG

804 BJavaScriptView Raw
1function 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
9EqualityError.prototype = Object.create(Error.prototype);
10EqualityError.prototype.name = 'EqualityError';
11EqualityError.prototype.constructor = EqualityError;
12
13var assert = require('assert');
14var esprima = require('esprima');
15
16module.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};