@goa/goa
Version:
The Goa Source Code For Compilation Into @Goa/Koa That Includes Modules, Tests, Types And Dependencies.
70 lines (50 loc) • 1.38 kB
JavaScript
import { throws } from 'assert'
import { equal, deepEqual } from '@zoroaster/assert'
import Koa from '../../../src'
import { ConsoleMock } from '../../context'
/** @type {Object<string, (c:ConsoleMock)>} */
const TS = {
context: [ConsoleMock],
'throws an error if a non-error is given'() {
const app = new Koa()
throws(() => {
app.onerror('foo')
}, TypeError, 'non-error thrown: foo')
},
'does nothing if status is 404'({ calls }) {
const app = new Koa()
const err = new Error()
err.status = 404
app.onerror(err)
deepEqual(calls, [])
},
'does nothing if .silent'({ calls }) {
const app = new Koa()
app.silent = true
const err = new Error()
app.onerror(err)
deepEqual(calls, [])
},
'logs the error to stderr'({ calls }) {
const app = new Koa()
app.env = 'dev'
const err = new Error()
err.stack = 'Foo'
app.onerror(err)
const stderr = calls.join('\n')
deepEqual(stderr, '\n Foo\n')
},
'uses err.toString() instead of err.stack'({ calls }) {
const app = new Koa()
app.env = 'dev'
const err = new Error('mock stack null')
err.stack = null
app.onerror(err)
const stderr = calls.join('\n')
equal(stderr, '\n Error: mock stack null\n')
},
}
export default TS
/**
* @typedef {import('../../context').TestSuite} TestSuite
*/