Files
30-seconds-of-code/test/uncurry.test.js
Angelos Chalaris 39ff17ae2a Additional tests
2018-11-10 13:04:37 +02:00

25 lines
635 B
JavaScript

const expect = require('expect');
const {uncurry} = require('./_30s.js');
test('uncurry is a Function', () => {
expect(uncurry).toBeInstanceOf(Function);
});
const add = x => y => z => x + y + z;
const add1 = uncurry(add);
const add2 = uncurry(add, 2);
const add3 = uncurry(add, 3);
test('Works without a provided value for n', () => {
expect(add1(1)(2)(3)).toBe(6);
});
test('Works with n = 2', () => {
expect(add2(1, 2)(3)).toBe(6);
});
test('Works with n = 3', () => {
expect(add3(1, 2, 3)).toBe(6);
});
test('Throws RangeError if arguments are too few', () => {
expect(() => {
add2(2);
}).toThrow(RangeError);
});