Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lib/mocha-3.1.0/test/reporters/base.spec.js')
-rw-r--r--tests/lib/mocha-3.1.0/test/reporters/base.spec.js214
1 files changed, 214 insertions, 0 deletions
diff --git a/tests/lib/mocha-3.1.0/test/reporters/base.spec.js b/tests/lib/mocha-3.1.0/test/reporters/base.spec.js
new file mode 100644
index 0000000000..bbd0d3a9a7
--- /dev/null
+++ b/tests/lib/mocha-3.1.0/test/reporters/base.spec.js
@@ -0,0 +1,214 @@
+var assert = require('assert');
+
+var Base = require('../../lib/reporters/base')
+ , Assert = require('assert').AssertionError;
+
+function makeTest(err) {
+ return {
+ err: err,
+ fullTitle: function () {
+ return 'test title';
+ }
+ };
+}
+
+describe('Base reporter', function () {
+ var stdout
+ , stdoutWrite
+ , useColors;
+
+ beforeEach(function () {
+ stdout = [];
+ stdoutWrite = process.stdout.write;
+ process.stdout.write = function (string) {
+ stdout.push(string);
+ };
+ useColors = Base.useColors;
+ Base.useColors = false;
+ });
+
+ afterEach(function () {
+ process.stdout.write = stdoutWrite;
+ Base.useColors = useColors;
+ });
+
+ describe('showDiff', function() {
+ it('should show diffs by default', function () {
+ var err = new Assert({ actual: 'foo', expected: 'bar' })
+ , errOut;
+
+ var test = makeTest(err);
+
+ Base.list([test]);
+
+ errOut = stdout.join('\n');
+ errOut.should.match(/\- actual/);
+ errOut.should.match(/\+ expected/);
+ });
+
+ it('should show diffs if property set to `true`', function () {
+ var err = new Assert({ actual: 'foo', expected: 'bar' })
+ , errOut;
+
+ err.showDiff = true;
+ var test = makeTest(err);
+
+
+ Base.list([test]);
+
+ errOut = stdout.join('\n');
+ errOut.should.match(/\- actual/);
+ errOut.should.match(/\+ expected/);
+ });
+
+ it('should not show diffs when showDiff property set to `false`', function () {
+ var err = new Assert({ actual: 'foo', expected: 'bar' })
+ , errOut;
+
+ err.showDiff = false;
+ var test = makeTest(err);
+
+ Base.list([test]);
+
+ errOut = stdout.join('\n');
+ errOut.should.not.match(/\- actual/);
+ errOut.should.not.match(/\+ expected/);
+ });
+
+ it('should not show diffs when expected is not defined', function () {
+ var err = new Error('ouch')
+ , errOut;
+
+ var test = makeTest(err);
+
+ Base.list([test]);
+
+ errOut = stdout.join('\n');
+ errOut.should.not.match(/\- actual/);
+ errOut.should.not.match(/\+ expected/);
+ });
+
+ });
+
+ describe('Getting two strings', function() {
+ // Fix regression V1.2.1(see: issue #1241)
+ it('should show strings diff as is', function () {
+ var err = new Error('test'),
+ errOut;
+
+ err.actual = 'foo\nbar';
+ err.expected = 'foo\nbaz';
+ err.showDiff = true;
+ var test = makeTest(err);
+
+ Base.list([test]);
+
+ errOut = stdout.join('\n');
+
+ errOut.should.not.match(/"foo\\nbar"/);
+ errOut.should.match(/foo/).and.match(/bar/);
+ errOut.should.match(/test/);
+ errOut.should.match(/actual/);
+ errOut.should.match(/expected/);
+ });
+ });
+
+ it('should stringify objects', function () {
+ var err = new Error('test'),
+ errOut;
+
+ err.actual = {key:"a1"};
+ err.expected = {key:"e1"};
+ err.showDiff = true;
+ var test = makeTest(err);
+
+ Base.list([test]);
+
+ errOut = stdout.join('\n');
+ errOut.should.match(/"key"/);
+ errOut.should.match(/test/);
+ errOut.should.match(/\- actual/);
+ errOut.should.match(/\+ expected/);
+ });
+
+ it('should stringify Object.create(null)', function () {
+ var err = new Error('test'),
+ errOut;
+
+ err.actual = Object.create(null);
+ err.actual.hasOwnProperty = 1;
+ err.expected = Object.create(null);
+ err.expected.hasOwnProperty = 2;
+ err.showDiff = true;
+ var test = makeTest(err);
+
+ Base.list([test]);
+
+ errOut = stdout.join('\n');
+ errOut.should.match(/"hasOwnProperty"/);
+ errOut.should.match(/test/);
+ errOut.should.match(/\- actual/);
+ errOut.should.match(/\+ expected/);
+ });
+
+ it('should handle error messages that are not strings', function () {
+ var errOut;
+
+ try {
+ assert(false, true);
+ } catch (err) {
+ err.actual = false;
+ err.expected = true;
+ err.showDiff = true;
+ var test = makeTest(err);
+
+ Base.list([test]);
+
+ errOut = stdout.join('\n');
+ errOut.should.match(/\+true/);
+ errOut.should.match(/\-false/);
+ errOut.should.match(/\- actual/);
+ errOut.should.match(/\+ expected/);
+ }
+ });
+
+ it('should remove message from stack', function () {
+ var err = {
+ message: 'Error',
+ stack: 'Error\nfoo\nbar',
+ showDiff: false
+ };
+ var test = makeTest(err);
+
+ Base.list([test]);
+
+ var errOut = stdout.join('\n').trim();
+ errOut.should.equal('1) test title:\n Error\n foo\n bar');
+ });
+
+ it('should use the inspect() property if `message` is not set', function () {
+ var err = {
+ showDiff: false,
+ inspect: function() { return 'an error happened'; },
+ };
+ var test = makeTest(err);
+ Base.list([test]);
+ var errOut = stdout.join('\n').trim();
+ errOut.should.equal('1) test title:\n an error happened');
+ });
+
+ it('should not modify stack if it does not contain message', function () {
+ var err = {
+ message: 'Error',
+ stack: 'foo\nbar',
+ showDiff: false
+ };
+ var test = makeTest(err);
+
+ Base.list([test]);
+
+ var errOut = stdout.join('\n').trim();
+ errOut.should.equal('1) test title:\n Error\n foo\n bar');
+ });
+
+});