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
})
afterEach(async () => {
await closeWindow(w)
w = null
})
describe('command line switches', () => {
describe('--lang switch', () => {
const currentLocale = app.getLocale()
@ -78,8 +83,6 @@ describe('chromium feature', () => {
})
})
afterEach(() => closeWindow(w).then(() => { w = null }))
describe('heap snapshot', () => {
it('does not crash', function () {
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', () => {
async function getRenderedFonts (html) {
const w = new BrowserWindow({ show: false })

View file

@ -39,11 +39,14 @@
// Rediret all output to browser.
if (isCi) {
global.__defineGetter__('console', function () {
return {
log: (...args) => ipcRenderer.send('console.log', args),
error: (...args) => ipcRenderer.send('console.error', args)
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
})
}

View file

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