You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					81 lines
				
				1.4 KiB
			
		
		
			
		
	
	
					81 lines
				
				1.4 KiB
			| 
											3 years ago
										 | var tape = require('tape') | ||
|  | var pager = require('./') | ||
|  | 
 | ||
|  | tape('get page', function (t) { | ||
|  |   var pages = pager(1024) | ||
|  | 
 | ||
|  |   var page = pages.get(0) | ||
|  | 
 | ||
|  |   t.same(page.offset, 0) | ||
|  |   t.same(page.buffer, Buffer.alloc(1024)) | ||
|  |   t.end() | ||
|  | }) | ||
|  | 
 | ||
|  | tape('get page twice', function (t) { | ||
|  |   var pages = pager(1024) | ||
|  |   t.same(pages.length, 0) | ||
|  | 
 | ||
|  |   var page = pages.get(0) | ||
|  | 
 | ||
|  |   t.same(page.offset, 0) | ||
|  |   t.same(page.buffer, Buffer.alloc(1024)) | ||
|  |   t.same(pages.length, 1) | ||
|  | 
 | ||
|  |   var other = pages.get(0) | ||
|  | 
 | ||
|  |   t.same(other, page) | ||
|  |   t.end() | ||
|  | }) | ||
|  | 
 | ||
|  | tape('get no mutable page', function (t) { | ||
|  |   var pages = pager(1024) | ||
|  | 
 | ||
|  |   t.ok(!pages.get(141, true)) | ||
|  |   t.ok(pages.get(141)) | ||
|  |   t.ok(pages.get(141, true)) | ||
|  | 
 | ||
|  |   t.end() | ||
|  | }) | ||
|  | 
 | ||
|  | tape('get far out page', function (t) { | ||
|  |   var pages = pager(1024) | ||
|  | 
 | ||
|  |   var page = pages.get(1000000) | ||
|  | 
 | ||
|  |   t.same(page.offset, 1000000 * 1024) | ||
|  |   t.same(page.buffer, Buffer.alloc(1024)) | ||
|  |   t.same(pages.length, 1000000 + 1) | ||
|  | 
 | ||
|  |   var other = pages.get(1) | ||
|  | 
 | ||
|  |   t.same(other.offset, 1024) | ||
|  |   t.same(other.buffer, Buffer.alloc(1024)) | ||
|  |   t.same(pages.length, 1000000 + 1) | ||
|  |   t.ok(other !== page) | ||
|  | 
 | ||
|  |   t.end() | ||
|  | }) | ||
|  | 
 | ||
|  | tape('updates', function (t) { | ||
|  |   var pages = pager(1024) | ||
|  | 
 | ||
|  |   t.same(pages.lastUpdate(), null) | ||
|  | 
 | ||
|  |   var page = pages.get(10) | ||
|  | 
 | ||
|  |   page.buffer[42] = 1 | ||
|  |   pages.updated(page) | ||
|  | 
 | ||
|  |   t.same(pages.lastUpdate(), page) | ||
|  |   t.same(pages.lastUpdate(), null) | ||
|  | 
 | ||
|  |   page.buffer[42] = 2 | ||
|  |   pages.updated(page) | ||
|  |   pages.updated(page) | ||
|  | 
 | ||
|  |   t.same(pages.lastUpdate(), page) | ||
|  |   t.same(pages.lastUpdate(), null) | ||
|  | 
 | ||
|  |   t.end() | ||
|  | }) |