- xit
- it with a null function body ( it("should be pending");
- calling pending() inside a spec
- having a spec without any expectations
Pending and Filtered specs now call Reporter interface specStarted so that reporting acts as expected.
Pending and Filtered spec names are present and styled in the HTML reporter
Using xit used to disable a spec. Disabling is now just when a spec is filtered out at run time (usually w/ the reporter).
Suites are still disabled with xdescribe and means its specs are never executed.
104 lines
2.7 KiB
JavaScript
104 lines
2.7 KiB
JavaScript
(function() {
|
|
var env = jasmine.getEnv();
|
|
|
|
var jasmineInterface = {
|
|
describe: function(description, specDefinitions) {
|
|
return env.describe(description, specDefinitions);
|
|
},
|
|
|
|
xdescribe: function(description, specDefinitions) {
|
|
return env.xdescribe(description, specDefinitions);
|
|
},
|
|
|
|
it: function(desc, func) {
|
|
return env.it(desc, func);
|
|
},
|
|
|
|
xit: function(desc, func) {
|
|
return env.xit(desc, func);
|
|
},
|
|
|
|
beforeEach: function(beforeEachFunction) {
|
|
return env.beforeEach(beforeEachFunction);
|
|
},
|
|
|
|
afterEach: function(afterEachFunction) {
|
|
return env.afterEach(afterEachFunction);
|
|
},
|
|
|
|
expect: function(actual) {
|
|
return env.expect(actual);
|
|
},
|
|
|
|
pending: function() {
|
|
return env.pending();
|
|
},
|
|
|
|
addMatchers: function(matchers) {
|
|
return env.addMatchers(matchers);
|
|
},
|
|
|
|
spyOn: function(obj, methodName) {
|
|
return env.spyOn(obj, methodName);
|
|
},
|
|
|
|
clock: env.clock,
|
|
setTimeout: env.clock.setTimeout,
|
|
clearTimeout: env.clock.clearTimeout,
|
|
setInterval: env.clock.setInterval,
|
|
clearInterval: env.clock.clearInterval,
|
|
|
|
jsApiReporter: new jasmine.JsApiReporter(jasmine)
|
|
};
|
|
|
|
if (typeof window == "undefined" && typeof exports == "object") {
|
|
extend(exports, jasmineInterface);
|
|
} else {
|
|
extend(window, jasmineInterface);
|
|
}
|
|
|
|
var queryString = new jasmine.QueryString({
|
|
getWindowLocation: function() { return window.location; }
|
|
});
|
|
|
|
// TODO: move all of catching to raise so we don't break our brains
|
|
var catchingExceptions = queryString.getParam("catch");
|
|
env.catchExceptions(typeof catchingExceptions === "undefined" ? true : catchingExceptions);
|
|
|
|
var htmlReporter = new jasmine.HtmlReporter({
|
|
env: env,
|
|
queryString: queryString,
|
|
onRaiseExceptionsClick: function() { queryString.setParam("catch", !env.catchingExceptions()); },
|
|
getContainer: function() { return document.body; },
|
|
createElement: function() { return document.createElement.apply(document, arguments); },
|
|
createTextNode: function() { return document.createTextNode.apply(document, arguments); }
|
|
});
|
|
|
|
env.addReporter(jasmineInterface.jsApiReporter);
|
|
env.addReporter(htmlReporter);
|
|
|
|
var specFilter = new jasmine.HtmlSpecFilter({
|
|
filterString: function() { return queryString.getParam("spec"); }
|
|
});
|
|
|
|
env.specFilter = function(spec) {
|
|
return specFilter.matches(spec.getFullName());
|
|
};
|
|
|
|
var currentWindowOnload = window.onload;
|
|
|
|
window.onload = function() {
|
|
if (currentWindowOnload) {
|
|
currentWindowOnload();
|
|
}
|
|
htmlReporter.initialize();
|
|
env.execute();
|
|
};
|
|
|
|
function extend(destination, source) {
|
|
for (var property in source) destination[property] = source[property];
|
|
return destination;
|
|
}
|
|
|
|
}());
|