mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-09-09 03:01:18 +02:00
45 lines
1.9 KiB
JavaScript
45 lines
1.9 KiB
JavaScript
describe("jasmine.MultiReporter", function() {
|
|
var multiReporter, fakeReporter1, fakeReporter2;
|
|
|
|
beforeEach(function() {
|
|
multiReporter = new jasmine.MultiReporter();
|
|
fakeReporter1 = jasmine.createSpyObj("fakeReporter1", ["reportSpecResults"]);
|
|
fakeReporter2 = jasmine.createSpyObj("fakeReporter2", ["reportSpecResults", "reportRunnerStarting"]);
|
|
multiReporter.addReporter(fakeReporter1);
|
|
multiReporter.addReporter(fakeReporter2);
|
|
});
|
|
|
|
it("should support all the method calls that jasmine.Reporter supports", function() {
|
|
var delegate = {};
|
|
multiReporter.addReporter(delegate);
|
|
|
|
this.addMatchers({
|
|
toDelegateMethod: function(methodName) {
|
|
delegate[methodName] = jasmine.createSpy(methodName);
|
|
this.actual[methodName]("whatever argument");
|
|
|
|
return delegate[methodName].wasCalled
|
|
&& delegate[methodName].mostRecentCall.args.length == 1
|
|
&& delegate[methodName].mostRecentCall.args[0] == "whatever argument";
|
|
}
|
|
});
|
|
|
|
expect(multiReporter).toDelegateMethod('reportRunnerStarting');
|
|
expect(multiReporter).toDelegateMethod('reportRunnerResults');
|
|
expect(multiReporter).toDelegateMethod('reportSuiteResults');
|
|
expect(multiReporter).toDelegateMethod('reportSpecStarting');
|
|
expect(multiReporter).toDelegateMethod('reportSpecResults');
|
|
expect(multiReporter).toDelegateMethod('log');
|
|
});
|
|
|
|
it("should delegate to any and all subreporters", function() {
|
|
multiReporter.reportSpecResults('blah', 'foo');
|
|
expect(fakeReporter1.reportSpecResults).toHaveBeenCalledWith('blah', 'foo');
|
|
expect(fakeReporter2.reportSpecResults).toHaveBeenCalledWith('blah', 'foo');
|
|
});
|
|
|
|
it("should quietly skip delegating to any subreporters which lack the given method", function() {
|
|
multiReporter.reportRunnerStarting('blah', 'foo');
|
|
expect(fakeReporter2.reportRunnerStarting).toHaveBeenCalledWith('blah', 'foo');
|
|
});
|
|
}); |