Unify status for xdescribe and xit

- Ensure *All's only execute if at least one child will run
- Specs will report a status of `excluded` instead of disabled

[finishes #153967580]
- #1418

Signed-off-by: Elenore Bastian <ebastian@pivotal.io>
This commit is contained in:
Gregg Van Hove
2018-01-25 16:17:31 -08:00
committed by Elenore Bastian
parent 07996b567f
commit 6b156ca6d1
10 changed files with 204 additions and 239 deletions

View File

@@ -418,7 +418,7 @@ describe("Env integration", function() {
env.describe('a suite', function() {
env.it('has a spec', function() {});
env.afterAll(function() {
throw 'nope';
});
@@ -747,6 +747,47 @@ describe("Env integration", function() {
env.execute([first_spec.id, second_spec.id]);
});
it("Allows filtering out specs and suites to run programmatically", function(done) {
var env = new jasmineUnderTest.Env(),
calls = [],
suiteCallback = jasmine.createSpy('suite callback'),
firstSpec,
secondSuite;
var assertions = function() {
expect(calls.length).toEqual(2);
expect(calls).toEqual(jasmine.arrayContaining([
'first spec',
'second spec'
]));
expect(suiteCallback).toHaveBeenCalled();
done();
};
env.addReporter({jasmineDone: assertions, suiteDone: suiteCallback});
env.describe("first suite", function() {
env.it("first spec", function() {
calls.push('first spec');
});
env.it("second spec", function() {
calls.push('second spec');
});
});
secondSuite = env.describe("second suite", function() {
env.it("third spec", function() {
calls.push('third spec');
});
});
env.specFilter = function(spec) {
return /^first suite/.test(spec.getFullName());
};
env.execute();
});
it("Functions can be spied on and have their calls tracked", function (done) {
var env = new jasmineUnderTest.Env();
@@ -1508,7 +1549,7 @@ describe("Env integration", function() {
order: jasmine.any(jasmineUnderTest.Order)
});
expect(reporter.specDone).toHaveBeenCalledWith(jasmine.objectContaining({ status: 'disabled' }));
expect(reporter.specDone).toHaveBeenCalledWith(jasmine.objectContaining({ status: 'pending' }));
expect(reporter.suiteDone).toHaveBeenCalledWith(jasmine.objectContaining({ description: 'xd out', status: 'pending' }));
expect(reporter.suiteDone.calls.count()).toBe(4);
@@ -2011,12 +2052,12 @@ describe("Env integration", function() {
it('is "passed"', function(done) {
var env = new jasmineUnderTest.Env(),
reporter = jasmine.createSpyObj('reporter', ['jasmineDone', 'suiteDone', 'specDone']);
reporter.jasmineDone.and.callFake(function(e) {
expect(e.overallStatus).toEqual('passed');
done();
});
env.addReporter(reporter);
env.it('passes', function() {});
env.execute();
@@ -2027,12 +2068,12 @@ describe("Env integration", function() {
it('is "failed"', function(done) {
var env = new jasmineUnderTest.Env(),
reporter = jasmine.createSpyObj('reporter', ['jasmineDone', 'suiteDone', 'specDone']);
reporter.jasmineDone.and.callFake(function(e) {
expect(e.overallStatus).toEqual('failed');
done();
});
env.addReporter(reporter);
env.it('fails', function() {
env.expect(true).toBe(false);
@@ -2045,12 +2086,12 @@ describe("Env integration", function() {
it('is "failed"', function(done) {
var env = new jasmineUnderTest.Env(),
reporter = jasmine.createSpyObj('reporter', ['jasmineDone', 'suiteDone', 'specDone']);
reporter.jasmineDone.and.callFake(function(e) {
expect(e.overallStatus).toEqual('failed');
done();
});
env.addReporter(reporter);
env.beforeAll(function() {
throw new Error('nope');
@@ -2064,12 +2105,12 @@ describe("Env integration", function() {
it('is "failed"', function(done) {
var env = new jasmineUnderTest.Env(),
reporter = jasmine.createSpyObj('reporter', ['jasmineDone', 'suiteDone', 'specDone']);
reporter.jasmineDone.and.callFake(function(e) {
expect(e.overallStatus).toEqual('failed');
done();
});
env.addReporter(reporter);
env.describe('something', function() {
env.beforeAll(function() {
@@ -2085,12 +2126,12 @@ describe("Env integration", function() {
it('is "failed"', function(done) {
var env = new jasmineUnderTest.Env(),
reporter = jasmine.createSpyObj('reporter', ['jasmineDone', 'suiteDone', 'specDone']);
reporter.jasmineDone.and.callFake(function(e) {
expect(e.overallStatus).toEqual('failed');
done();
});
env.addReporter(reporter);
env.afterAll(function() {
throw new Error('nope');
@@ -2104,12 +2145,12 @@ describe("Env integration", function() {
it('is "failed"', function(done) {
var env = new jasmineUnderTest.Env(),
reporter = jasmine.createSpyObj('reporter', ['jasmineDone', 'suiteDone', 'specDone']);
reporter.jasmineDone.and.callFake(function(e) {
expect(e.overallStatus).toEqual('failed');
done();
});
env.addReporter(reporter);
env.describe('something', function() {
env.afterAll(function() {
@@ -2148,13 +2189,13 @@ describe("Env integration", function() {
it('is "incomplete"', function(done) {
var env = new jasmineUnderTest.Env(),
reporter = jasmine.createSpyObj('reporter', ['jasmineDone', 'suiteDone', 'specDone']);
reporter.jasmineDone.and.callFake(function(e) {
expect(e.overallStatus).toEqual('incomplete');
expect(e.incompleteReason).toEqual('No specs found');
done();
});
env.addReporter(reporter);
env.execute();
});
@@ -2164,13 +2205,13 @@ describe("Env integration", function() {
it('is "incomplete"', function(done) {
var env = new jasmineUnderTest.Env(),
reporter = jasmine.createSpyObj('reporter', ['jasmineDone', 'suiteDone', 'specDone']);
reporter.jasmineDone.and.callFake(function(e) {
expect(e.overallStatus).toEqual('incomplete');
expect(e.incompleteReason).toEqual('fit() or fdescribe() was found');
done();
});
env.addReporter(reporter);
env.fit('is focused', function() {});
env.execute();
@@ -2181,13 +2222,13 @@ describe("Env integration", function() {
it('is "incomplete"', function(done) {
var env = new jasmineUnderTest.Env(),
reporter = jasmine.createSpyObj('reporter', ['jasmineDone', 'suiteDone', 'specDone']);
reporter.jasmineDone.and.callFake(function(e) {
expect(e.overallStatus).toEqual('incomplete');
expect(e.incompleteReason).toEqual('fit() or fdescribe() was found');
done();
});
env.addReporter(reporter);
env.fdescribe('something focused', function() {
env.it('does a thing', function() {});
@@ -2200,13 +2241,13 @@ describe("Env integration", function() {
it('is "failed"', function(done) {
var env = new jasmineUnderTest.Env(),
reporter = jasmine.createSpyObj('reporter', ['jasmineDone', 'suiteDone', 'specDone']);
reporter.jasmineDone.and.callFake(function(e) {
expect(e.overallStatus).toEqual('failed');
expect(e.incompleteReason).toBeUndefined();
done();
});
env.addReporter(reporter);
env.fit('is focused', function() {
env.expect(true).toBe(false);