1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
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();
});
}
});
});
|