mirror of
https://github.com/gwenhael-le-moine/ledgerrb.git
synced 2025-01-17 18:11:49 +01:00
273 lines
9.8 KiB
JavaScript
273 lines
9.8 KiB
JavaScript
describe('ngTableParams', function () {
|
|
var scope, ctrl, data = [
|
|
{name: "Moroni", age: 50, role: 'Administrator'},
|
|
{name: "Tiancum", age: 43, role: 'Administrator'},
|
|
{name: "Jacob", age: 27, role: 'Administrator'},
|
|
{name: "Nephi", age: 29, role: 'Moderator'},
|
|
{name: "Enos", age: 34, role: 'User'},
|
|
{name: "Tiancum", age: 43, role: 'User'},
|
|
{name: "Jacob", age: 27, role: 'User'},
|
|
{name: "Nephi", age: 29, role: 'Moderator'},
|
|
{name: "Enos", age: 34, role: 'User'},
|
|
{name: "Tiancum", age: 43, role: 'Moderator'},
|
|
{name: "Jacob", age: 27, role: 'User'},
|
|
{name: "Nephi", age: 29, role: 'User'},
|
|
{name: "Enos", age: 34, role: 'Moderator'},
|
|
{name: "Tiancum", age: 43, role: 'User'},
|
|
{name: "Jacob", age: 27, role: 'User'},
|
|
{name: "Nephi", age: 29, role: 'User'},
|
|
{name: "Enos", age: 34, role: 'User'}
|
|
];
|
|
beforeEach(module('ngTable'));
|
|
|
|
beforeEach(inject(function ($controller, $rootScope) {
|
|
scope = $rootScope.$new();
|
|
}));
|
|
|
|
it('ngTableParams should be defined', inject(function (ngTableParams) {
|
|
var params = new ngTableParams();
|
|
expect(ngTableParams).toBeDefined();
|
|
}));
|
|
|
|
it('ngTableParams test generatePagesArray', inject(function (ngTableParams) {
|
|
var params = new ngTableParams();
|
|
expect(params.generatePagesArray(1, 30, 10)).toEqual([
|
|
{ type: 'prev', number: 1, active: false },
|
|
{ type: 'first', number: 1, active: false },
|
|
{ type: 'page', number: 2, active: true },
|
|
{ type: 'last', number: 3, active: true },
|
|
{ type: 'next', number: 2, active: true }
|
|
]);
|
|
expect(params.generatePagesArray(2, 30, 10)).toEqual([
|
|
{ type: 'prev', number: 1, active: true },
|
|
{ type: 'first', number: 1, active: true },
|
|
{ type: 'page', number: 2, active: false },
|
|
{ type: 'last', number: 3, active: true },
|
|
{ type: 'next', number: 3, active: true }
|
|
]);
|
|
expect(params.generatePagesArray(2, 100, 10)).toEqual([
|
|
{ type: 'prev', number: 1, active: true },
|
|
{ type: 'first', number: 1, active: true },
|
|
{ type: 'page', number: 2, active: false },
|
|
{ type: 'page', number: 3, active: true },
|
|
{ type: 'page', number: 4, active: true },
|
|
{ type: 'page', number: 5, active: true },
|
|
{ type: 'page', number: 6, active: true },
|
|
{ type: 'page', number: 7, active: true },
|
|
{ type: 'more', active: false },
|
|
{ type: 'last', number: 10, active: true },
|
|
{ type: 'next', number: 3, active: true }
|
|
]);
|
|
}));
|
|
|
|
it('ngTableParams `page` parameter', inject(function (ngTableParams) {
|
|
var params = new ngTableParams();
|
|
|
|
expect(params.page()).toBe(1);
|
|
expect(params.page(2)).toEqual(params);
|
|
expect(params.page()).toBe(2);
|
|
|
|
params = new ngTableParams({
|
|
page: 3
|
|
});
|
|
expect(params.page()).toBe(3);
|
|
|
|
var callCount = 0;
|
|
scope.tableParams = params;
|
|
scope.$watch('tableParams', function (innerParams) {
|
|
callCount++;
|
|
expect(innerParams.page()).toBe(4);
|
|
});
|
|
params.page(4);
|
|
scope.$apply();
|
|
expect(callCount).toBe(1);
|
|
// repeat call
|
|
scope.$apply();
|
|
expect(callCount).toBe(1);
|
|
}));
|
|
|
|
it('ngTableParams parse url parameters', inject(function (ngTableParams) {
|
|
var params = new ngTableParams({
|
|
'sorting[name]': 'asc',
|
|
'sorting[age]': 'desc',
|
|
'filter[name]': 'test',
|
|
'filter[age]': 20
|
|
});
|
|
|
|
expect(params.filter()).toEqual({ 'name': 'test', 'age': 20 });
|
|
expect(params.filter({})).toEqual(params);
|
|
|
|
expect(params.sorting()).toEqual({ 'age': 'desc' }); // sorting only by one column
|
|
expect(params.sorting({})).toEqual(params);
|
|
}));
|
|
|
|
it('ngTableParams return url parameters', inject(function (ngTableParams) {
|
|
var params = new ngTableParams({
|
|
'sorting[name]': 'asc',
|
|
'sorting[age]': 'desc',
|
|
'filter[name]': 'test',
|
|
'filter[age]': 20
|
|
});
|
|
expect(params.url()).toEqual({
|
|
'page': '1',
|
|
'count': '1',
|
|
'filter[name]': 'test',
|
|
'filter[age]': 20,
|
|
'sorting[age]': 'desc'
|
|
});
|
|
expect(params.url(true)).toEqual([
|
|
'page=1',
|
|
'count=1',
|
|
'filter[name]=test',
|
|
'filter[age]=20',
|
|
'sorting[age]=desc'
|
|
]);
|
|
}));
|
|
|
|
it('ngTableParams test orderBy', inject(function (ngTableParams) {
|
|
var params = new ngTableParams({
|
|
'sorting[name]': 'asc'
|
|
});
|
|
|
|
expect(params.orderBy()).toEqual([ '+name' ]); // for angular sorting function
|
|
|
|
params.sorting({ name: 'desc', age: 'asc' });
|
|
|
|
expect(params.orderBy()).toEqual([ '-name', '+age' ]);
|
|
}));
|
|
|
|
it('ngTableParams test settings', inject(function (ngTableParams) {
|
|
var params = new ngTableParams();
|
|
|
|
expect(params.settings()).toEqual({
|
|
$scope: null,
|
|
$loading: false,
|
|
data: null,
|
|
total: 0,
|
|
defaultSort : 'desc',
|
|
counts: [10, 25, 50, 100],
|
|
getData: params.getData,
|
|
getGroups: params.getGroups,
|
|
filterDelay: 750
|
|
});
|
|
|
|
params = new ngTableParams({}, { total: 100 });
|
|
|
|
expect(params.settings()).toEqual({
|
|
$scope: null,
|
|
$loading: false,
|
|
data: null,
|
|
total: 100,
|
|
defaultSort : 'desc',
|
|
counts: [10, 25, 50, 100],
|
|
getData: params.getData,
|
|
getGroups: params.getGroups,
|
|
filterDelay: 750
|
|
});
|
|
}));
|
|
|
|
it('ngTableParams test getData', inject(function ($q, ngTableParams) {
|
|
var params = new ngTableParams();
|
|
$defer = $q.defer();
|
|
$defer.promise.then(function(data) {
|
|
expect(data).toEqual([]);
|
|
});
|
|
params.getData($defer);
|
|
}));
|
|
|
|
it('ngTableParams test grouping', inject(function ($q, ngTableParams) {
|
|
var params = new ngTableParams();
|
|
params.getData = function ($defer) {
|
|
$defer.resolve(data);
|
|
};
|
|
|
|
$defer = $q.defer();
|
|
$defer.promise.then(function (data) {
|
|
|
|
expect(data).toEqual([
|
|
{
|
|
value: 'Administrator',
|
|
data: [
|
|
{name: "Moroni", age: 50, role: 'Administrator'},
|
|
{name: "Tiancum", age: 43, role: 'Administrator'},
|
|
{name: "Jacob", age: 27, role: 'Administrator'}
|
|
]
|
|
},
|
|
{
|
|
value: 'Moderator',
|
|
data: [
|
|
{name: "Nephi", age: 29, role: 'Moderator'},
|
|
{name: "Nephi", age: 29, role: 'Moderator'},
|
|
{name: "Tiancum", age: 43, role: 'Moderator'},
|
|
{name: "Enos", age: 34, role: 'Moderator'}
|
|
]
|
|
},
|
|
{
|
|
value: 'User',
|
|
data: [
|
|
{name: "Enos", age: 34, role: 'User'},
|
|
{name: "Tiancum", age: 43, role: 'User'},
|
|
{name: "Jacob", age: 27, role: 'User'},
|
|
{name: "Enos", age: 34, role: 'User'},
|
|
{name: "Jacob", age: 27, role: 'User'},
|
|
{name: "Nephi", age: 29, role: 'User'},
|
|
{name: "Tiancum", age: 43, role: 'User'},
|
|
{name: "Jacob", age: 27, role: 'User'},
|
|
{name: "Nephi", age: 29, role: 'User'},
|
|
{name: "Enos", age: 34, role: 'User'}
|
|
]
|
|
}
|
|
]);
|
|
});
|
|
params.getGroups($defer, 'role');
|
|
|
|
$defer = $q.defer();
|
|
$defer.promise.then(function (data) {
|
|
expect(data).toEqual([
|
|
{
|
|
value: 50,
|
|
data: [
|
|
{name: "Moroni", age: 50, role: 'Administrator'}
|
|
]
|
|
},
|
|
{
|
|
value: 43,
|
|
data: [
|
|
{name: "Tiancum", age: 43, role: 'Administrator'},
|
|
{name: "Tiancum", age: 43, role: 'User'},
|
|
{name: "Tiancum", age: 43, role: 'Moderator'},
|
|
{name: "Tiancum", age: 43, role: 'User'}
|
|
]
|
|
},
|
|
{
|
|
value: 27,
|
|
data: [
|
|
{name: "Jacob", age: 27, role: 'Administrator'},
|
|
{name: "Jacob", age: 27, role: 'User'},
|
|
{name: "Jacob", age: 27, role: 'User'},
|
|
{name: "Jacob", age: 27, role: 'User'}
|
|
]
|
|
},
|
|
{
|
|
value: 29,
|
|
data: [
|
|
{name: "Nephi", age: 29, role: 'Moderator'},
|
|
{name: "Nephi", age: 29, role: 'Moderator'},
|
|
{name: "Nephi", age: 29, role: 'User'},
|
|
{name: "Nephi", age: 29, role: 'User'}
|
|
]
|
|
},
|
|
{
|
|
value: 34,
|
|
data: [
|
|
{name: "Enos", age: 34, role: 'User'},
|
|
{name: "Enos", age: 34, role: 'User'},
|
|
{name: "Enos", age: 34, role: 'Moderator'},
|
|
{name: "Enos", age: 34, role: 'User'}
|
|
]
|
|
}
|
|
]);
|
|
});
|
|
params.getGroups($defer, 'age');
|
|
}));
|
|
});
|