Skip to content

Commit fc2fd61

Browse files
authoredAug 10, 2020
fix(server): log error when file loading or preprocessing fails (#3540)
1 parent 1a118c2 commit fc2fd61

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed
 

‎lib/server.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,10 @@ class Server extends KarmaEventEmitter {
191191
})
192192
}
193193

194-
fileList.refresh().then(afterPreprocess, afterPreprocess)
194+
fileList.refresh().then(afterPreprocess, (err) => {
195+
this.log.error('Error during file loading or preprocessing\n' + err.stack || err)
196+
afterPreprocess()
197+
})
195198

196199
this.on('browsers_change', () => socketServer.sockets.emit('info', capturedBrowsers.serialize()))
197200

‎test/unit/server.spec.js

+6-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ const BundleUtils = require('../../lib/utils/bundle-utils')
33
const NetUtils = require('../../lib/utils/net-utils')
44
const BrowserCollection = require('../../lib/browser_collection')
55
const Browser = require('../../lib/browser')
6+
const logger = require('../../lib/logger')
67

78
describe('server', () => {
89
let mockConfig
@@ -16,6 +17,7 @@ describe('server', () => {
1617
let mockBoundServer
1718
let mockExecutor
1819
let doneSpy
20+
let logErrorSpy
1921
let server = mockConfig = browserCollection = webServerOnError = null
2022
let fileListOnResolve = fileListOnReject = mockLauncher = null
2123
let mockFileList = mockWebServer = mockSocketServer = mockExecutor = doneSpy = null
@@ -27,6 +29,7 @@ describe('server', () => {
2729
this.timeout(4000)
2830
browserCollection = new BrowserCollection()
2931
doneSpy = sinon.spy()
32+
logErrorSpy = sinon.spy(logger.create('karma-server'), 'error')
3033

3134
fileListOnResolve = fileListOnReject = null
3235

@@ -213,10 +216,12 @@ describe('server', () => {
213216
expect(mockWebServer.listen).not.to.have.been.called
214217
expect(server._injector.invoke).not.to.have.been.calledWith(mockLauncher.launch, mockLauncher)
215218

216-
fileListOnReject()
219+
const fileListRefreshError = new Error('file-list refresh error')
220+
fileListOnReject(fileListRefreshError)
217221
expect(mockWebServer.listen).to.have.been.calledWith(mockBoundServer, sinon.match.func)
218222
expect(webServerOnError).not.to.be.null
219223
expect(server._injector.invoke).to.have.been.calledWith(mockLauncher.launch, mockLauncher)
224+
expect(logErrorSpy).to.have.been.calledWith('Error during file loading or preprocessing\n' + fileListRefreshError.stack)
220225
})
221226

222227
it('should launch browsers after the web server has started', async () => {

0 commit comments

Comments
 (0)
Please sign in to comment.