function create_fastFailSpec(doNotRunFn){
        return okToRun;

        function okToRun(specFn){
            var isAsync = specFn.length > 0;
            return isAsync ?
                function(done){ doit.bind(this)(done);} :
                function()    { doit.bind(this)();};

            function doit(done){
                var reason = doNotRunFn();
                if (reason){
                    expect.toFail('test aborted because '+reason);
                    if (done){done();}
                } else {
                    specFn.bind(this)(done);
                }
            }
        }
    }
****************************************************
Enables async specs to fail fast.

create a wrapper of the test function passed into 'it'
that runs that test function unless 'isNotOkFn'
returns a reason not to run it as when
a critical data load failed so the tests shouldn't bother

Example: lookups.async.spec.js which loads lookups in the beforeEach
if that fails, all tests will fail

Todo: consider generating it, xit, iit
******************************************************