UNPKG

atom-nuclide

Version:

A unified developer experience for web and mobile development, built as a suite of features on top of Atom to provide hackability and the support of an active community.

91 lines (78 loc) 2.41 kB
'use strict'; /* @noflow */ /* * Copyright (c) 2015-present, Facebook, Inc. * All rights reserved. * * This source code is licensed under the license found in the LICENSE file in * the root directory of this source tree. */ /** * A port of Atom's focused specs. * https://github.com/atom/jasmine-focused/blob/c922330/src/jasmine-focused.coffee * * Flow is disabled because all of this is non-standard. */ require('jasmine-node'); function setGlobalFocusPriority(priority) { const env = jasmine.getEnv(); if (!env.focusPriority) { env.focusPriority = 1; } if (priority > env.focusPriority) { env.focusPriority = priority; } } function fdescribe(description, specDefinitions, priority_) { const priority = priority_ != null ? priority_ : 1; setGlobalFocusPriority(priority); const suite = describe(description, specDefinitions); suite.focusPriority = priority; return suite; } global.fdescribe = fdescribe; function ffdescribe(description, specDefinitions) { return fdescribe(description, specDefinitions, 2); } global.ffdescribe = ffdescribe; function fffdescribe(description, specDefinitions) { return fdescribe(description, specDefinitions, 3); } global.fffdescribe = fffdescribe; function fit(description, definition, priority_) { const priority = priority_ != null ? priority_ : 1; setGlobalFocusPriority(priority); const spec = it(description, definition); spec.focusPriority = priority; return spec; } global.fit = fit; function ffit(description, specDefinitions) { return fit(description, specDefinitions, 2); } global.ffit = ffit; function fffit(description, specDefinitions) { return fit(description, specDefinitions, 3); } global.fffit = fffit; jasmine.getEnv().specFilter = function(spec) { const env = jasmine.getEnv(); const globalFocusPriority = env.focusPriority; const parent = spec.parentSuite != null ? spec.parentSuite : spec.suite; if (!globalFocusPriority) { return true; } else if (spec.focusPriority >= globalFocusPriority) { return true; } else if (!parent) { return false; } else { return env.specFilter(parent); } }; // jasmine-node has ddescribe and iit. Remove them in favor of focus. if (typeof jasmine.Env.prototype.ddescribe === 'function') { delete jasmine.Env.prototype.ddescribe; } if (typeof jasmine.Env.prototype.iit === 'function') { delete jasmine.Env.prototype.iit; }