diff --git a/src/compose.js b/src/compose.js index caa38d5750..be6cc34ef1 100644 --- a/src/compose.js +++ b/src/compose.js @@ -10,8 +10,6 @@ */ export default function compose(...funcs) { - funcs = funcs.filter(func => typeof func === 'function') - if (funcs.length === 0) { return arg => arg } diff --git a/test/compose.spec.js b/test/compose.spec.js index bcb6d41738..67974bbd23 100644 --- a/test/compose.spec.js +++ b/test/compose.spec.js @@ -21,15 +21,15 @@ describe('Utils', () => { expect(compose(c, a, b)(final)('')).toBe('cab') }) - it('composes only functions', () => { + it('throws at runtime if argument is not a function', () => { const square = x => x * x const add = (x, y) => x + y - - expect(compose(square, add, false)(1, 2)).toBe(9) - expect(compose(square, add, undefined)(1, 2)).toBe(9) - expect(compose(square, add, true)(1, 2)).toBe(9) - expect(compose(square, add, NaN)(1, 2)).toBe(9) - expect(compose(square, add, '42')(1, 2)).toBe(9) + + expect(() => compose(square, add, false)(1, 2)).toThrow() + expect(() => compose(square, add, undefined)(1, 2)).toThrow() + expect(() => compose(square, add, true)(1, 2)).toThrow() + expect(() => compose(square, add, NaN)(1, 2)).toThrow() + expect(() => compose(square, add, '42')(1, 2)).toThrow() }) it('can be seeded with multiple arguments', () => { @@ -41,7 +41,6 @@ describe('Utils', () => { it('returns the first given argument if given no functions', () => { expect(compose()(1, 2)).toBe(1) expect(compose()(3)).toBe(3) - expect(compose(false,4,'test')(3)).toBe(3) expect(compose()()).toBe(undefined) })