eltro/test/failure.test.mjs
Jonatan Nilsson 3bd8d4ba51 Make eltro slightly more robust
Make the printError slightly more robust as well as well as make it print better when obscure errors occur when programmers fiddle with the internal mechanics of node, for example the Error.prepareStack among other things.
2021-06-02 21:28:51 +00:00

51 lines
1.8 KiB
JavaScript

import e from '../lib/eltro.mjs'
import assert from '../lib/assert.mjs'
function CreateT() {
const t = new e.Eltro()
t.reporter = ''
return t
}
e.test('Eltro should support any value in promise fail', async function() {
const t = CreateT()
t.begin()
t.describe('', function() {
t.test('a', function() { return new Promise(function(res, rej) { rej() }) })
t.test('b', function() { return new Promise(function(res, rej) { rej(null) }) })
t.test('c', function() { return new Promise(function(res, rej) { rej(undefined) }) })
t.test('d', function() { return new Promise(function(res, rej) { rej(124523) }) })
t.test('e', function() { return new Promise(function(res, rej) { rej('testety') }) })
})
await t.run()
assert.strictEqual(t.failedTests.length, 5)
for (let x = 0; x < t.failedTests.length; x++) {
assert.strictEqual(typeof(t.failedTests[x].error), 'object')
assert.ok(t.failedTests[x].error.message)
assert.ok(t.failedTests[x].error.stack)
}
})
e.test('Eltro should support any value in throws', async function() {
const t = CreateT()
t.begin()
t.describe('', function() {
t.test('a', function() { throw null })
t.test('b', function() { throw {} })
t.test('c', function() { throw { message: 'test' } })
t.test('d', function() { throw 1234 })
t.test('e', async function() { throw null })
t.test('f', async function() { throw {} })
t.test('g', async function() { throw { message: 'test' } })
t.test('h', async function() { throw 1234 })
})
await t.run()
assert.strictEqual(t.failedTests.length, 8)
for (let x = 0; x < t.failedTests.length; x++) {
assert.strictEqual(typeof(t.failedTests[x].error), 'object')
assert.ok(t.failedTests[x].error.message)
assert.ok(t.failedTests[x].error.stack)
}
})