From 88c6744562d8b6346f3117b11eb8718708ead18f Mon Sep 17 00:00:00 2001 From: Muthu Kumar Date: Fri, 14 Sep 2018 09:02:50 +0530 Subject: [PATCH] [sample] Added updated test --- sample/sample7.test.js | 102 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 sample/sample7.test.js diff --git a/sample/sample7.test.js b/sample/sample7.test.js new file mode 100644 index 0000000..da4d5ff --- /dev/null +++ b/sample/sample7.test.js @@ -0,0 +1,102 @@ +/** + * This file contains random tests + * used during development + */ + +const Gunner = require('../index.js'); +const expect = Gunner.expect; +const expectMany = Gunner.expectMany; +const gunner = new Gunner({ name: 'sample tests' }); +const a = 1; + +gunner.before(Gunner.Start, () => console.log('Started tests!')); +gunner.before(Gunner.End, () => console.log('Ended tests!')); +let runCount = 1; +gunner.before('*', () => console.log(`Running test ${runCount++}`)); + +gunner.test('should automatically pass', () => expect().done()); +gunner.test(`should be equal`, () => expect(1).equal(1)); +gunner.test(`objects are deep equal`, () => expect({ a: 1 }).deepEqual({ a: 1 })); +gunner.test('expression should be true', () => expect(a === 1).isTrue()); + +gunner.test('should be a Promise (resolved)', () => + expect(Promise.resolve()).isPromise()); + +gunner.test('should be a Promise (rejected)', () => + expect(Promise.reject()).isPromise()); + +gunner.test('wait and resolve', () => { + return new Promise(r => { + setTimeout( + () => r('ok'), + 50 + ); + }); +}); + +gunner.test('should resolve to 5', () => + expect(Promise.resolve(5)).resolvesTo(5)); + +gunner.before( + 'file must have hello as content', + () => console.log('>> starting test! file must have hello as content'), + 'helloContentBefore', +); + +gunner.after( + 'file must have hello as content', + () => console.log('>> finished test! file must have hello as content'), + 'helloContentAfter', +); + +gunner.test('file must have hello as content', async () => { + const { readFile } = require('fs').promises; + const file = await readFile(__dirname + '/hello.txt', { encoding: 'utf8' }); + return [ + expect(file).equal('hello'), + expect(file.length).equal(5), + ]; +}); + +gunner.test('(should fail) Should automatically fail', () => + expect().fail()); + +gunner.test('(should fail) Value is not a Promise', () => + expect(5).isPromise()); + +gunner.test('(should fail) Error is not a Promise', () => + expect(flamethrower()).isPromise()); + +gunner.test(`(should fail) objects aren't deeply equal`, () => expect({a : 1}).deepEqual({ a: 2 })); + +gunner.test('(should fail) promise must reject', () => + expect(Promise.reject(new Error('Promise Rejected'))).equal('no rejection')); + +gunner.test('(should fail) multiple expect', () => { + + const a = { }; + a.b = 1; + a.c = 2; + + return expectMany([ + expect(a).hasProp('b'), + expect(a).hasPair('c', 3), + ]); + +}); + +const flamethrower = () => { + throw new Error('This burns!'); +}; + +gunner.test('(should fail) should catch error', () => { + return expect(flamethrower, []).equal(5); +}); + +gunner.test('(should fail) should not resolve to 5', () => + expect(Promise.resolve()).resolvesTo(5)); + +const trace = process.argv.slice(2).indexOf('--trace') !== -1; +const log = process.argv.slice(2).indexOf('--log') !== -1; + +gunner.run({ trace, log }).then(console.log);