Skip to content

Commit 0961ffe

Browse files
committed
Add tests for clearing pending timeouts
1 parent c3bbc03 commit 0961ffe

File tree

3 files changed

+67
-1
lines changed

3 files changed

+67
-1
lines changed

lib/node_modules/@stdlib/fs/read-file-list/lib/clear_pending.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// MODULES //
44

55
var getKeys = require( 'object-keys' ).shim();
6+
var cancelTimeout = require( './clear_timeout.js' );
67

78

89
// MAIN //
@@ -18,7 +19,7 @@ function clearPending( pending ) {
1819
var i;
1920
keys = getKeys( pending );
2021
for ( i = 0; i < keys.length; i++ ) {
21-
clearTimeout( pending[ keys[i] ] );
22+
cancelTimeout( pending[ keys[i] ] );
2223
}
2324
} // end FUNCTION clearPending()
2425

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
'use strict';
2+
3+
// EXPORTS //
4+
5+
module.exports = clearTimeout;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
'use strict';
2+
3+
// MODULES //
4+
5+
var tape = require( 'tape' );
6+
var proxyquire = require( 'proxyquire' );
7+
var noop = require( '@stdlib/utils/noop' );
8+
var indexOf = require( '@stdlib/utils/index-of' );
9+
var clearPending = require( './../lib/clear_pending.js' );
10+
11+
12+
// TESTS //
13+
14+
tape( 'main export is a function', function test( t ) {
15+
t.ok( true, __filename );
16+
t.equal( typeof clearPending, 'function', 'main export is a function' );
17+
t.end();
18+
});
19+
20+
tape( 'the function cancels each timeout present in a provided hash', function test( t ) {
21+
var clearPending;
22+
var timeouts;
23+
var pending;
24+
var count;
25+
26+
clearPending = proxyquire( './../lib/clear_pending.js', {
27+
'./clear_timeout.js': mock
28+
});
29+
30+
timeouts = [
31+
setTimeout( noop, 1000 ),
32+
setTimeout( noop, 1000 ),
33+
setTimeout( noop, 1000 )
34+
];
35+
36+
pending = {
37+
'0': timeouts[ 0 ],
38+
'1': timeouts[ 1 ],
39+
'2': timeouts[ 2 ]
40+
};
41+
42+
count = 0;
43+
clearPending( pending );
44+
45+
t.equal( count, 3, 'invokes function expected number of times' );
46+
t.deepEqual( pending, {}, 'should cancel timeouts' );
47+
t.end();
48+
49+
function mock( id ) {
50+
var idx = indexOf( timeouts, id );
51+
if ( idx === -1 ) {
52+
t.fail( 'should provide a known id' );
53+
} else {
54+
t.pass( 'should provide a known id' );
55+
}
56+
clearTimeout( id );
57+
delete pending[ idx ];
58+
count += 1;
59+
}
60+
});

0 commit comments

Comments
 (0)