mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 17:28:26 -04:00
[Discover] Unskip context navigation test (#68490)
This commit is contained in:
parent
7d9378aa22
commit
679118bcbc
2 changed files with 49 additions and 31 deletions
|
@ -31,52 +31,54 @@ export default function ({ getService, getPageObjects }) {
|
|||
const filterBar = getService('filterBar');
|
||||
const PageObjects = getPageObjects(['common', 'discover', 'timePicker']);
|
||||
|
||||
// FLAKY: https://github.com/elastic/kibana/issues/53308
|
||||
describe.skip('context link in discover', function contextSize() {
|
||||
before(async function () {
|
||||
describe('context link in discover', () => {
|
||||
before(async () => {
|
||||
await PageObjects.timePicker.setDefaultAbsoluteRangeViaUiSettings();
|
||||
await PageObjects.common.navigateToApp('discover');
|
||||
await PageObjects.timePicker.setDefaultAbsoluteRange();
|
||||
await Promise.all(
|
||||
TEST_COLUMN_NAMES.map((columnName) =>
|
||||
PageObjects.discover.clickFieldListItemAdd(columnName)
|
||||
)
|
||||
);
|
||||
|
||||
for (const columnName of TEST_COLUMN_NAMES) {
|
||||
await PageObjects.discover.clickFieldListItemAdd(columnName);
|
||||
}
|
||||
|
||||
for (const [columnName, value] of TEST_FILTER_COLUMN_NAMES) {
|
||||
await PageObjects.discover.clickFieldListItem(columnName);
|
||||
await PageObjects.discover.clickFieldListPlusFilter(columnName, value);
|
||||
}
|
||||
});
|
||||
after(async () => {
|
||||
await PageObjects.timePicker.resetDefaultAbsoluteRangeViaUiSettings();
|
||||
});
|
||||
|
||||
it('should open the context view with the selected document as anchor', async function () {
|
||||
// get the timestamp of the first row
|
||||
const firstTimestamp = (await docTable.getFields())[0][0];
|
||||
|
||||
// navigate to the context view
|
||||
await docTable.clickRowToggle({ rowIndex: 0 });
|
||||
await (await docTable.getRowActions({ rowIndex: 0 }))[0].click();
|
||||
|
||||
it('should open the context view with the selected document as anchor', async () => {
|
||||
// check the anchor timestamp in the context view
|
||||
await retry.try(async () => {
|
||||
const anchorTimestamp = (await docTable.getFields({ isAnchorRow: true }))[0][0];
|
||||
expect(anchorTimestamp).to.equal(firstTimestamp);
|
||||
await retry.waitFor('selected document timestamp matches anchor timestamp ', async () => {
|
||||
// get the timestamp of the first row
|
||||
const discoverFields = await docTable.getFields();
|
||||
const firstTimestamp = discoverFields[0][0];
|
||||
|
||||
// navigate to the context view
|
||||
await docTable.clickRowToggle({ rowIndex: 0 });
|
||||
const rowActions = await docTable.getRowActions({ rowIndex: 0 });
|
||||
await rowActions[0].click();
|
||||
const contextFields = await docTable.getFields({ isAnchorRow: true });
|
||||
const anchorTimestamp = contextFields[0][0];
|
||||
return anchorTimestamp === firstTimestamp;
|
||||
});
|
||||
});
|
||||
|
||||
it('should open the context view with the same columns', async function () {
|
||||
it('should open the context view with the same columns', async () => {
|
||||
const columnNames = await docTable.getHeaderFields();
|
||||
expect(columnNames).to.eql(['Time', ...TEST_COLUMN_NAMES]);
|
||||
});
|
||||
|
||||
it('should open the context view with the filters disabled', async function () {
|
||||
const hasDisabledFilters = (
|
||||
await Promise.all(
|
||||
TEST_FILTER_COLUMN_NAMES.map(([columnName, value]) =>
|
||||
filterBar.hasFilter(columnName, value, false)
|
||||
)
|
||||
)
|
||||
).reduce((result, hasDisabledFilter) => result && hasDisabledFilter, true);
|
||||
|
||||
expect(hasDisabledFilters).to.be(true);
|
||||
it('should open the context view with the filters disabled', async () => {
|
||||
let disabledFilterCounter = 0;
|
||||
for (const [columnName, value] of TEST_FILTER_COLUMN_NAMES) {
|
||||
if (await filterBar.hasFilter(columnName, value, false)) {
|
||||
disabledFilterCounter++;
|
||||
}
|
||||
}
|
||||
expect(disabledFilterCounter).to.be(TEST_FILTER_COLUMN_NAMES.length);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
|
@ -28,6 +28,7 @@ export function TimePickerProvider({ getService, getPageObjects }: FtrProviderCo
|
|||
const browser = getService('browser');
|
||||
const testSubjects = getService('testSubjects');
|
||||
const { header, common } = getPageObjects(['header', 'common']);
|
||||
const kibanaServer = getService('kibanaServer');
|
||||
|
||||
type CommonlyUsed =
|
||||
| 'Today'
|
||||
|
@ -44,11 +45,26 @@ export function TimePickerProvider({ getService, getPageObjects }: FtrProviderCo
|
|||
class TimePicker {
|
||||
defaultStartTime = 'Sep 19, 2015 @ 06:31:44.000';
|
||||
defaultEndTime = 'Sep 23, 2015 @ 18:31:44.000';
|
||||
defaultStartTimeUTC = '2015-09-18T06:31:44.000Z';
|
||||
defaultEndTimeUTC = '2015-09-23T18:31:44.000Z';
|
||||
|
||||
async setDefaultAbsoluteRange() {
|
||||
await this.setAbsoluteRange(this.defaultStartTime, this.defaultEndTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* the provides a quicker way to set the timepicker to the default range, saves a few seconds
|
||||
*/
|
||||
async setDefaultAbsoluteRangeViaUiSettings() {
|
||||
await kibanaServer.uiSettings.update({
|
||||
'timepicker:timeDefaults': `{ "from": "${this.defaultStartTimeUTC}", "to": "${this.defaultEndTimeUTC}"}`,
|
||||
});
|
||||
}
|
||||
|
||||
async resetDefaultAbsoluteRangeViaUiSettings() {
|
||||
await kibanaServer.uiSettings.replace({});
|
||||
}
|
||||
|
||||
private async getTimePickerPanel() {
|
||||
return await find.byCssSelector('div.euiPopover__panel-isOpen');
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue