mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			64 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| const test = require('ava');
 | |
| const moment = require('moment');
 | |
| const lolex = require('lolex');
 | |
| const TTLList = require('./ttl-list');
 | |
| 
 | |
| test.cb('should emit expire', t => {
 | |
|     const clock = lolex.install();
 | |
|     const list = new TTLList({
 | |
|         interval: 20,
 | |
|         expireAmount: 10,
 | |
|         expireType: 'milliseconds',
 | |
|     });
 | |
| 
 | |
|     list.on('expire', entry => {
 | |
|         list.destroy();
 | |
|         t.true(entry.n === 1);
 | |
|         t.end();
 | |
|     });
 | |
| 
 | |
|     list.add({ n: 1 });
 | |
|     clock.tick(21);
 | |
| });
 | |
| 
 | |
| test.cb('should slice off list', t => {
 | |
|     const clock = lolex.install();
 | |
| 
 | |
|     const list = new TTLList({
 | |
|         interval: 10,
 | |
|         expireAmount: 10,
 | |
|         expireType: 'milliseconds',
 | |
|     });
 | |
| 
 | |
|     list.add({ n: '1' }, moment().add(1, 'milliseconds'));
 | |
|     list.add({ n: '2' }, moment().add(50, 'milliseconds'));
 | |
|     list.add({ n: '3' }, moment().add(200, 'milliseconds'));
 | |
|     list.add({ n: '4' }, moment().add(300, 'milliseconds'));
 | |
| 
 | |
|     const expired = [];
 | |
| 
 | |
|     list.on('expire', entry => {
 | |
|         // console.timeEnd(entry.n);
 | |
|         expired.push(entry);
 | |
|     });
 | |
| 
 | |
|     clock.tick(21);
 | |
|     t.true(expired.length === 1);
 | |
| 
 | |
|     clock.tick(51);
 | |
|     t.true(expired.length === 2);
 | |
| 
 | |
|     clock.tick(201);
 | |
|     t.true(expired.length === 3);
 | |
| 
 | |
|     clock.tick(301);
 | |
|     t.true(expired.length === 4);
 | |
| 
 | |
|     list.destroy();
 | |
|     clock.uninstall();
 | |
| 
 | |
|     t.end();
 | |
| });
 |