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.2/test/reporters')
-rw-r--r--tests/lib/mocha-3.1.2/test/reporters/base.spec.js213
-rw-r--r--tests/lib/mocha-3.1.2/test/reporters/json.spec.js63
-rw-r--r--tests/lib/mocha-3.1.2/test/reporters/nyan.spec.js31
3 files changed, 307 insertions, 0 deletions
diff --git a/tests/lib/mocha-3.1.2/test/reporters/base.spec.js b/tests/lib/mocha-3.1.2/test/reporters/base.spec.js
new file mode 100644
index 0000000000..6282d882ff
--- /dev/null
+++ b/tests/lib/mocha-3.1.2/test/reporters/base.spec.js
@@ -0,0 +1,213 @@
+'use strict';
+
+var assert = require('assert');
+
+var Base = require('../../lib/reporters/base');
+var Assert = require('assert').AssertionError;
+
+function makeTest (err) {
+ return {
+ err: err,
+ fullTitle: function () {
+ return 'test title';
+ }
+ };
+}
+
+describe('Base reporter', function () {
+ var stdout;
+ var stdoutWrite;
+ var 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' });
+ var 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' });
+ var 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' });
+ var 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');
+ var 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');
+ var 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');
+ var 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');
+ var 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');
+ });
+});
diff --git a/tests/lib/mocha-3.1.2/test/reporters/json.spec.js b/tests/lib/mocha-3.1.2/test/reporters/json.spec.js
new file mode 100644
index 0000000000..74151fdc8b
--- /dev/null
+++ b/tests/lib/mocha-3.1.2/test/reporters/json.spec.js
@@ -0,0 +1,63 @@
+'use strict';
+
+var Mocha = require('../../');
+var Suite = Mocha.Suite;
+var Runner = Mocha.Runner;
+var Test = Mocha.Test;
+
+describe('json reporter', function () {
+ var suite, runner;
+
+ beforeEach(function () {
+ var mocha = new Mocha({
+ reporter: 'json'
+ });
+ suite = new Suite('JSON suite', 'root');
+ runner = new Runner(suite);
+ /* eslint no-unused-vars: off */
+ var mochaReporter = new mocha._reporter(runner);
+ });
+
+ it('should have 1 test failure', function (done) {
+ var testTitle = 'json test 1';
+ var error = { message: 'oh shit' };
+
+ suite.addTest(new Test(testTitle, function (done) {
+ done(new Error(error.message));
+ }));
+
+ runner.run(function (failureCount) {
+ failureCount.should.be.exactly(1);
+ runner.should.have.property('testResults');
+ runner.testResults.should.have.property('failures');
+ runner.testResults.failures.should.be.an.instanceOf(Array);
+ runner.testResults.failures.should.have.a.lengthOf(1);
+
+ var failure = runner.testResults.failures[0];
+ failure.should.have.property('title', testTitle);
+ failure.err.message.should.equal(error.message);
+ failure.should.have.properties('err');
+
+ done();
+ });
+ });
+
+ it('should have 1 test pending', function (done) {
+ var testTitle = 'json test 1';
+
+ suite.addTest(new Test(testTitle));
+
+ runner.run(function (failureCount) {
+ failureCount.should.be.exactly(0);
+ runner.should.have.property('testResults');
+ runner.testResults.should.have.property('pending');
+ runner.testResults.pending.should.be.an.instanceOf(Array);
+ runner.testResults.pending.should.have.a.lengthOf(1);
+
+ var pending = runner.testResults.pending[0];
+ pending.should.have.property('title', testTitle);
+
+ done();
+ });
+ });
+});
diff --git a/tests/lib/mocha-3.1.2/test/reporters/nyan.spec.js b/tests/lib/mocha-3.1.2/test/reporters/nyan.spec.js
new file mode 100644
index 0000000000..07c455efd3
--- /dev/null
+++ b/tests/lib/mocha-3.1.2/test/reporters/nyan.spec.js
@@ -0,0 +1,31 @@
+'use strict';
+
+var reporters = require('../../').reporters;
+var NyanCat = reporters.Nyan;
+
+describe('nyan face', function () {
+ it('nyan face:(x .x) when "failures" at least one', function () {
+ var nyanCat = new NyanCat({on: function () {}});
+ nyanCat.stats = { passes: 2, pending: 1, failures: 1 };
+ nyanCat.face().should.equal('( x .x)');
+ });
+
+ it('expected nyan face:(x .x) when "pending" at least one and no failing', function () {
+ var nyanCat = new NyanCat({on: function () {}});
+ nyanCat.stats = { passes: 2, pending: 1, failures: 0 };
+ nyanCat.face().should.equal('( o .o)');
+ });
+
+ it('expected nyan face:(^ .^) when "passing" only', function () {
+ var nyanCat = new NyanCat({on: function () {}});
+ nyanCat.stats = { passes: 1, pending: 0, failures: 0 };
+ nyanCat.face().should.equal('( ^ .^)');
+ });
+
+ it('nyan face:(- .-) when otherwise', function (done) {
+ var nyanCat = new NyanCat({on: function () {}});
+ nyanCat.stats = { passes: 0, pending: 0, failures: 0 };
+ nyanCat.face().should.equal('( - .-)');
+ done();
+ });
+});