From 2705b946a6110cfe3bcfd5c5e3598f8bf0b5c4ee Mon Sep 17 00:00:00 2001 From: ccrowhurstram Date: Sun, 15 Feb 2015 22:35:02 +0000 Subject: [PATCH] test(ngTable): increase test coverage --- test/tableSpec.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/test/tableSpec.js b/test/tableSpec.js index 917b7e2c..ae665303 100644 --- a/test/tableSpec.js +++ b/test/tableSpec.js @@ -291,6 +291,7 @@ describe('ng-table', function() { $compile(elm)(scope); scope.$digest(); + // 'text' is a shortcut alias for the template ng-table/filters/text scope.usernameFilter = {username: 'text'}; scope.tableParams = new NgTableParams({}, {}); scope.$digest(); @@ -317,6 +318,24 @@ describe('ng-table', function() { expect($capturedColumn.filter).toBeDefined(); expect($capturedColumn.filter()['username']).toBe('text'); }); + + it('when filter changes should reset page number to 1', inject(function ($timeout) { + // trigger initial load of data so that subsequent changes to filter will trigger reset of page # + scope.tableParams.filter()['username'] = 'initial value'; + scope.$digest(); + $timeout.flush(); // trigger delayed filter + + // set page to something other than 1 + scope.tableParams.page(5); + expect(scope.tableParams.page()).toBe(5); // checking assumptions + + // when + scope.tableParams.filter()['username'] = 'new value'; + scope.$digest(); + $timeout.flush(); // trigger delayed filter + + expect(scope.tableParams.page()).toBe(1); + })); }); describe('filter specified with url', function(){