summaryrefslogtreecommitdiff
path: root/deps/node/deps/npm/node_modules/copy-concurrently/node_modules/iferr/test/index.coffee
diff options
context:
space:
mode:
Diffstat (limited to 'deps/node/deps/npm/node_modules/copy-concurrently/node_modules/iferr/test/index.coffee')
-rw-r--r--deps/node/deps/npm/node_modules/copy-concurrently/node_modules/iferr/test/index.coffee42
1 files changed, 42 insertions, 0 deletions
diff --git a/deps/node/deps/npm/node_modules/copy-concurrently/node_modules/iferr/test/index.coffee b/deps/node/deps/npm/node_modules/copy-concurrently/node_modules/iferr/test/index.coffee
new file mode 100644
index 00000000..be0bc56f
--- /dev/null
+++ b/deps/node/deps/npm/node_modules/copy-concurrently/node_modules/iferr/test/index.coffee
@@ -0,0 +1,42 @@
+{ iferr, tiferr, throwerr } = require '../index.coffee'
+{ equal: eq, throws } = require 'assert'
+
+invoke_fail = (cb) -> cb new Error 'callback error'
+invoke_succ = (cb) -> cb null
+throw_error = -> throw new Error 'thrown'
+
+describe 'iferr', ->
+ it 'calls the error callback on errors', (done) ->
+ invoke_fail iferr(
+ (err) ->
+ eq err.message, 'callback error'
+ do done
+ ->
+ done new Error 'shouldn\'t call the success callback'
+ )
+
+ it 'calls the success callback on success', (done) ->
+ invoke_succ iferr(
+ -> done new Error 'shouldn\'t call the error callback'
+ done
+ )
+
+describe 'tiferr', ->
+ it 'catches errors in the success callback', (done) ->
+ invoke_succ tiferr(
+ (err) ->
+ eq err.message, 'thrown'
+ do done
+ throw_error
+ )
+
+describe 'throwerr', ->
+ it 'throws errors passed to the callback', (done)->
+ try invoke_fail throwerr ->
+ done 'shouldn\'t call the success callback'
+ catch err
+ eq err.message, 'callback error'
+ do done
+
+ it 'delegates to the success callback otherwise', (done) ->
+ invoke_succ throwerr done