|
|
|
@ -56,7 +56,7 @@ async function verifyFilter(param: {
|
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
await toolbar.clickFilter({ networkValidation: false }); |
|
|
|
|
await toolbar.clickFilter(); |
|
|
|
|
await toolbar.filter.add({ |
|
|
|
|
columnTitle: param.column, |
|
|
|
|
opType: param.opType, |
|
|
|
@ -64,7 +64,7 @@ async function verifyFilter(param: {
|
|
|
|
|
isLocallySaved: false, |
|
|
|
|
dataType: param?.dataType, |
|
|
|
|
}); |
|
|
|
|
await toolbar.clickFilter({ networkValidation: false }); |
|
|
|
|
await toolbar.clickFilter(); |
|
|
|
|
|
|
|
|
|
// verify filtered rows
|
|
|
|
|
await validateRowArray({ |
|
|
|
@ -72,7 +72,7 @@ async function verifyFilter(param: {
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
// Reset filter
|
|
|
|
|
await toolbar.filter.reset({ networkValidation: false }); |
|
|
|
|
await toolbar.filter.reset(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Number based filters
|
|
|
|
@ -689,6 +689,137 @@ test.describe('Filter Tests: AddOn', () => {
|
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
// Virtual columns
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
test.describe('Filter Tests: Link to another record, Lookup, Rollup', () => { |
|
|
|
|
async function linkToAnotherRecordFilterTest() { |
|
|
|
|
await dashboard.closeTab({ title: 'Team & Auth' }); |
|
|
|
|
await dashboard.treeView.openTable({ title: 'Country', networkResponse: false }); |
|
|
|
|
// Enable NULL & EMPTY filters
|
|
|
|
|
await dashboard.gotoSettings(); |
|
|
|
|
await dashboard.settings.toggleNullEmptyFilters(); |
|
|
|
|
|
|
|
|
|
// add filter for CityList column
|
|
|
|
|
const filterList = [ |
|
|
|
|
{ op: 'is', value: 'Kabul', rowCount: 1 }, |
|
|
|
|
{ op: 'is not', value: 'Kabul', rowCount: 108 }, |
|
|
|
|
{ op: 'is like', value: 'bad', rowCount: 2 }, |
|
|
|
|
{ op: 'is not like', value: 'bad', rowCount: 107 }, |
|
|
|
|
{ op: 'is blank', value: null, rowCount: 0 }, |
|
|
|
|
{ op: 'is not blank', value: null, rowCount: 109 }, |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
for (let i = 0; i < filterList.length; i++) { |
|
|
|
|
await verifyFilter({ |
|
|
|
|
column: 'City List', |
|
|
|
|
opType: filterList[i].op, |
|
|
|
|
value: filterList[i].value, |
|
|
|
|
result: { rowCount: filterList[i].rowCount }, |
|
|
|
|
dataType: 'LinkToAnotherRecord', |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
async function lookupFilterTest() { |
|
|
|
|
await dashboard.closeTab({ title: 'Team & Auth' }); |
|
|
|
|
await dashboard.treeView.openTable({ title: 'City', networkResponse: false }); |
|
|
|
|
// Create LookUp column
|
|
|
|
|
await dashboard.grid.column.create({ |
|
|
|
|
title: 'Lookup', |
|
|
|
|
type: 'Lookup', |
|
|
|
|
childTable: 'Address List', |
|
|
|
|
childColumn: 'PostalCode', |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
// Enable NULL & EMPTY filters
|
|
|
|
|
await dashboard.gotoSettings(); |
|
|
|
|
await dashboard.settings.toggleNullEmptyFilters(); |
|
|
|
|
|
|
|
|
|
// add filter for CityList column
|
|
|
|
|
const filterList = [ |
|
|
|
|
{ op: 'is equal', value: '4166', rowCount: 1 }, |
|
|
|
|
{ op: 'is not equal', value: '4166', rowCount: 599 }, |
|
|
|
|
{ op: 'is like', value: '41', rowCount: 19 }, |
|
|
|
|
{ op: 'is not like', value: '41', rowCount: 581 }, |
|
|
|
|
{ op: 'is blank', value: null, rowCount: 1 }, |
|
|
|
|
{ op: 'is not blank', value: null, rowCount: 599 }, |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
for (let i = 0; i < filterList.length; i++) { |
|
|
|
|
await verifyFilter({ |
|
|
|
|
column: 'Lookup', |
|
|
|
|
opType: filterList[i].op, |
|
|
|
|
value: filterList[i].value, |
|
|
|
|
result: { rowCount: filterList[i].rowCount }, |
|
|
|
|
dataType: 'Lookup', |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
async function rollupFilterTest() { |
|
|
|
|
await dashboard.closeTab({ title: 'Team & Auth' }); |
|
|
|
|
await dashboard.treeView.openTable({ title: 'City', networkResponse: false }); |
|
|
|
|
// Create LookUp column
|
|
|
|
|
await dashboard.grid.column.create({ |
|
|
|
|
title: 'Rollup', |
|
|
|
|
type: 'Rollup', |
|
|
|
|
childTable: 'Address List', |
|
|
|
|
childColumn: 'PostalCode', |
|
|
|
|
rollupType: 'Sum', |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
// Enable NULL & EMPTY filters
|
|
|
|
|
await dashboard.gotoSettings(); |
|
|
|
|
await dashboard.settings.toggleNullEmptyFilters(); |
|
|
|
|
|
|
|
|
|
// add filter for CityList column
|
|
|
|
|
const filterList = [ |
|
|
|
|
{ op: 'is equal', value: '4166', rowCount: 1 }, |
|
|
|
|
{ op: 'is not equal', value: '4166', rowCount: 599 }, |
|
|
|
|
{ op: 'is like', value: '41', rowCount: 19 }, |
|
|
|
|
{ op: 'is not like', value: '41', rowCount: 581 }, |
|
|
|
|
{ op: 'is blank', value: null, rowCount: 2 }, |
|
|
|
|
{ op: 'is not blank', value: null, rowCount: 598 }, |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
for (let i = 0; i < filterList.length; i++) { |
|
|
|
|
await verifyFilter({ |
|
|
|
|
column: 'Lookup', |
|
|
|
|
opType: filterList[i].op, |
|
|
|
|
value: filterList[i].value, |
|
|
|
|
result: { rowCount: filterList[i].rowCount }, |
|
|
|
|
dataType: 'Lookup', |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
test.beforeEach(async ({ page }) => { |
|
|
|
|
context = await setup({ page }); |
|
|
|
|
dashboard = new DashboardPage(page, context.project); |
|
|
|
|
toolbar = dashboard.grid.toolbar; |
|
|
|
|
|
|
|
|
|
api = new Api({ |
|
|
|
|
baseURL: `http://localhost:8080/`, |
|
|
|
|
headers: { |
|
|
|
|
'xc-auth': context.token, |
|
|
|
|
}, |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
test('Filter: LTAR columns', async () => { |
|
|
|
|
await linkToAnotherRecordFilterTest(); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
test('Filter: Lookup columns', async () => { |
|
|
|
|
await lookupFilterTest(); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
test.skip('Filter: Rollup columns', async () => { |
|
|
|
|
await rollupFilterTest(); |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
// Rest of tests
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|