UNPKG

igniteui-angular-sovn

Version:

Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps

58 lines (55 loc) 2.31 kB
import { DataGenerator } from './test-util/data-generator'; import { DefaultSortingStrategy, SortingDirection } from './sorting-strategy'; import { IgxSorting } from '../grids/common/strategy'; describe('Unit testing SortingStrategy', () => { let dataGenerator: DataGenerator; let data: any[]; const sorting = new IgxSorting(); beforeEach(() => { dataGenerator = new DataGenerator(); data = dataGenerator.data; }); it('tests `sort`', () => { const res = sorting.sort(data, [ { dir: SortingDirection.Asc, fieldName: 'boolean', ignoreCase: false, strategy: DefaultSortingStrategy.instance() }, { dir: SortingDirection.Desc, fieldName: 'number', ignoreCase: false, strategy: DefaultSortingStrategy.instance() }]); expect(dataGenerator.getValuesForColumn(res, 'number')) .toEqual([4, 2, 0, 3, 1]); }); it('tests `compareObjects`', () => { const strategy = DefaultSortingStrategy.instance(); expect(strategy.compareValues(1, 0) === 1 && strategy.compareValues(true, false) === 1 && strategy.compareValues('bc', 'adfc') === 1) .toBeTruthy('compare first argument greater than second'); expect(strategy.compareValues(1, 2) === -1 && strategy.compareValues('a', 'b') === -1 && strategy.compareValues(false, true) === -1) .toBeTruthy('compare 0, 1'); expect(strategy.compareValues(0, 0) === 0 && strategy.compareValues(true, true) === 0 && strategy.compareValues('test', 'test') === 0 ) .toBeTruthy('Comare equal variables'); }); it('tests default settings', () => { (data[4] as { string: string }).string = 'ROW'; const res = sorting.sort(data, [{ dir: SortingDirection.Asc, fieldName: 'string', ignoreCase: true, strategy: DefaultSortingStrategy.instance() }]); expect(dataGenerator.getValuesForColumn(res, 'number')) .toEqual([4, 0, 1, 2, 3]); }); });