ngTableDefaultGetDataSpec.js 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. describe('ngTableDefaultGetData', function () {
  2. var ngTableDefaultGetData,
  3. ngTableDefaultGetDataProvider,
  4. tableParams;
  5. beforeEach(function () {
  6. // grab a reference to the service provider
  7. // by injecting it to a fake module's config block
  8. var fakeModule = angular.module('test.config', function () {});
  9. fakeModule.config( function (_ngTableDefaultGetDataProvider_) {
  10. ngTableDefaultGetDataProvider = _ngTableDefaultGetDataProvider_;
  11. });
  12. // Initialize test.app injector
  13. module('ngTable', 'test.config');
  14. });
  15. beforeEach(inject(function(_ngTableDefaultGetData_, NgTableParams){
  16. ngTableDefaultGetData = _ngTableDefaultGetData_;
  17. tableParams = new NgTableParams({ count: 10}, { counts: [10]});
  18. }));
  19. it('should be configured to use built-in angular filters', function(){
  20. expect(ngTableDefaultGetDataProvider.filterFilterName).toBe('filter');
  21. expect(ngTableDefaultGetDataProvider.sortingFilterName).toBe('orderBy');
  22. });
  23. describe('filters', function(){
  24. it('empty filter', function(){
  25. // given
  26. tableParams.filter({});
  27. // when
  28. var actualResults = ngTableDefaultGetData([{ age: 1 }, { age: 2}, { age: 3}], tableParams);
  29. // then
  30. expect(actualResults).toEqual([{ age: 1 }, { age: 2}, { age: 3}]);
  31. });
  32. it('empty filter - simple values', function(){
  33. // given
  34. tableParams.filter({});
  35. // when
  36. var actualResults = ngTableDefaultGetData([1,2,3], tableParams);
  37. // then
  38. expect(actualResults).toEqual([1,2,3]);
  39. });
  40. it('single property filter', function(){
  41. // given
  42. tableParams.filter({ age: 1});
  43. // when
  44. var actualResults = ngTableDefaultGetData([{ age: 1 }, { age: 2}, { age: 3}], tableParams);
  45. // then
  46. expect(actualResults).toEqual([{ age: 1}]);
  47. });
  48. it('multiple property filter', function(){
  49. // given
  50. var data = [{age: 1, name: 'A'}, {age: 2, name: 'B'}, {age: 3, name: 'B'}];
  51. tableParams.filter({ age: 2, name: 'B'});
  52. // when
  53. var actualResults = ngTableDefaultGetData(data, tableParams);
  54. // then
  55. expect(actualResults).toEqual([{age: 2, name: 'B'}]);
  56. });
  57. it('should remove null and undefined values before applying', function(){
  58. // given
  59. var data = [{age: 1, name: 'A'}, {age: 2, name: 'B'}, {age: 3, name: 'B'}];
  60. tableParams.filter({ age: null, name: 'B'});
  61. // when
  62. var actualResults = ngTableDefaultGetData(data, tableParams);
  63. // then
  64. expect(actualResults).toEqual([{age: 2, name: 'B'}, {age: 3, name: 'B'}]);
  65. });
  66. it('should remove empty string value before applying', function(){
  67. // given
  68. var data = [{age: 1, name: 'A'}, {age: 2, name: 'B'}, {age: 3, name: 'B'}];
  69. tableParams.filter({ age: 2, name: ''});
  70. // when
  71. var actualResults = ngTableDefaultGetData(data, tableParams);
  72. // then
  73. expect(actualResults).toEqual([{age: 2, name: 'B'}]);
  74. });
  75. });
  76. });