blob: b42853cd5a14c0bd2e242dccbbcb83703f984153 [file] [log] [blame]
var _ = require('underscore');
require('./matchers');
describe("GrowlReporter", function() {
var injector = require('../lib/reporter').inject,
path = require('path'),
growl = null,
reporter = null;
var fakeSpecResults = function(passed) {
return {
results: function() {
return {
passed: function() {
return passed;
}
}
}
};
};
var title = 'Jasmine',
passedRegexp = /^PASSED in [\d\.]+s$/,
failedRegexp = /^FAILED in [\d\.]+s$/,
passedImage = path.resolve(__dirname, '../res/passed.png'),
failedImage = path.resolve(__dirname, '../res/failed.png');
beforeEach(function() {
growl = jasmine.createSpy();
reporter = new (injector({ growl: growl }))();
});
it("should report 0 results", function() {
reporter.reportRunnerStarting();
reporter.reportRunnerResults();
expect(growl).toHaveNotified('0 tests passed, 0 total', {
name: title,
title: passedRegexp,
image: passedImage
});
});
it("should report 2 successful results", function() {
reporter.reportRunnerStarting();
_.times(2, function() {
reporter.reportSpecStarting();
reporter.reportSpecResults(fakeSpecResults(true));
});
reporter.reportRunnerResults();
expect(growl).toHaveNotified('2 tests passed, 2 total', {
name: title,
title: passedRegexp,
image: passedImage
});
});
it("should report 3 failed results", function() {
reporter.reportRunnerStarting();
_.times(3, function() {
reporter.reportSpecStarting();
reporter.reportSpecResults(fakeSpecResults(false));
});
reporter.reportRunnerResults();
expect(growl).toHaveNotified('0 tests passed, 3 tests failed, 3 total', {
name: title,
title: failedRegexp,
image: failedImage
});
});
it("should report 2 passed and 4 failed results", function() {
reporter.reportRunnerStarting();
_.times(2, function() {
reporter.reportSpecStarting();
reporter.reportSpecResults(fakeSpecResults(true));
});
_.times(4, function() {
reporter.reportSpecStarting();
reporter.reportSpecResults(fakeSpecResults(false));
});
reporter.reportRunnerResults();
expect(growl).toHaveNotified('2 tests passed, 4 tests failed, 6 total', {
name: title,
title: failedRegexp,
image: failedImage
});
});
});