You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.0 KiB
65 lines
2.0 KiB
3 years ago
|
var assert = require('assert');
|
||
|
|
||
|
var deprecate = require(__dirname + '/../');
|
||
|
|
||
|
var output = {
|
||
|
_text: [],
|
||
|
_clear: function() {
|
||
|
this._text = [];
|
||
|
},
|
||
|
write: function(message) {
|
||
|
this._text.push(message);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
describe('deprecate', function() {
|
||
|
beforeEach(function() {
|
||
|
output._clear();
|
||
|
deprecate.stream = output;
|
||
|
});
|
||
|
|
||
|
it('does nothing if silence is turned on', function() {
|
||
|
deprecate.silence = true;
|
||
|
deprecate('this method is deprecated and will be removed');
|
||
|
assert.equal(output._text.length, 0);
|
||
|
});
|
||
|
|
||
|
it('prints to output if silence is turned off', function() {
|
||
|
deprecate.silence = false;
|
||
|
deprecate('line1', 'line2', 'line3');
|
||
|
var text = output._text.join(' ');
|
||
|
assert(text.indexOf('WARNING') > 0, 'should have contained the string "warning"');
|
||
|
assert(text.indexOf('line1') > 0, 'should have contained the string "line1"');
|
||
|
assert(text.indexOf('line2') > 0, 'should have contained the string "line2"');
|
||
|
assert(text.indexOf('line2') > text.indexOf('line1'), 'line 2 should come after line 1');
|
||
|
assert(text.indexOf(deprecate.color) > 0, 'should have color');
|
||
|
});
|
||
|
|
||
|
|
||
|
it('does not print color if color turned off', function() {
|
||
|
deprecate.color = false;
|
||
|
deprecate('test');
|
||
|
var text = output._text.join(' ');
|
||
|
assert.equal(text.indexOf(deprecate.color), -1, 'should not have color string');
|
||
|
assert.equal(text.indexOf('\x1b[0m'), -1, 'should not have reset color char ');
|
||
|
});
|
||
|
|
||
|
it('only prints once for each function deprecated', function() {
|
||
|
var someDeprecatedMethod = function() {
|
||
|
deprecate('first');
|
||
|
}
|
||
|
var someOtherDeprecatedMethod = function() {
|
||
|
deprecate('second');
|
||
|
}
|
||
|
assert.equal(output._text.length, 0);
|
||
|
someDeprecatedMethod();
|
||
|
var length = output._text.length;
|
||
|
assert(length > 0, "should have printed deprecation warning");
|
||
|
someDeprecatedMethod();
|
||
|
assert.equal(length, output._text.length, "should not have warned again");
|
||
|
someOtherDeprecatedMethod();
|
||
|
assert(output._text.length > length);
|
||
|
});
|
||
|
|
||
|
});
|