| 
									
										
										
										
											2016-10-14 20:21:27 +03:00
										 |  |  | 'use strict'; | 
					
						
							| 
									
										
										
										
											2017-02-17 21:55:19 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-14 20:21:27 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | var	assert = require('assert'); | 
					
						
							|  |  |  | var pagination = require('../src/pagination'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | describe('Pagination', function () { | 
					
						
							|  |  |  | 	it('should create empty pagination for 1 page', function (done) { | 
					
						
							|  |  |  | 		var data = pagination.create(1, 1); | 
					
						
							|  |  |  | 		assert.equal(data.pages.length, 0); | 
					
						
							|  |  |  | 		assert.equal(data.rel.length, 0); | 
					
						
							|  |  |  | 		assert.equal(data.pageCount, 1); | 
					
						
							|  |  |  | 		assert.equal(data.prev.page, 1); | 
					
						
							|  |  |  | 		assert.equal(data.next.page, 1); | 
					
						
							|  |  |  | 		done(); | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-14 20:32:31 +03:00
										 |  |  | 	it('should create pagination for 10 pages', function (done) { | 
					
						
							|  |  |  | 		var data = pagination.create(2, 10); | 
					
						
							| 
									
										
										
										
											2016-11-24 22:56:42 +03:00
										 |  |  | 		// [1, (2), 3, 4, 5, separator, 9, 10]
 | 
					
						
							|  |  |  | 		assert.equal(data.pages.length, 8); | 
					
						
							| 
									
										
										
										
											2016-10-14 20:21:27 +03:00
										 |  |  | 		assert.equal(data.rel.length, 2); | 
					
						
							| 
									
										
										
										
											2016-10-14 20:32:31 +03:00
										 |  |  | 		assert.equal(data.pageCount, 10); | 
					
						
							| 
									
										
										
										
											2016-10-14 20:21:27 +03:00
										 |  |  | 		assert.equal(data.prev.page, 1); | 
					
						
							|  |  |  | 		assert.equal(data.next.page, 3); | 
					
						
							|  |  |  | 		done(); | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	it('should create pagination for 3 pages with query params', function (done) { | 
					
						
							| 
									
										
										
										
											2017-02-18 12:30:49 -07:00
										 |  |  | 		var data = pagination.create(1, 3, { key: 'value' }); | 
					
						
							| 
									
										
										
										
											2016-10-14 20:21:27 +03:00
										 |  |  | 		assert.equal(data.pages.length, 3); | 
					
						
							|  |  |  | 		assert.equal(data.rel.length, 1); | 
					
						
							|  |  |  | 		assert.equal(data.pageCount, 3); | 
					
						
							|  |  |  | 		assert.equal(data.prev.page, 1); | 
					
						
							|  |  |  | 		assert.equal(data.next.page, 2); | 
					
						
							|  |  |  | 		assert.equal(data.pages[0].qs, 'key=value&page=1'); | 
					
						
							|  |  |  | 		done(); | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | }); |