forked from angus-c/just
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
55 lines (45 loc) · 979 Bytes
/
Copy pathindex.js
File metadata and controls
55 lines (45 loc) · 979 Bytes
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
var test = require('../util/test')(__filename);
var once = require('../../packages/function-once');
test('requires a function as first argument', function(t) {
t.plan(3);
t.throws(function() {
once(undefined);
});
t.throws(function() {
once({});
});
t.equal(typeof once(function() {}), 'function');
});
test('runs only once', function(t) {
t.plan(2);
var callCounter = 0;
var fn = once(function() {
callCounter++;
});
fn();
t.equal(callCounter, 1);
fn();
t.equal(callCounter, 1);
});
test('forwards arguments', function(t) {
t.plan(2);
var callCounter = 0;
var fn = once(function(delta) {
callCounter += delta;
});
fn(2);
t.equal(callCounter, 2);
fn(3);
t.equal(callCounter, 2);
});
test('forwards context', function(t) {
t.plan(2);
var callCounter = 0;
var fn = once(function(delta) {
callCounter += this;
});
fn.call(2);
t.equal(callCounter, 2);
fn.call(3);
t.equal(callCounter, 2);
});