mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-02-25 16:44:16 +08:00
48 lines
1.1 KiB
JavaScript
48 lines
1.1 KiB
JavaScript
import { remote } from 'electron';
|
|
import jasmineExports from './jasmine';
|
|
import {TerminalReporter} from 'jasmine-tagged';
|
|
import TimeReporter from './time-reporter'
|
|
import N1SpecReporter from './n1-spec-reporter';
|
|
|
|
export function runSpecSuite(specSuite) {
|
|
for (const key of Object.keys(jasmineExports)) {
|
|
window[key] = jasmineExports[key]
|
|
}
|
|
|
|
const timeReporter = new TimeReporter();
|
|
|
|
const log = (str) => {
|
|
return remote.process.stdout.write(str);
|
|
};
|
|
|
|
let reporter = new TerminalReporter({
|
|
color: true,
|
|
print(str) {
|
|
return log(str);
|
|
},
|
|
onComplete(runner) {
|
|
if (runner.results().failedCount > 0) {
|
|
return NylasEnv.exit(1);
|
|
}
|
|
return NylasEnv.exit(0);
|
|
},
|
|
});
|
|
|
|
if (NylasEnv.getLoadSettings().showSpecsInWindow) {
|
|
reporter = N1SpecReporter
|
|
}
|
|
|
|
NylasEnv.initialize();
|
|
|
|
require(specSuite);
|
|
|
|
const jasmineEnv = jasmineExports.jasmine.getEnv();
|
|
jasmineEnv.addReporter(reporter);
|
|
jasmineEnv.addReporter(timeReporter);
|
|
|
|
const div = document.createElement('div');
|
|
div.id = 'jasmine-content';
|
|
document.body.appendChild(div);
|
|
|
|
return jasmineEnv.execute();
|
|
}
|