Merge branch 'fallback-report' of https://github.com/mauricioborges/jasmine into mauricioborges-fallback-report
- Merges #1009
This commit is contained in:
@@ -766,6 +766,10 @@ getJasmineRequireObj().Env = function(j$) {
|
|||||||
reporter.addReporter(reporterToAdd);
|
reporter.addReporter(reporterToAdd);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.provideFallbackReporter = function(reporterToAdd) {
|
||||||
|
reporter.provideFallbackReporter(reporterToAdd);
|
||||||
|
};
|
||||||
|
|
||||||
var spyRegistry = new j$.SpyRegistry({currentSpies: function() {
|
var spyRegistry = new j$.SpyRegistry({currentSpies: function() {
|
||||||
if(!currentRunnable()) {
|
if(!currentRunnable()) {
|
||||||
throw new Error('Spies must be created in a before function or a spec');
|
throw new Error('Spies must be created in a before function or a spec');
|
||||||
@@ -1983,14 +1987,23 @@ getJasmineRequireObj().ReportDispatcher = function() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var reporters = [];
|
var reporters = [];
|
||||||
|
var fallbackReporter = null;
|
||||||
|
|
||||||
this.addReporter = function(reporter) {
|
this.addReporter = function(reporter) {
|
||||||
reporters.push(reporter);
|
reporters.push(reporter);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.provideFallbackReporter = function(reporter) {
|
||||||
|
fallbackReporter = reporter;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
|
|
||||||
function dispatch(method, args) {
|
function dispatch(method, args) {
|
||||||
|
if (reporters.length === 0 && fallbackReporter !== null) {
|
||||||
|
reporters.push(fallbackReporter);
|
||||||
|
}
|
||||||
for (var i = 0; i < reporters.length; i++) {
|
for (var i = 0; i < reporters.length; i++) {
|
||||||
var reporter = reporters[i];
|
var reporter = reporters[i];
|
||||||
if (reporter[method]) {
|
if (reporter[method]) {
|
||||||
|
|||||||
@@ -37,4 +37,28 @@ describe("ReportDispatcher", function() {
|
|||||||
dispatcher.foo(123, 456);
|
dispatcher.foo(123, 456);
|
||||||
}).not.toThrow();
|
}).not.toThrow();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("allows providing a fallback reporter in case there's no other report", function() {
|
||||||
|
var dispatcher = new jasmineUnderTest.ReportDispatcher(['foo', 'bar']),
|
||||||
|
reporter = jasmine.createSpyObj('reporter', ['foo', 'bar']);
|
||||||
|
|
||||||
|
dispatcher.provideFallbackReporter(reporter);
|
||||||
|
dispatcher.foo(123, 456);
|
||||||
|
expect(reporter.foo).toHaveBeenCalledWith(123, 456);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
it("does not call fallback reporting methods when another report is provided", function() {
|
||||||
|
var dispatcher = new jasmineUnderTest.ReportDispatcher(['foo', 'bar']),
|
||||||
|
reporter = jasmine.createSpyObj('reporter', ['foo', 'bar']),
|
||||||
|
fallbackReporter = jasmine.createSpyObj('otherReporter', ['foo', 'bar']);
|
||||||
|
|
||||||
|
dispatcher.provideFallbackReporter(fallbackReporter);
|
||||||
|
dispatcher.addReporter(reporter);
|
||||||
|
dispatcher.foo(123, 456);
|
||||||
|
|
||||||
|
expect(reporter.foo).toHaveBeenCalledWith(123, 456);
|
||||||
|
expect(fallbackReporter.foo).not.toHaveBeenCalledWith(123, 456);
|
||||||
|
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1307,6 +1307,28 @@ describe("Env integration", function() {
|
|||||||
env.execute();
|
env.execute();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should report using fallback reporter', function(done) {
|
||||||
|
var env = new jasmineUnderTest.Env(),
|
||||||
|
reporter = jasmine.createSpyObj('fakeReporter', [
|
||||||
|
'specDone',
|
||||||
|
'jasmineDone'
|
||||||
|
]);
|
||||||
|
|
||||||
|
reporter.jasmineDone.and.callFake(function() {
|
||||||
|
expect(reporter.specDone).toHaveBeenCalled();
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
env.provideFallbackReporter(reporter);
|
||||||
|
|
||||||
|
env.it('will be pending', function() {
|
||||||
|
env.pending('with a message');
|
||||||
|
});
|
||||||
|
|
||||||
|
env.execute();
|
||||||
|
});
|
||||||
|
|
||||||
it('should report xdescribes as expected', function(done) {
|
it('should report xdescribes as expected', function(done) {
|
||||||
var env = new jasmineUnderTest.Env(),
|
var env = new jasmineUnderTest.Env(),
|
||||||
reporter = jasmine.createSpyObj('fakeReporter', [
|
reporter = jasmine.createSpyObj('fakeReporter', [
|
||||||
|
|||||||
@@ -262,6 +262,10 @@ getJasmineRequireObj().Env = function(j$) {
|
|||||||
reporter.addReporter(reporterToAdd);
|
reporter.addReporter(reporterToAdd);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.provideFallbackReporter = function(reporterToAdd) {
|
||||||
|
reporter.provideFallbackReporter(reporterToAdd);
|
||||||
|
};
|
||||||
|
|
||||||
var spyRegistry = new j$.SpyRegistry({currentSpies: function() {
|
var spyRegistry = new j$.SpyRegistry({currentSpies: function() {
|
||||||
if(!currentRunnable()) {
|
if(!currentRunnable()) {
|
||||||
throw new Error('Spies must be created in a before function or a spec');
|
throw new Error('Spies must be created in a before function or a spec');
|
||||||
|
|||||||
@@ -13,14 +13,23 @@ getJasmineRequireObj().ReportDispatcher = function() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var reporters = [];
|
var reporters = [];
|
||||||
|
var fallbackReporter = null;
|
||||||
|
|
||||||
this.addReporter = function(reporter) {
|
this.addReporter = function(reporter) {
|
||||||
reporters.push(reporter);
|
reporters.push(reporter);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.provideFallbackReporter = function(reporter) {
|
||||||
|
fallbackReporter = reporter;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
|
|
||||||
function dispatch(method, args) {
|
function dispatch(method, args) {
|
||||||
|
if (reporters.length === 0 && fallbackReporter !== null) {
|
||||||
|
reporters.push(fallbackReporter);
|
||||||
|
}
|
||||||
for (var i = 0; i < reporters.length; i++) {
|
for (var i = 0; i < reporters.length; i++) {
|
||||||
var reporter = reporters[i];
|
var reporter = reporters[i];
|
||||||
if (reporter[method]) {
|
if (reporter[method]) {
|
||||||
|
|||||||
Reference in New Issue
Block a user