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