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/integration/multiple-done.spec.js')
-rw-r--r--tests/lib/mocha-3.1.0/test/integration/multiple-done.spec.js96
1 files changed, 96 insertions, 0 deletions
diff --git a/tests/lib/mocha-3.1.0/test/integration/multiple-done.spec.js b/tests/lib/mocha-3.1.0/test/integration/multiple-done.spec.js
new file mode 100644
index 0000000000..47e82dbebb
--- /dev/null
+++ b/tests/lib/mocha-3.1.0/test/integration/multiple-done.spec.js
@@ -0,0 +1,96 @@
+var assert = require('assert');
+var run = require('./helpers').runMochaJSON;
+var args = [];
+
+describe('multiple calls to done()', function() {
+ var res;
+ describe('from a spec', function() {
+ before(function(done) {
+ run('multiple-done.fixture.js', args, function(err, result) {
+ res = result;
+ done(err);
+ });
+ });
+
+ it('results in failures', function() {
+ assert.equal(res.stats.pending, 0);
+ assert.equal(res.stats.passes, 1);
+ assert.equal(res.stats.failures, 1);
+ assert.equal(res.code, 1);
+ });
+
+ it('throws a descriptive error', function() {
+ assert.equal(res.failures[0].err.message,
+ 'done() called multiple times');
+ });
+ });
+
+ describe('with multiple specs', function() {
+ before(function(done) {
+ run('multiple-done-specs.fixture.js', args, function(err, result) {
+ res = result;
+ done(err);
+ });
+ });
+
+ it('results in a failure', function() {
+ assert.equal(res.stats.pending, 0);
+ assert.equal(res.stats.passes, 2);
+ assert.equal(res.stats.failures, 1);
+ assert.equal(res.code, 1);
+ });
+
+ it('correctly attributes the error', function() {
+ assert.equal(res.failures[0].fullTitle, 'suite test1');
+ assert.equal(res.failures[0].err.message,
+ 'done() called multiple times');
+ });
+ });
+
+ describe('from a before hook', function() {
+ before(function(done) {
+ run('multiple-done-before.fixture.js', args, function(err, result) {
+ res = result;
+ done(err);
+ });
+ });
+
+ it('results in a failure', function() {
+ assert.equal(res.stats.pending, 0);
+ assert.equal(res.stats.passes, 1);
+ assert.equal(res.stats.failures, 1);
+ assert.equal(res.code, 1);
+ });
+
+ it('correctly attributes the error', function() {
+ assert.equal(res.failures[0].fullTitle, 'suite "before all" hook');
+ assert.equal(res.failures[0].err.message,
+ 'done() called multiple times');
+ });
+ });
+
+ describe('from a beforeEach hook', function() {
+ before(function(done) {
+ run('multiple-done-beforeEach.fixture.js', args, function(err, result) {
+ res = result;
+ done(err);
+ });
+ });
+
+ it('results in a failure', function() {
+ assert.equal(res.stats.pending, 0);
+ assert.equal(res.stats.passes, 2);
+ assert.equal(res.stats.failures, 2);
+ assert.equal(res.code, 2);
+ });
+
+ it('correctly attributes the errors', function() {
+ assert.equal(res.failures.length, 2);
+ res.failures.forEach(function(failure) {
+ assert.equal(failure.fullTitle, 'suite "before each" hook');
+ assert.equal(failure.err.message,
+ 'done() called multiple times');
+ });
+ });
+ });
+});