fix sorting bug (#17769)

* fix sorting bug

* comments
This commit is contained in:
Alan Ren
2021-11-30 17:11:57 -08:00
committed by GitHub
parent 7e17bfb6ec
commit 1006652a31
3 changed files with 73 additions and 17 deletions

View File

@@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/
import * as assert from 'assert';
import { TableDataView } from 'sql/base/browser/ui/table/tableDataView';
import { defaultSort, TableDataView } from 'sql/base/browser/ui/table/tableDataView';
suite('TableDataView', () => {
test('Data can be filtered and filter can be cleared', () => {
@@ -173,6 +173,55 @@ suite('TableDataView', () => {
findValue = await dataView.findNext();
assert.deepStrictEqual(findValue, { row: 2, col: 0 });
});
test('Default Sorter test', async () => {
const originalData: Slick.SlickData[] = [
{ fieldName: '10b' },
{ fieldName: undefined },
{ fieldName: '100.01' },
{ fieldName: undefined },
{ fieldName: '10.1' },
{ fieldName: 'abc' }
];
const sortAscArg: Slick.OnSortEventArgs<Slick.SlickData> = {
sortAsc: true,
sortCol: {
field: 'fieldName'
},
multiColumnSort: false,
grid: undefined
};
const sortDescArg: Slick.OnSortEventArgs<Slick.SlickData> = {
sortAsc: false,
sortCol: {
field: 'fieldName'
},
multiColumnSort: false,
grid: undefined
};
const expectedAsc: Slick.SlickData[] = [
{ fieldName: undefined },
{ fieldName: undefined },
{ fieldName: '10.1' },
{ fieldName: '100.01' },
{ fieldName: '10b' },
{ fieldName: 'abc' }
];
const sortedAsc = defaultSort(sortAscArg, originalData);
assert.deepStrictEqual(sortedAsc, expectedAsc, 'ascending sorting is not working as expected');
const expectedDesc: Slick.SlickData[] = [
{ fieldName: 'abc' },
{ fieldName: '10b' },
{ fieldName: '100.01' },
{ fieldName: '10.1' },
{ fieldName: undefined },
{ fieldName: undefined },
];
const sortedDesc = defaultSort(sortDescArg, originalData);
assert.deepStrictEqual(sortedDesc, expectedDesc, 'descending sorting is not working as expected');
});
});
function populateData(row: number, column: number): any[] {