mirror of
https://github.com/harish2704/simple-mocha.git
synced 2026-09-10 06:21:08 +00:00
* Refactoring utils
* second level block parsing tests
This commit is contained in:
+16
-56
@@ -1,64 +1,16 @@
|
||||
/* globals describe, it, before, after, beforeEach, afterEach */
|
||||
|
||||
var messageLog = [];
|
||||
var pr = function( msg ){
|
||||
messageLog.push( msg );
|
||||
// console.log( '--', msg );
|
||||
}
|
||||
|
||||
function asyncFn( args ){
|
||||
return function( cb ){
|
||||
setTimeout( function(){
|
||||
pr( args.msg );
|
||||
if( args.error ){
|
||||
if( args.isThrow ){
|
||||
throw args.error;
|
||||
} else {
|
||||
return cb( args.error );
|
||||
}
|
||||
} else {
|
||||
return cb( );
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
var utils = require( './test/data/utils' );
|
||||
var resolvingFn = utils.resolvingFn;
|
||||
|
||||
|
||||
var beforeFn = asyncFn({
|
||||
msg: 'Before_block',
|
||||
delay: 100,
|
||||
error: null,
|
||||
});
|
||||
|
||||
var it1 = asyncFn({
|
||||
msg: 'It_1',
|
||||
delay: 10,
|
||||
error: null,
|
||||
});
|
||||
|
||||
var it2 = asyncFn({
|
||||
msg: 'It_2',
|
||||
delay: 500,
|
||||
error: null,
|
||||
});
|
||||
|
||||
var afterFn = asyncFn({
|
||||
msg: 'After_block',
|
||||
delay: 60,
|
||||
error: null,
|
||||
});
|
||||
|
||||
var beforeEachFn = asyncFn({
|
||||
msg: 'BeforeEach_block',
|
||||
delay: 5,
|
||||
error: null
|
||||
});
|
||||
|
||||
var afterEachFn = asyncFn({
|
||||
msg: 'AfterEach_block',
|
||||
delay: 5,
|
||||
error: null
|
||||
});
|
||||
var beforeFn = resolvingFn( 'Before_block' );
|
||||
var it1 = resolvingFn( 'It_1' );
|
||||
var it2 = resolvingFn( 'It_2' );
|
||||
var afterFn = resolvingFn( 'After_block' );
|
||||
var beforeEachFn = resolvingFn( 'BeforeEach_block' );
|
||||
var afterEachFn = resolvingFn( 'AfterEach_block' );
|
||||
|
||||
|
||||
describe( 'describe', function(){
|
||||
@@ -70,5 +22,13 @@ describe( 'describe', function(){
|
||||
it( 'it2', it2 );
|
||||
after( afterFn );
|
||||
|
||||
describe( 'child block', function(){
|
||||
before( beforeFn );
|
||||
beforeEach( beforeEachFn );
|
||||
afterEach( afterEachFn );
|
||||
it( 'it1', it1 );
|
||||
it( 'it2', it2 );
|
||||
after( afterFn );
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
|
||||
var messageLog = [];
|
||||
|
||||
var pr = function( msg ){
|
||||
messageLog.push( msg );
|
||||
// console.log( '--', msg );
|
||||
}
|
||||
|
||||
|
||||
function asyncFn( args ){
|
||||
return function( cb ){
|
||||
setTimeout( function(){
|
||||
pr( args.msg );
|
||||
if( args.error ){
|
||||
if( args.isThrow ){
|
||||
throw args.error;
|
||||
} else {
|
||||
return cb( args.error );
|
||||
}
|
||||
} else {
|
||||
return cb( );
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function rand(){
|
||||
return parseInt( Math.random()*1000 ) % 27;
|
||||
}
|
||||
|
||||
function resolvingFn( msg ){
|
||||
return asyncFn({
|
||||
msg: msg,
|
||||
delay: rand(),
|
||||
error: null,
|
||||
});
|
||||
}
|
||||
|
||||
function rejectingFn( msg ){
|
||||
return asyncFn({
|
||||
msg: msg,
|
||||
delay: rand(),
|
||||
error: new Error( 'Reject:' + msg ),
|
||||
});
|
||||
}
|
||||
|
||||
function throwingFn( msg ){
|
||||
return asyncFn({
|
||||
msg: msg,
|
||||
delay: rand(),
|
||||
error: new Error( 'Throw:' + msg ),
|
||||
isThrow: true,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
module.exports = {
|
||||
messageLog: messageLog,
|
||||
pr: pr,
|
||||
asyncFn: asyncFn,
|
||||
resolvingFn: resolvingFn,
|
||||
rejectingFn: rejectingFn,
|
||||
throwingFn: throwingFn,
|
||||
};
|
||||
Reference in New Issue
Block a user