mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-02-24 16:14:01 +08:00
Clean up spec-bootstrap and jasmine-helper
This commit is contained in:
parent
f0608fbad0
commit
bda18f5afe
4 changed files with 57 additions and 100 deletions
|
@ -1,60 +0,0 @@
|
|||
fs = require 'fs'
|
||||
{remote} = require 'electron'
|
||||
|
||||
module.exports.runSpecSuite = (specSuite, logFile, logErrors=true) ->
|
||||
window[key] = value for key, value of require './jasmine'
|
||||
|
||||
{TerminalReporter} = require 'jasmine-tagged'
|
||||
|
||||
disableFocusMethods() if process.env.JANKY_SHA1
|
||||
|
||||
TimeReporter = require './time-reporter'
|
||||
timeReporter = new TimeReporter()
|
||||
|
||||
logStream = fs.openSync(logFile, 'w') if logFile?
|
||||
log = (str) ->
|
||||
if logStream?
|
||||
fs.writeSync(logStream, str)
|
||||
else
|
||||
remote.process.stdout.write(str)
|
||||
|
||||
if NylasEnv.getLoadSettings().showSpecsInWindow
|
||||
reporter = require './n1-spec-reporter'
|
||||
else if NylasEnv.getLoadSettings().exitWhenDone
|
||||
reporter = new TerminalReporter
|
||||
color: true
|
||||
print: (str) ->
|
||||
log(str)
|
||||
onComplete: (runner) ->
|
||||
fs.closeSync(logStream) if logStream?
|
||||
if process.env.JANKY_SHA1
|
||||
grim = require 'grim'
|
||||
grim.logDeprecations() if grim.getDeprecationsLength() > 0
|
||||
if runner.results().failedCount > 0
|
||||
NylasEnv.exit(1)
|
||||
else
|
||||
NylasEnv.exit(0)
|
||||
else
|
||||
reporter = require './n1-spec-reporter'
|
||||
|
||||
NylasEnv.initialize()
|
||||
|
||||
require specSuite
|
||||
|
||||
jasmineEnv = jasmine.getEnv()
|
||||
jasmineEnv.addReporter(reporter)
|
||||
jasmineEnv.addReporter(timeReporter)
|
||||
jasmineEnv.setIncludedTags([process.platform])
|
||||
|
||||
div = document.createElement('div')
|
||||
div.id = 'jasmine-content'
|
||||
document.body.appendChild(div)
|
||||
|
||||
jasmineEnv.execute()
|
||||
|
||||
disableFocusMethods = ->
|
||||
['fdescribe', 'ffdescribe', 'fffdescribe', 'fit', 'ffit', 'fffit'].forEach (methodName) ->
|
||||
focusMethod = window[methodName]
|
||||
window[methodName] = (description) ->
|
||||
error = new Error('Focused spec is running on CI')
|
||||
focusMethod description, -> throw error
|
48
spec/jasmine-helper.es6
Normal file
48
spec/jasmine-helper.es6
Normal file
|
@ -0,0 +1,48 @@
|
|||
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();
|
||||
}
|
|
@ -1,40 +0,0 @@
|
|||
# Start the crash reporter before anything else.
|
||||
# require('crash-reporter').start(productName: 'N1', companyName: 'Nylas')
|
||||
|
||||
|
||||
path = require 'path'
|
||||
fs = require 'fs-plus'
|
||||
|
||||
# Swap out Node's native Promise for Bluebird, which allows us to
|
||||
# do fancy things like handle exceptions inside promise blocks
|
||||
global.Promise = require 'bluebird'
|
||||
|
||||
try
|
||||
require '../src/window'
|
||||
NylasEnvConstructor = require '../src/nylas-env'
|
||||
window.NylasEnv = window.atom = NylasEnvConstructor.loadOrCreate()
|
||||
global.Promise.longStackTraces() if NylasEnv.inDevMode()
|
||||
|
||||
# Show window synchronously so a focusout doesn't fire on input elements
|
||||
# that are focused in the very first spec run.
|
||||
if not NylasEnv.getLoadSettings().exitWhenDone
|
||||
NylasEnv.getCurrentWindow().show()
|
||||
|
||||
{runSpecSuite} = require './jasmine-helper'
|
||||
|
||||
# Add 'src/global' to module search path.
|
||||
globalPath = path.join(NylasEnv.getLoadSettings().resourcePath, 'src', 'global')
|
||||
require('module').globalPaths.push(globalPath)
|
||||
# Still set NODE_PATH since tasks may need it.
|
||||
process.env.NODE_PATH = globalPath
|
||||
|
||||
document.title = "Spec Suite"
|
||||
document.getElementById("application-loading-cover").remove()
|
||||
|
||||
runSpecSuite './spec-suite', NylasEnv.getLoadSettings().logFile
|
||||
catch error
|
||||
if NylasEnv?.getLoadSettings().exitWhenDone
|
||||
console.error(error.stack ? error)
|
||||
NylasEnv.exit(1)
|
||||
else
|
||||
throw error
|
9
spec/spec-bootstrap.es6
Normal file
9
spec/spec-bootstrap.es6
Normal file
|
@ -0,0 +1,9 @@
|
|||
// Swap out Node's native Promise for Bluebird, which allows us to
|
||||
// do fancy things like handle exceptions inside promise blocks
|
||||
global.Promise = require('bluebird');
|
||||
Promise.longStackTraces();
|
||||
|
||||
import NylasEnvConstructor from '../src/nylas-env';
|
||||
window.NylasEnv = NylasEnvConstructor.loadOrCreate();
|
||||
import { runSpecSuite } from './jasmine-helper';
|
||||
runSpecSuite('./spec-suite');
|
Loading…
Reference in a new issue