Version 1
[yaffs-website] / node_modules / kew / test / spread.js
diff --git a/node_modules/kew/test/spread.js b/node_modules/kew/test/spread.js
new file mode 100644 (file)
index 0000000..c62269a
--- /dev/null
@@ -0,0 +1,59 @@
+var Q = require('../kew')
+
+exports.testSpreadStatic = function (test) {
+  Q.spread([Q.resolve('a'), 'b'], function (a, b) {
+    test.equal('a', a)
+    test.equal('b', b)
+    test.done()
+  })
+}
+
+exports.testSpreadMethod = function (test) {
+  Q.resolve(true)
+      .then(function () {
+        return ['a', 'b']
+      })
+      .spread(function (a, b) {
+        test.equal('a', a)
+        test.equal('b', b)
+        test.done()
+      })
+}
+
+exports.testSpreadBoundMethod = function (test) {
+  Q.resolve(true)
+      .then(function () {
+        return [Q.resolve('a'), 'b']
+      })
+      .spreadBound(function (c, a, b) {
+        test.equal('scope', this.scope)
+        test.equal('c', c)
+        test.equal('a', a)
+        test.equal('b', b)
+        test.done()
+      }, {scope: 'scope'}, 'c')
+}
+
+exports.testAllSynchronization1 = function (test) {
+  var order = []
+  Q.resolve(true)
+      .then(function () {
+        var promiseA = Q.fcall(function () {
+          order.push('a')
+        })
+        var promiseB = Q.fcall(function () {
+          order.push('b')
+        })
+
+        test.deepEqual([], order)
+
+        var promiseAB = Q.all([promiseA, promiseB])
+        test.deepEqual([], order)
+
+        return [promiseA, promiseB]
+      })
+      .then(function (results) {
+        test.deepEqual(['a', 'b'], order)
+        test.done()
+      })
+}