* Top level private APIs (e.g. jasmine.private.whatever) are no longer exposed * jasmineRequire is no longer exposed * core is self-booting * Globals are automatically created in browsers. (They can subsequently be removed by user code if desired.) * Globals are *not* automatically created in Node. An installGlobals function is exported instead. The jasmine package calls installGlobals unless configured not to do so. * In Node, the same instance is returned each time jasmine-core is imported. A reset function is exported. It effectively resets all state by discarding the env and creating a new one. This allows mulitple sequential runs within the same process to be independent of each other, but does not allow multiple concurrent runs. (That probably never worked anyway.) Fixes #2094
30 lines
759 B
JavaScript
30 lines
759 B
JavaScript
let jasmineCore;
|
|
verifyNoGlobals(() => { jasmineCore = require('../lib/jasmine-core.js'); });
|
|
jasmineCore.installGlobals();
|
|
|
|
const Jasmine = require('jasmine');
|
|
const runner = new Jasmine({jasmineCore});
|
|
|
|
runner.loadConfigFile('./spec/support/jasmine.json');
|
|
runner.exitOnCompletion = false;
|
|
runner.execute()
|
|
.then(
|
|
result => result.overallStatus === 'passed',
|
|
err => {
|
|
console.error(err);
|
|
return false;
|
|
}
|
|
)
|
|
.then(ok => process.exit(ok ? 0 : 1));
|
|
|
|
function verifyNoGlobals(fn) {
|
|
const initialGlobals = Object.keys(global);
|
|
fn();
|
|
|
|
const extras = Object.keys(global).filter(k => !initialGlobals.includes(k));
|
|
|
|
if (extras.length !== 0) {
|
|
throw new Error('Globals were unexpectedly created: ' + extras.join(', '));
|
|
}
|
|
}
|