Change assert.array implementation

This commit is contained in:
Alex 2020-07-18 19:14:21 +03:00
parent 67ab8ca570
commit 5a69c2af78
2 changed files with 10 additions and 3 deletions

View file

@ -564,7 +564,14 @@ export const assert: Assert = {
boolean: (value: unknown): asserts value is boolean => assertType(is.boolean(value), 'boolean', value),
symbol: (value: unknown): asserts value is symbol => assertType(is.symbol(value), 'symbol', value),
numericString: (value: unknown): asserts value is string => assertType(is.numericString(value), AssertionTypeDescription.numericString, value),
array: <T = unknown>(value: unknown, assertion?: (element: unknown) => asserts element is T): asserts value is T[] => assertType(is.array(value, assertion), 'Array', value),
array: <T = unknown>(value: unknown, assertion?: (element: unknown) => asserts element is T): asserts value is T[] => {
const assert: (condition: boolean, description: string, value: unknown) => asserts condition = assertType;
assert(is.array(value), 'Array', value);
if (assertion) {
value.forEach(assertion);
}
},
buffer: (value: unknown): asserts value is Buffer => assertType(is.buffer(value), 'Buffer', value),
nullOrUndefined: (value: unknown): asserts value is null | undefined => assertType(is.nullOrUndefined(value), AssertionTypeDescription.nullOrUndefined, value),
object: (value: unknown): asserts value is object => assertType(is.object(value), 'Object', value),

View file

@ -646,11 +646,11 @@ test('is.array', t => {
t.false(is.array([1, '2', 3], is.number));
t.notThrows(() => {
assert.array([1, 2], is.number);
assert.array([1, 2], assert.number);
});
t.throws(() => {
assert.array([1, '2'], is.number);
assert.array([1, '2'], assert.number);
});
});