Skip to content

Commit

Permalink
test
Browse files Browse the repository at this point in the history
  • Loading branch information
juergba committed Jul 23, 2019
1 parent db56f38 commit f23a057
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 @@ -169,18 +169,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 @@ -285,16 +306,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 f23a057

Please sign in to comment.