pagination
Version:
Pagination for javascript/nodejs
78 lines (74 loc) • 3.09 kB
JavaScript
var assert = require('assert');
var pagination = require('../index.js');
var TemplatePaginator = pagination.TemplatePaginator;
var vows = require('vows');
vows.describe('Test suite for TemplatePaginator').addBatch({
render : function() {
var item = new TemplatePaginator({
prelink : '/',
pageLinks : 5,
current : 5,
totalResult : 100,
template: '<ul class="pagination">'
+ '<% if (first) { %>'
+ '<li><a href="<%-preparedPreLink + first %>">««</a></li>'
+ '<% } %>'
+ '<% if (previous) {%>'
+ '<li><a href="<%-preparedPreLink + previous %>">«</a></li>'
+ '<% } %> '
+ '<% for ( var i = 0; i < range.length; i++ ) { %>'
+ '<li><a href="<%-preparedPreLink %><%=range[i]%>"><%=range[i]%></a></li>'
+ '<% } %>'
+ '<% if (next) { %>'
+ '<li><a href="<%-preparedPreLink + next %>">»</a></li>'
+ '<% } %>'
+ '<% if (last) {%>'
+ '<li><a href="<%-preparedPreLink + last %>">»»</a></li>'
+ '<% } %>'
+ '</ul>'
});
assert.equal('<ul class="pagination"><li><a href="/?page=1">««</a></li><li><a href="/?page=4">«</a></li> <li><a href="/?page=3">3</a></li><li><a href="/?page=4">4</a></li><li><a href="/?page=5">5</a></li><li><a href="/?page=6">6</a></li><li><a href="/?page=7">7</a></li><li><a href="/?page=6">»</a></li><li><a href="/?page=10">»»</a></li></ul>', item.render());
},
"render ejs compiled template": function() {
var ejs = require('ejs');
var template = '<ul class="pagination">'
+ '<% if (first) { %>'
+ '<li><a href="<%-preparedPreLink + first %>">««</a></li>'
+ '<% } %>'
+ '<% if (previous) {%>'
+ '<li><a href="<%-preparedPreLink + previous %>">«</a></li>'
+ '<% } %> '
+ '<% for ( var i = 0; i < range.length; i++ ) { %>'
+ '<li><a href="<%=preparedPreLink %><%=range[i]%>"><%=range[i]%></a></li>'
+ '<% } %>'
+ '<% if (next) { %>'
+ '<li><a href="<%-preparedPreLink + next %>">»</a></li>'
+ '<% } %>'
+ '<% if (last) {%>'
+ '<li><a href="<%-preparedPreLink + last %>">»»</a></li>'
+ '<% } %>'
+ '</ul>';
var item = new TemplatePaginator({
prelink : '/',
pageLinks : 5,
current : 5,
totalResult : 100,
template: ejs.compile(template)
});
assert.equal('<ul class="pagination"><li><a href="/?page=1">««</a></li><li><a href="/?page=4">«</a></li> <li><a href="/?page=3">3</a></li><li><a href="/?page=4">4</a></li><li><a href="/?page=5">5</a></li><li><a href="/?page=6">6</a></li><li><a href="/?page=7">7</a></li><li><a href="/?page=6">»</a></li><li><a href="/?page=10">»»</a></li></ul>', item.render());
},
"render function": function() {
var item = new TemplatePaginator({
prelink : '/',
pageLinks : 5,
current : 5,
totalResult : 100,
template: function(data) {
with(data) {
return 'current:' + current + ',totalResult:' + totalResult;
}
}
});
assert.equal('current:5,totalResult:100', item.render());
}
}).export(module);