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);
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								});
							 |