summaryrefslogtreecommitdiff
path: root/node_modules/utile/test/function-args-test.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/utile/test/function-args-test.js')
-rw-r--r--node_modules/utile/test/function-args-test.js104
1 files changed, 104 insertions, 0 deletions
diff --git a/node_modules/utile/test/function-args-test.js b/node_modules/utile/test/function-args-test.js
new file mode 100644
index 0000000..e78c4b2
--- /dev/null
+++ b/node_modules/utile/test/function-args-test.js
@@ -0,0 +1,104 @@
+/*
+ * function-args-test.js: Tests for `args` method
+ *
+ * (C) 2011, Charlie Robbins & the Contributors
+ * MIT LICENSE
+ *
+ */
+
+var assert = require('assert'),
+ path = require('path'),
+ vows = require('vows'),
+ macros = require('./helpers/macros'),
+ utile = require('../');
+
+vows.describe('utile/args').addBatch({
+ 'When using utile': {
+ 'the `args` function': {
+ topic: utile,
+ 'should be a function': function (_utile) {
+ assert.isFunction(_utile.args);
+ },
+ }
+ },
+ 'utile.rargs()': {
+ 'with no arguments': {
+ topic: utile.rargs(),
+ 'should return an empty object': function (result) {
+ assert.isArray(result);
+ assert.lengthOf(result, 0);
+ }
+ },
+ 'with simple arguments': {
+ topic: function () {
+ return (function () {
+ return utile.rargs(arguments);
+ })('a', 'b', 'c');
+ },
+ 'should return an array with three items': function (result) {
+ assert.isArray(result);
+ assert.equal(3, result.length);
+ assert.equal(result[0], 'a');
+ assert.equal(result[1], 'b');
+ assert.equal(result[2], 'c');
+ }
+ },
+ 'with a simple slice': {
+ topic: function () {
+ return (function () {
+ return utile.rargs(arguments, 1);
+ })('a', 'b', 'c');
+ },
+ 'should return an array with three items': function (result) {
+ assert.isArray(result);
+ assert.equal(2, result.length);
+ assert.equal(result[0], 'b');
+ assert.equal(result[1], 'c');
+ }
+ }
+ },
+ 'utile.args()': {
+ 'with no arguments': {
+ topic: utile.args(),
+ 'should return an empty Array': function (result) {
+ assert.isUndefined(result.callback);
+ assert.isArray(result);
+ assert.lengthOf(result, 0);
+ }
+ },
+ 'with simple arguments': {
+ topic: function () {
+ return (function () {
+ return utile.args(arguments);
+ })('a', 'b', 'c', function () {
+ return 'ok';
+ });
+ },
+ 'should return an array with three items': function (result) {
+ assert.isArray(result);
+ assert.equal(3, result.length);
+ assert.equal(result[0], 'a');
+ assert.equal(result[1], 'b');
+ assert.equal(result[2], 'c');
+
+ //
+ // Ensure that the Array returned
+ // by `utile.args()` enumerates correctly
+ //
+ var length = 0;
+ result.forEach(function (item) {
+ length++;
+ });
+
+ assert.equal(length, 3);
+ },
+ 'should return lookup helpers': function (result) {
+ assert.isArray(result);
+ assert.equal(result.first, 'a');
+ assert.equal(result.last, 'c');
+ assert.isFunction(result.callback);
+ assert.isFunction(result.cb);
+ }
+ }
+ }
+}).export(module);