53 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			53 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								let _ = require('lodash');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function createIsAssert(tapTest, isThing) {
							 | 
						||
| 
								 | 
							
								  const { assert } = tapTest;
							 | 
						||
| 
								 | 
							
								  return function() {
							 | 
						||
| 
								 | 
							
								    const args = [...arguments];
							 | 
						||
| 
								 | 
							
								    args[0] = isThing(args[0]);
							 | 
						||
| 
								 | 
							
								    assert.apply(tapTest, args);
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function addAssertsToTapTest(tapTest) {
							 | 
						||
| 
								 | 
							
								  const assert = tapTest.assert;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  assert.isArray = createIsAssert(tapTest, _.isArray);
							 | 
						||
| 
								 | 
							
								  assert.isBoolean = createIsAssert(tapTest, _.isBoolean);
							 | 
						||
| 
								 | 
							
								  assert.isString = createIsAssert(tapTest, _.isString);
							 | 
						||
| 
								 | 
							
								  assert.isNumber = createIsAssert(tapTest, _.isNumber);
							 | 
						||
| 
								 | 
							
								  assert.isUndefined = createIsAssert(tapTest, _.isUndefined);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  assert.deepEqual = tapTest.deepEqual;
							 | 
						||
| 
								 | 
							
								  assert.equal = tapTest.equal;
							 | 
						||
| 
								 | 
							
								  assert.strictEqual = tapTest.equal;
							 | 
						||
| 
								 | 
							
								  assert.sameMembers = function sameMembers() {
							 | 
						||
| 
								 | 
							
								    const [ first, second, ...args] = arguments;
							 | 
						||
| 
								 | 
							
								    assert.apply(
							 | 
						||
| 
								 | 
							
								      tapTest,
							 | 
						||
| 
								 | 
							
								      [
							 | 
						||
| 
								 | 
							
								        _.difference(first, second).length === 0 &&
							 | 
						||
| 
								 | 
							
								        _.difference(second, first).length === 0
							 | 
						||
| 
								 | 
							
								      ].concat(args)
							 | 
						||
| 
								 | 
							
								    );
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								  assert.includeMembers = function includeMembers() {
							 | 
						||
| 
								 | 
							
								    const [ first, second, ...args] = arguments;
							 | 
						||
| 
								 | 
							
								    assert.apply(tapTest,
							 | 
						||
| 
								 | 
							
								      [
							 | 
						||
| 
								 | 
							
								        _.difference(second, first).length === 0
							 | 
						||
| 
								 | 
							
								      ].concat(args));
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								  assert.match = function match() {
							 | 
						||
| 
								 | 
							
								    const [value, regex, ...args] = arguments;
							 | 
						||
| 
								 | 
							
								    assert.apply(tapTest,
							 | 
						||
| 
								 | 
							
								      [
							 | 
						||
| 
								 | 
							
								        regex.test(value)
							 | 
						||
| 
								 | 
							
								      ].concat(args));
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return assert;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = addAssertsToTapTest;
							 |