From 34f9307ae04807dab41e70882644849ca864a366 Mon Sep 17 00:00:00 2001 From: juergba Date: Thu, 4 Apr 2019 13:54:59 +0200 Subject: [PATCH] extend existing tests --- .../pending/skip-async-spec.fixture.js | 20 +++++++++++++- .../pending/skip-sync-spec.fixture.js | 20 +++++++++++++- test/integration/pending.spec.js | 26 ++++++++++--------- 3 files changed, 52 insertions(+), 14 deletions(-) diff --git a/test/integration/fixtures/pending/skip-async-spec.fixture.js b/test/integration/fixtures/pending/skip-async-spec.fixture.js index 571ca5b851..402cd66c97 100644 --- a/test/integration/fixtures/pending/skip-async-spec.fixture.js +++ b/test/integration/fixtures/pending/skip-async-spec.fixture.js @@ -1,12 +1,30 @@ 'use strict'; +var assert = require('assert'); describe('skip in test', function () { + var runOrder = []; + beforeEach(function () { + runOrder.push('beforeEach'); + }); + it('should skip async', function (done) { var self = this; setTimeout(function () { self.skip(); // done() is not required }, 0); }); + it('should run other tests in suite', function () {}); - it('should run other tests in the suite', function () {}); + 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'); + }); }); diff --git a/test/integration/fixtures/pending/skip-sync-spec.fixture.js b/test/integration/fixtures/pending/skip-sync-spec.fixture.js index 9178fce033..515c91d1ec 100644 --- a/test/integration/fixtures/pending/skip-sync-spec.fixture.js +++ b/test/integration/fixtures/pending/skip-sync-spec.fixture.js @@ -1,10 +1,28 @@ 'use strict'; +var assert = require('assert'); describe('skip in test', function () { + var runOrder = []; + beforeEach(function () { + runOrder.push('beforeEach'); + }); + it('should skip immediately', function () { this.skip(); throw new Error('never run this test'); }); + it('should run other tests in suite', function () {}); - it('should run other tests in the suite', function () {}); + 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'); + }); }); diff --git a/test/integration/pending.spec.js b/test/integration/pending.spec.js index 7b96d36001..98620c8c9a 100644 --- a/test/integration/pending.spec.js +++ b/test/integration/pending.spec.js @@ -59,13 +59,14 @@ describe('pending', function() { it('should immediately skip the spec and run all others', function(done) { run('pending/skip-sync-spec.fixture.js', args, function(err, res) { if (err) { - done(err); - return; + return done(err); } - assert.strictEqual(res.stats.pending, 1); - assert.strictEqual(res.stats.passes, 1); - 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', 1) + .and('to have pending test order', 'should skip immediately') + .and('to have passed test count', 1) + .and('to have passed tests', 'should run other tests in suite'); done(); }); }); @@ -192,13 +193,14 @@ describe('pending', function() { it('should immediately skip the spec and run all others', function(done) { run('pending/skip-async-spec.fixture.js', args, function(err, res) { if (err) { - done(err); - return; + return done(err); } - assert.strictEqual(res.stats.pending, 1); - assert.strictEqual(res.stats.passes, 1); - 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', 1) + .and('to have pending test order', 'should skip async') + .and('to have passed test count', 1) + .and('to have passed tests', 'should run other tests in suite'); done(); }); });