Muthu Kumar
7 years ago
6 changed files with 81 additions and 46 deletions
@ -0,0 +1,6 @@ |
|||
const constants = { |
|||
pass: 'pass', |
|||
fail: 'fail', |
|||
}; |
|||
|
|||
module.exports = constants; |
@ -0,0 +1,3 @@ |
|||
const _assertPromise = (bool, assertion) => bool ? Promise.resolve() : Promise.reject(assertion); |
|||
|
|||
module.exports = _assertPromise; |
@ -0,0 +1,32 @@ |
|||
const isEq = require('@codefeathers/iseq'); |
|||
|
|||
const { liftPromise, stringify } = require('../../util/helpers'); |
|||
const _assertPromise = require('./assertPromise'); |
|||
|
|||
const expect = a => { |
|||
|
|||
return ({ |
|||
done : () => Promise.resolve(), |
|||
equal : (b) => |
|||
liftPromise( |
|||
x => _assertPromise( |
|||
x === b, |
|||
`${a} is not equal to ${b}`), |
|||
a), |
|||
deepEqual : b => |
|||
liftPromise( |
|||
x => _assertPromise( |
|||
isEq(x, b), |
|||
`${stringify(a)} is not deeply equal to ${stringify(b)}`, |
|||
a), |
|||
a), |
|||
isTrue : () => |
|||
liftPromise( |
|||
x => _assertPromise( |
|||
x === true, |
|||
`${a} is not true`), |
|||
a), |
|||
}); |
|||
}; |
|||
|
|||
module.exports = expect; |
@ -0,0 +1,11 @@ |
|||
'use strict'; |
|||
|
|||
const { pass, fail } = require('../constants'); |
|||
|
|||
const runTests = tests => Promise.all(tests.map(test => |
|||
test.test() |
|||
.then(() => ({ description: test.description, result: pass })) |
|||
.catch(e => ({ description: test.description, result: fail, error: e })) |
|||
)); |
|||
|
|||
module.exports = runTests; |
@ -1,18 +1,13 @@ |
|||
const Gunner = require('./gunner'); |
|||
const gunner = new Gunner(); |
|||
|
|||
gunner.test('should return okay', expect => expect(1).to.be(1)); |
|||
gunner.test('objects are equal', expect => expect({ a: 1 }).to.be.deepEqual({ a: 1 })); |
|||
gunner.test('test should break', expect => expect({a : 1}).to.be.deepEqual({ a: 2 })); |
|||
gunner.test('should automatically pass', expect => expect().done()); |
|||
gunner.test(`should be equal`, expect => expect(1).equal(1)); |
|||
gunner.test(`objects are deep equal`, expect => expect({ a: 1 }).deepEqual({ a: 1 })); |
|||
gunner.test(`objects aren't deeply equal`, expect => expect({a : 1}).deepEqual({ a: 2 })); |
|||
|
|||
const a = 1; |
|||
gunner.test('should be true', expect => expect(a === 1).to.be.true()); |
|||
gunner.test('expression should be true', expect => expect(a === 1).isTrue()); |
|||
gunner.test('promise must reject', expect => expect(Promise.reject(new Error('no'))).equal('rejection')); |
|||
|
|||
gunner.run().then(results => { |
|||
const success = results.filter(r => r.result === 'pass'); |
|||
|
|||
console.log(`\n${success.length} tests passed of ${results.length}\n`); |
|||
results.forEach(r => { |
|||
console.log(`${r.result === 'pass' ? '✅' : '❌'} :: ${r.description}${r.error ? `\n ${JSON.stringify(r.error)}` : ''}`); |
|||
}); |
|||
}); |
|||
gunner.run(); |
|||
|
Loading…
Reference in new issue