deno.land / x / rambda@v9.1.1 / source / partial.spec.js

partial.spec.js
نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import { partial } from './partial.js'import { type } from './type.js'
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')).toStrictEqual(['Hello', 'Ms.', 'foo', 'bar']) expect(sayHelloRamda('foo', 'bar')).toStrictEqual(['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 )).toStrictEqual(['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')).toStrictEqual(['Hello', 'Ms.', 'Jane', 'Jones'])})
rambda

Version Info

Tagged at
2 months ago