]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/test/index.coffee
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / node_modules / fs-write-stream-atomic / node_modules / iferr / test / index.coffee
diff --git a/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/test/index.coffee b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/test/index.coffee
new file mode 100644 (file)
index 0000000..be0bc56
--- /dev/null
@@ -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