ci: make console.warn work in tests (#18771)

This commit is contained in:
Jeremy Apthorp 2019-06-13 15:56:58 -07:00 committed by GitHub
parent 390e7f5719
commit 29decbdd4d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 28 additions and 10 deletions

View file

@ -32,6 +32,11 @@ describe('chromium feature', () => {
listener = null listener = null
}) })
afterEach(async () => {
await closeWindow(w)
w = null
})
describe('command line switches', () => { describe('command line switches', () => {
describe('--lang switch', () => { describe('--lang switch', () => {
const currentLocale = app.getLocale() const currentLocale = app.getLocale()
@ -78,8 +83,6 @@ describe('chromium feature', () => {
}) })
}) })
afterEach(() => closeWindow(w).then(() => { w = null }))
describe('heap snapshot', () => { describe('heap snapshot', () => {
it('does not crash', function () { it('does not crash', function () {
process.electronBinding('v8_util').takeHeapSnapshot() process.electronBinding('v8_util').takeHeapSnapshot()
@ -1466,6 +1469,19 @@ describe('chromium feature', () => {
}) })
}) })
describe('console functions', () => {
it('should exist', () => {
expect(console.log, 'log').to.be.a('function')
expect(console.error, 'error').to.be.a('function')
expect(console.warn, 'warn').to.be.a('function')
expect(console.info, 'info').to.be.a('function')
expect(console.debug, 'debug').to.be.a('function')
expect(console.trace, 'trace').to.be.a('function')
expect(console.time, 'time').to.be.a('function')
expect(console.timeEnd, 'timeEnd').to.be.a('function')
})
})
describe('font fallback', () => { describe('font fallback', () => {
async function getRenderedFonts (html) { async function getRenderedFonts (html) {
const w = new BrowserWindow({ show: false }) const w = new BrowserWindow({ show: false })

View file

@ -39,11 +39,14 @@
// Rediret all output to browser. // Rediret all output to browser.
if (isCi) { if (isCi) {
global.__defineGetter__('console', function () { const fakeConsole = {}
return { for (const k in console) {
log: (...args) => ipcRenderer.send('console.log', args), if (console.hasOwnProperty(k) && k !== 'assert') {
error: (...args) => ipcRenderer.send('console.error', args) fakeConsole[k] = (...args) => ipcRenderer.send('console-call', k, args)
} }
}
global.__defineGetter__('console', function () {
return fakeConsole
}) })
} }

View file

@ -52,16 +52,15 @@ if (process.platform !== 'darwin') {
// Write output to file if OUTPUT_TO_FILE is defined. // Write output to file if OUTPUT_TO_FILE is defined.
const outputToFile = process.env.OUTPUT_TO_FILE const outputToFile = process.env.OUTPUT_TO_FILE
const print = function (_, args) { const print = function (_, method, args) {
const output = util.format.apply(null, args) const output = util.format.apply(null, args)
if (outputToFile) { if (outputToFile) {
fs.appendFileSync(outputToFile, output + '\n') fs.appendFileSync(outputToFile, output + '\n')
} else { } else {
console.error(output) console[method](output)
} }
} }
ipcMain.on('console.log', print) ipcMain.on('console-call', print)
ipcMain.on('console.error', print)
ipcMain.on('process.exit', function (event, code) { ipcMain.on('process.exit', function (event, code) {
process.exit(code) process.exit(code)