Version 1
[yaffs-website] / node_modules / kew / test / later.js
diff --git a/node_modules/kew/test/later.js b/node_modules/kew/test/later.js
new file mode 100644 (file)
index 0000000..8206a07
--- /dev/null
@@ -0,0 +1,45 @@
+var Q = require('../kew')
+
+function synchronous (callback) {
+  callback()
+}
+
+var asynchronous = Q.getNextTickFunction()
+
+exports.testAsynchronousSynchronous = function (test) {
+  Q.setNextTickFunction(synchronous)
+
+  var number = 5
+
+  Q.resolve(true).then(function () {
+    number = 6
+  })
+  test.equals(number, 6, 'Q should resolve synchronously')
+
+  Q.setNextTickFunction(asynchronous)
+
+  Q.resolve(true).then(function () {
+    number = 7
+  })
+  test.equals(number, 6, 'Q should resolve asynchronously')
+  test.done()
+}
+
+exports.testSetImmediate = function (test) {
+  if (typeof setImmediate == 'undefined') {
+    test.done()
+    return
+  }
+
+  Q.setNextTickFunction(setImmediate)
+
+  var number = 5
+  Q.resolve(true).then(function () {
+    number = 6
+  })
+  test.equals(number, 5, 'Q should resolve asynchronously')
+  setImmediate(function () {
+    test.equals(number, 6, 'Q should schedule _successFn synchronously')
+    test.done()
+  })
+}