summaryrefslogtreecommitdiff
path: root/mocha_test/consoleFunctions.js
diff options
context:
space:
mode:
Diffstat (limited to 'mocha_test/consoleFunctions.js')
-rw-r--r--mocha_test/consoleFunctions.js71
1 files changed, 71 insertions, 0 deletions
diff --git a/mocha_test/consoleFunctions.js b/mocha_test/consoleFunctions.js
new file mode 100644
index 0000000..616ac1d
--- /dev/null
+++ b/mocha_test/consoleFunctions.js
@@ -0,0 +1,71 @@
+var async = require('../lib');
+var expect = require('chai').expect;
+var assert = require('assert');
+
+describe('console functions', function() {
+
+ var names = [
+ 'log',
+ 'dir',
+ /* 'info'
+ 'warn'
+ 'error' */
+ ];
+
+ // generates tests for console functions such as async.log
+ names.forEach(function(name) {
+ if (typeof console !== 'undefined') {
+ it(name, function(done) {
+ var fn = function(arg1, callback){
+ expect(arg1).to.equal('one');
+ setTimeout(function(){callback(null, 'test');}, 0);
+ };
+ var fn_err = function(arg1, callback){
+ expect(arg1).to.equal('one');
+ setTimeout(function(){callback('error');}, 0);
+ };
+ var _console_fn = console[name];
+ var _error = console.error;
+ console[name] = function(val){
+ expect(val).to.equal('test');
+ expect(arguments.length).to.equal(1);
+ console.error = function(val){
+ expect(val).to.equal('error');
+ console[name] = _console_fn;
+ console.error = _error;
+ done();
+ };
+ async[name](fn_err, 'one');
+ };
+ async[name](fn, 'one');
+ });
+
+ it(name + ' with multiple result params', function(done) {
+ var fn = function(callback){callback(null,'one','two','three');};
+ var _console_fn = console[name];
+ var called_with = [];
+ console[name] = function(x){
+ called_with.push(x);
+ };
+ async[name](fn);
+ expect(called_with).to.eql(['one','two','three']);
+ console[name] = _console_fn;
+ done();
+ });
+ }
+
+ // browser-only test
+ if (typeof window !== 'undefined') {
+ it(name + ' without console.' + name, function(done) {
+ var _console = window.console;
+ window.console = undefined;
+ var fn = function(callback){callback(null, 'val');};
+ var fn_err = function(callback){callback('error');};
+ async[name](fn);
+ async[name](fn_err);
+ window.console = _console;
+ done();
+ });
+ }
+ });
+});