Skip to main content
Module

x/rambda/source/partial.spec.js

Faster and smaller alternative to Ramda
Go to Latest
File
import {partial} from './partial'import {type} from './type'
const greet = (salutation, title, firstName, lastName) => salutation + ', ' + title + ' ' + firstName + ' ' + lastName + '!'
test('happy', () => { const canPassAnyNumberOfArguments = partial(greet, 'Hello', 'Ms.') const fn = canPassAnyNumberOfArguments('foo') const sayHello = partial(greet, ['Hello']) const sayHelloRamda = partial(sayHello, ['Ms.'])
expect(type(fn)).toBe('Function')
expect(fn('bar')).toBe('Hello, Ms. foo bar!') expect(sayHelloRamda('foo', 'bar')).toBe('Hello, Ms. foo bar!')})
test('extra arguments are ignored', () => { const canPassAnyNumberOfArguments = partial(greet, 'Hello', 'Ms.') const fn = canPassAnyNumberOfArguments('foo')
expect(type(fn)).toBe('Function')
expect(fn('bar', 1, 2)).toBe('Hello, Ms. foo bar!')})
test('when array is input', () => { const fooFn = (a, b, c, d) => ({ a, b, c, d, }) const barFn = partial(fooFn, [1, 2], [])
expect(barFn(1, 2)).toEqual({ a: [1, 2], b: [], c: 1, d: 2, })})
test('ramda spec', () => { const sayHello = partial(greet, 'Hello') const sayHelloToMs = partial(sayHello, 'Ms.')
expect(sayHelloToMs('Jane', 'Jones')).toBe('Hello, Ms. Jane Jones!')})