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