123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- <body>
- <script src="jquery-2.0.3.min.js"></script>
- <script type="text/javascript" charset="utf-8">
- (async function() {
- // Deprecated APIs are still supported and should be tested.
- process.throwDeprecation = false
- const Module = require('module');
- const path = require('path')
- const electron = require('electron')
- const { ipcRenderer } = electron
- // Extra module paths which can be used to load Mocha reporters
- if (process.env.ELECTRON_TEST_EXTRA_MODULE_PATHS) {
- for (const modulePath of process.env.ELECTRON_TEST_EXTRA_MODULE_PATHS.split(':')) {
- Module.globalPaths.push(modulePath);
- }
- }
- // Set up chai-as-promised here first to avoid conflicts
- // It must be loaded first or really strange things happen inside
- // chai that cause test failures
- // DO NOT MOVE, REMOVE OR EDIT THIS LINE
- require('chai').use(require('chai-as-promised'))
- // Rediret all output to browser.
- const fakeConsole = {}
- for (const k in console) {
- if (console.hasOwnProperty(k) && k !== 'assert') {
- fakeConsole[k] = (...args) => ipcRenderer.send('console-call', k, args)
- }
- }
- global.__defineGetter__('console', function () {
- return fakeConsole
- })
- const Mocha = require('mocha')
- const mochaOptions = {}
- if (process.env.MOCHA_REPORTER) {
- mochaOptions.reporter = process.env.MOCHA_REPORTER
- }
- if (process.env.MOCHA_MULTI_REPORTERS) {
- mochaOptions.reporterOptions = {
- reporterEnabled: process.env.MOCHA_MULTI_REPORTERS
- }
- }
- const mocha = new Mocha(mochaOptions)
- if (!process.env.MOCHA_REPORTER) {
- mocha.ui('bdd').reporter('tap')
- }
- const mochaTimeout = process.env.MOCHA_TIMEOUT || 30000
- mocha.timeout(mochaTimeout)
- const query = Mocha.utils.parseQuery(window.location.search || '')
- if (query.grep) mocha.grep(query.grep)
- if (query.invert) mocha.invert()
- const filter = (file) => {
- if (!/-spec\.js$/.test(file)) {
- return false
- }
- // This allows you to run specific modules only:
- // npm run test -match=menu
- const moduleMatch = process.env.npm_config_match
- ? new RegExp(process.env.npm_config_match, 'g')
- : null
- if (moduleMatch && !moduleMatch.test(file)) {
- return false
- }
- const files = query.files ? query.files.split(',') : undefined
- const baseElectronDir = path.resolve(__dirname, '..', '..')
- if (files && !files.includes(path.relative(baseElectronDir, file))) {
- return false
- }
- return true
- }
- const getFiles = require('./get-files')
- const testFiles = await getFiles(path.dirname(__dirname), { filter })
- testFiles.sort().forEach((file) => {
- mocha.addFile(file)
- })
- // Set up chai in the correct order
- const chai = require('chai')
- chai.use(require('chai-as-promised'))
- chai.use(require('dirty-chai'))
- // Show full object diff
- // https://github.com/chaijs/chai/issues/469
- chai.config.truncateThreshold = 0;
- const runner = mocha.run(() => {
- // Ensure the callback is called after runner is defined
- setTimeout(() => {
- ipcRenderer.send('process.exit', runner.failures)
- }, 0)
- })
- })()
- </script>
- </body>
|