forked from ramda/ramda
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathalways.js
35 lines (30 loc) · 977 Bytes
/
always.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
var R = require('../source/index.js');
var eq = require('./shared/eq.js');
var fc = require('fast-check');
describe('always', function() {
it('returns a function that returns the object initially supplied', function() {
var theMeaning = R.always(42);
eq(theMeaning(), 42);
eq(theMeaning(10), 42);
eq(theMeaning(false), 42);
});
it('works with various types', function() {
eq(R.always(false)(), false);
eq(R.always('abc')(), 'abc');
eq(R.always({a: 1, b: 2})(), {a: 1, b: 2});
var obj = {a: 1, b: 2};
eq(R.always(obj)(), obj);
var now = new Date(1776, 6, 4);
eq(R.always(now)(), new Date(1776, 6, 4));
eq(R.always(undefined)(), undefined);
});
});
describe('always properties', function() {
it('returns initial argument', function() {
fc.assert(fc.property(fc.anything(), fc.anything(), function(a, b) {
fc.pre(a === a);
var f = R.always(a);
return f() === a && f(b) === a;
}));
});
});