From 5a69c2af78c0e09c976bb9346d38a97ecdc423c2 Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 18 Jul 2020 19:14:21 +0300 Subject: [PATCH] Change assert.array implementation --- source/index.ts | 9 ++++++++- test/test.ts | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/source/index.ts b/source/index.ts index 01e36f0..4b12fcf 100644 --- a/source/index.ts +++ b/source/index.ts @@ -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: (value: unknown, assertion?: (element: unknown) => asserts element is T): asserts value is T[] => assertType(is.array(value, assertion), 'Array', value), + array: (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), diff --git a/test/test.ts b/test/test.ts index 03da7bf..44cd22a 100644 --- a/test/test.ts +++ b/test/test.ts @@ -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); }); });