Advertisement
Guest User

Untitled

a guest
Oct 13th, 2013
261
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // failWhen() is the function being tested. U(typeof unknownVariable) returns true, which
  2. // causes failWhen() to pass an error object to SystemLogger. I'm passing SystemLogger.Use()
  3. // a custom error handler function, within which we can use expect() to example the error
  4. // object which failWhen sent using SystemLogger.EpicFail().
  5.  
  6.   describe('failWhen(), a fail-fast method',function(){
  7.     it('Properly detect, handle, and throw reference errors',function(){
  8.  
  9.       SystemLogger.Use(function(){
  10.         throw new ReferenceError()
  11.       })
  12.  
  13.       expect(function(){
  14.         failWhen( U(typeof whatever) )
  15.       }).to.throwError(function(e){
  16.         expect( e ).to.be.a(ReferenceError)
  17.         expect( e ).to.not.be.a(SyntaxError)
  18.       })
  19.  
  20.  
  21.       expect(function(){
  22.         failWhen( U(typeof undefined) )
  23.       }).to.throwError()
  24.  
  25.  
  26.       expect(function(){
  27.         failWhen( U('undefined') )
  28.       }).to.throwError()
  29.     })
  30.  
  31.  
  32.     it('Invokes the predefined error handler',function(done){
  33.       var msg = 'Send this out, expect() to get it back.'
  34.  
  35.       function customErrorHandler (err) {
  36.         console.log('\nLevel: '+err.lvl, '\n'+err.stack)
  37.         expect( err ).to.be.a( ReferenceError )
  38.         expect( err.message ).to.be( msg )
  39.  
  40.         done()
  41.       }
  42.  
  43.       SystemLogger.Use(customErrorHandler)
  44.       expect( failWhen( U(typeof whatever), msg) ).to.be( false )
  45.     })
  46.  
  47.     var msg = 'Send this out, expect() to get it back.'
  48.  
  49.  
  50.     /**
  51.      *
  52.      */
  53.     it('Throws whatever error object it is given',function(done){
  54.       SystemLogger.Use(function (err) {
  55.         expect( err ).to.be.a( ReferenceError )
  56.         expect( err.lvl ).to.be( 1 )
  57.         go2()
  58.       })
  59.       expect( failWhen( U(typeof whatever), msg, 1, ReferenceError) ).to.be( false )
  60.  
  61.       function go2(){
  62.         SystemLogger.Use(function (err) {
  63.           expect( err ).to.be.a( SyntaxError )
  64.           expect( err.lvl ).to.be( 1 )
  65.           go3()
  66.         })
  67.         expect( failWhen( U(typeof whatever), msg, 1, SyntaxError) ).to.be( false )
  68.       }
  69.  
  70.       function go3(){
  71.         SystemLogger.Use(function (err) {
  72.           expect( err ).to.be.a( EvalError )
  73.           expect( err.lvl ).to.be( 1 )
  74.           go4()
  75.         })
  76.         expect( failWhen( U(typeof whatever), msg, 1, EvalError) ).to.be( false )
  77.       }
  78.       function go4(){
  79.         SystemLogger.Use(function (err) {
  80.           expect( err ).to.be.a( RangeError )
  81.           expect( err.lvl ).to.be( 1 )
  82.           go5()
  83.         })
  84.         expect( failWhen( U(typeof whatever), msg, 1, RangeError) ).to.be( false )
  85.       }
  86.       function go5(){
  87.         SystemLogger.Use(function (err) {
  88.           expect( err ).to.be.a( TypeError )
  89.           expect( err.lvl ).to.be( 1 )
  90.           go6()
  91.         })
  92.         expect( failWhen( U(typeof whatever), msg, 1, TypeError) ).to.be( false )
  93.       }
  94.       function go6(){
  95.         SystemLogger.Use(function (err) {
  96.           expect( err ).to.be.a( URIError )
  97.           expect( err.lvl ).to.be( 1 )
  98.           done()
  99.         })
  100.         expect( failWhen( U(typeof whatever), msg, 1, URIError) ).to.be( false )
  101.       }
  102.     })
  103.   })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement