Skip to content

Commit

Permalink
additional tests
Browse files Browse the repository at this point in the history
  • Loading branch information
juergba committed Dec 21, 2019
1 parent 0e2ba28 commit fd350d6
Show file tree
Hide file tree
Showing 4 changed files with 97 additions and 16 deletions.
17 changes: 17 additions & 0 deletions test/integration/fixtures/pending/skip-async-beforeEach.fixture.js
@@ -1,7 +1,10 @@
'use strict';
var assert = require('assert');

describe('skip in beforeEach', function () {
var runOrder = [];
beforeEach(function (done) {
runOrder.push('beforeEach');
var self = this;
setTimeout(function () {
self.skip(); // done() is not required
Expand All @@ -17,4 +20,18 @@ describe('skip in beforeEach', function () {
it('should skip this test-3', function () {
throw new Error('never run this test');
});

afterEach(function() {
runOrder.push('afterEach');
});
after(function() {
runOrder.push('after');
assert.deepStrictEqual(runOrder, [
'beforeEach', 'afterEach',
'beforeEach', 'afterEach',
'beforeEach', 'afterEach',
'after'
]);
throw new Error('should throw this error');
});
});
@@ -0,0 +1,28 @@
'use strict';

describe('skip conditionally in beforeEach', function () {
var n = 1;
beforeEach(function () {
if (n !== 2) {
this.skip();
}
});

it('should never run this test-1', function () {
throw new Error('never run this test');
});
it('should run this test-2', function () {});

describe('inner suite', function() {
it('should never run this test-3', function () {
throw new Error('never run this test');
});
});

afterEach(function() { n++; });
after(function() {
if (n === 4) {
throw new Error('should throw this error');
}
});
});
21 changes: 18 additions & 3 deletions test/integration/fixtures/pending/skip-sync-beforeEach.fixture.js
@@ -1,15 +1,30 @@
'use strict';
var assert = require('assert');

describe('skip in beforeEach', function () {
var runOrder = [];
beforeEach(function () {
runOrder.push('beforeEach');
this.skip();
});

it('should never run this test', function () {
it('should never run this test-1', function () {
throw new Error('never run this test');
});

it('should never run this test', function () {
it('should never run this test-2', function () {
throw new Error('never run this test');
});

afterEach(function() {
runOrder.push('afterEach');
});
after(function() {
runOrder.push('after');
assert.deepStrictEqual(runOrder, [
'beforeEach', 'afterEach',
'beforeEach', 'afterEach',
'after'
]);
throw new Error('should throw this error');
});
});
47 changes: 34 additions & 13 deletions test/integration/pending.spec.js
Expand Up @@ -170,18 +170,39 @@ describe('pending', function() {

describe('in beforeEach', function() {
it('should skip all suite specs', function(done) {
run('pending/skip-sync-beforeEach.fixture.js', args, function(
err,
res
) {
var fixture = 'pending/skip-sync-beforeEach.fixture.js';
run(fixture, args, function(err, res) {
if (err) {
done(err);
return;
return done(err);
}
assert.strictEqual(res.stats.pending, 2);
assert.strictEqual(res.stats.passes, 0);
assert.strictEqual(res.stats.failures, 0);
assert.strictEqual(res.code, 0);
expect(res, 'to have failed with error', 'should throw this error')
.and('to have failed test count', 1)
.and('to have pending test count', 2)
.and(
'to have pending test order',
'should never run this test-1',
'should never run this test-2'
)
.and('to have passed test count', 0);
done();
});
});
it('should skip only two suite specs', function(done) {
var fixture = 'pending/skip-sync-beforeEach-cond.fixture.js';
run(fixture, args, function(err, res) {
if (err) {
return done(err);
}
expect(res, 'to have failed with error', 'should throw this error')
.and('to have failed test count', 1)
.and('to have pending test count', 2)
.and(
'to have pending test order',
'should never run this test-1',
'should never run this test-3'
)
.and('to have passed test count', 1)
.and('to have passed test', 'should run this test-2');
done();
});
});
Expand Down Expand Up @@ -287,16 +308,16 @@ describe('pending', function() {
if (err) {
return done(err);
}
expect(res, 'to have passed')
.and('to have passed test count', 0)
expect(res, 'to have failed with error', 'should throw this error')
.and('to have failed test count', 1)
.and('to have pending test count', 3)
.and(
'to have pending test order',
'should skip this test-1',
'should skip this test-2',
'should skip this test-3'
)
.and('to have failed test count', 0);
.and('to have passed test count', 0);
done();
});
});
Expand Down

0 comments on commit fd350d6

Please sign in to comment.