Can use ffdescribe, ffit, fffdescribe, fffit to raise the focus priority.

This commit is contained in:
Nathan Sobo 2012-05-21 18:35:03 -07:00
parent 7744d6087b
commit 87d0c1d189
2 changed files with 35 additions and 10 deletions

View File

@ -86,7 +86,7 @@ end
desc "Remove any 'fit' or 'fdescribe' focus directives from the specs"
task :nof do
system %{find . -name *spec.coffee | xargs sed -E -i "" "s/f(it|describe) +(['\\"])/\\1 \\2/g"}
system %{find . -name *spec.coffee | xargs sed -E -i "" "s/f+(it|describe) +(['\\"])/\\1 \\2/g"}
end
task :"verify-prerequisites" do

View File

@ -1,20 +1,45 @@
var fdescribe = function(description, specDefinitions) {
jasmine.getEnv().focus = true
var setGlobalFocusPriority = function(priority) {
env = jasmine.getEnv();
if (!env.focusPriority) env.focusPriority = 1;
if (priority > env.focusPriority) env.focusPriority = priority;
};
var fdescribe = function(description, specDefinitions, priority) {
if (!priority) priority = 1;
setGlobalFocusPriority(priority)
var suite = describe(description, specDefinitions);
suite.focus = true;
suite.focusPriority = priority;
return suite;
};
var fit = function(description, definition) {
jasmine.getEnv().focus = true
var ffdescribe = function(description, specDefinitions) {
fdescribe(description, specDefinitions, 2);
};
var fffdescribe = function(description, specDefinitions) {
fdescribe(description, specDefinitions, 3);
};
var fit = function(description, definition, priority) {
if (!priority) priority = 1;
setGlobalFocusPriority(priority);
var spec = it(description, definition);
spec.focus = true;
spec.focusPriority = priority;
return spec;
};
var ffit = function(description, specDefinitions) {
fit(description, specDefinitions, 2);
};
var fffit = function(description, specDefinitions) {
fit(description, specDefinitions, 3);
};
var fSpecFilter = function(specOrSuite) {
if (!jasmine.getEnv().focus) return true;
if (specOrSuite.focus) return true;
globalFocusPriority = jasmine.getEnv().focusPriority;
if (!globalFocusPriority) return true;
if (specOrSuite.focusPriority >= globalFocusPriority) return true;
var parent = specOrSuite.parentSuite || specOrSuite.suite;
if (!parent) return false;
@ -29,7 +54,7 @@ jasmine.AtomReporter.prototype.specFilter = function(spec) {
paramMap[decodeURIComponent(p[0])] = decodeURIComponent(p[1]);
}
if (!paramMap.spec && !jasmine.getEnv().focus) {
if (!paramMap.spec && !jasmine.getEnv().focusPriority) {
return true;
}