mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 09:48:58 -04:00
* Debug flaky test, or at least retry the spot that seems to be failing * Fix missing await, use queryBar service, use more detailed error message * update remaining references to dashboard.getQuery * getQueryString not getQuery
This commit is contained in:
parent
e5ea9dd2a6
commit
e742967edb
7 changed files with 46 additions and 42 deletions
|
@ -5,6 +5,7 @@ export default function ({ getService, getPageObjects }) {
|
|||
const dashboardExpect = getService('dashboardExpect');
|
||||
const remote = getService('remote');
|
||||
const log = getService('log');
|
||||
const queryBar = getService('queryBar');
|
||||
|
||||
let kibanaBaseUrl;
|
||||
|
||||
|
@ -44,7 +45,7 @@ export default function ({ getService, getPageObjects }) {
|
|||
await remote.get(url, true);
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
|
||||
const query = await PageObjects.dashboard.getQuery();
|
||||
const query = await queryBar.getQueryString();
|
||||
expect(query).to.equal('memory:>220000');
|
||||
|
||||
await dashboardExpect.pieSliceCount(5);
|
||||
|
@ -60,7 +61,7 @@ export default function ({ getService, getPageObjects }) {
|
|||
await remote.get(url, true);
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
|
||||
const query = await PageObjects.dashboard.getQuery();
|
||||
const query = await queryBar.getQueryString();
|
||||
expect(query).to.equal('memory:>220000');
|
||||
|
||||
await dashboardExpect.pieSliceCount(5);
|
||||
|
|
|
@ -6,6 +6,7 @@ import expect from 'expect.js';
|
|||
*/
|
||||
export default function ({ getService, getPageObjects }) {
|
||||
const dashboardExpect = getService('dashboardExpect');
|
||||
const queryBar = getService('queryBar');
|
||||
const dashboardAddPanel = getService('dashboardAddPanel');
|
||||
const testSubjects = getService('testSubjects');
|
||||
const filterBar = getService('filterBar');
|
||||
|
@ -153,8 +154,8 @@ export default function ({ getService, getPageObjects }) {
|
|||
await dashboardExpect.pieSliceCount(5);
|
||||
|
||||
await PageObjects.dashboard.clickEditVisualization();
|
||||
await PageObjects.dashboard.setQuery('weightLbs:>50');
|
||||
await PageObjects.dashboard.clickFilterButton();
|
||||
await queryBar.setQuery('weightLbs:>50');
|
||||
await queryBar.submitQuery();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.dashboard.waitForRenderComplete();
|
||||
await dashboardExpect.pieSliceCount(3);
|
||||
|
@ -186,9 +187,8 @@ export default function ({ getService, getPageObjects }) {
|
|||
});
|
||||
|
||||
it('Pie chart linked to saved search filters shows no data with conflicting dashboard query', async () => {
|
||||
await PageObjects.dashboard.setQuery('weightLbs:<40');
|
||||
await PageObjects.dashboard.clickFilterButton();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await queryBar.setQuery('weightLbs:<40');
|
||||
await queryBar.submitQuery();
|
||||
await PageObjects.dashboard.waitForRenderComplete();
|
||||
|
||||
await dashboardExpect.pieSliceCount(0);
|
||||
|
|
|
@ -9,6 +9,7 @@ export default function ({ getService, getPageObjects }) {
|
|||
const PageObjects = getPageObjects(['dashboard', 'visualize', 'header', 'discover']);
|
||||
const testSubjects = getService('testSubjects');
|
||||
const remote = getService('remote');
|
||||
const queryBar = getService('queryBar');
|
||||
const retry = getService('retry');
|
||||
const dashboardAddPanel = getService('dashboardAddPanel');
|
||||
|
||||
|
@ -146,14 +147,14 @@ export default function ({ getService, getPageObjects }) {
|
|||
await PageObjects.dashboard.gotoDashboardLandingPage();
|
||||
await PageObjects.dashboard.clickNewDashboard();
|
||||
|
||||
const currentQuery = await PageObjects.dashboard.getQuery();
|
||||
const currentQuery = await queryBar.getQueryString();
|
||||
expect(currentQuery).to.equal('');
|
||||
const currentUrl = await remote.getCurrentUrl();
|
||||
const newUrl = currentUrl.replace('query:%27%27', 'query:%27hi%27');
|
||||
// Don't add the timestamp to the url or it will cause a hard refresh and we want to test a
|
||||
// soft refresh.
|
||||
await remote.get(newUrl.toString(), false);
|
||||
const newQuery = await PageObjects.dashboard.getQuery();
|
||||
const newQuery = await queryBar.getQueryString();
|
||||
expect(newQuery).to.equal('hi');
|
||||
});
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ export default function ({ getService, getPageObjects }) {
|
|||
const kibanaServer = getService('kibanaServer');
|
||||
const retry = getService('retry');
|
||||
const remote = getService('remote');
|
||||
const queryBar = getService('queryBar');
|
||||
const dashboardAddPanel = getService('dashboardAddPanel');
|
||||
const PageObjects = getPageObjects(['dashboard', 'header', 'common', 'visualize']);
|
||||
const dashboardName = 'Dashboard View Edit Test';
|
||||
|
@ -79,16 +80,16 @@ export default function ({ getService, getPageObjects }) {
|
|||
});
|
||||
|
||||
it('when the query is edited and applied', async function () {
|
||||
const originalQuery = await PageObjects.dashboard.getQuery();
|
||||
await PageObjects.dashboard.setQuery(`${originalQuery} and extra stuff`);
|
||||
await PageObjects.dashboard.clickFilterButton();
|
||||
const originalQuery = await queryBar.getQueryString();
|
||||
await queryBar.setQuery(`${originalQuery} and extra stuff`);
|
||||
await queryBar.submitQuery();
|
||||
|
||||
await PageObjects.dashboard.clickCancelOutOfEditMode();
|
||||
|
||||
// confirm lose changes
|
||||
await PageObjects.common.clickConfirmOnModal();
|
||||
|
||||
const query = await PageObjects.dashboard.getQuery();
|
||||
const query = await queryBar.getQueryString();
|
||||
expect(query).to.equal(originalQuery);
|
||||
});
|
||||
|
||||
|
@ -232,8 +233,8 @@ export default function ({ getService, getPageObjects }) {
|
|||
it('when the query is edited but not applied', async function () {
|
||||
await PageObjects.dashboard.gotoDashboardEditMode(dashboardName);
|
||||
|
||||
const originalQuery = await PageObjects.dashboard.getQuery();
|
||||
await PageObjects.dashboard.setQuery(`${originalQuery} extra stuff`);
|
||||
const originalQuery = await queryBar.getQueryString();
|
||||
await queryBar.setQuery(`${originalQuery} extra stuff`);
|
||||
|
||||
await PageObjects.dashboard.clickCancelOutOfEditMode();
|
||||
|
||||
|
@ -241,7 +242,7 @@ export default function ({ getService, getPageObjects }) {
|
|||
expect(isOpen).to.be(false);
|
||||
|
||||
await PageObjects.dashboard.loadSavedDashboard(dashboardName);
|
||||
const query = await PageObjects.dashboard.getQuery();
|
||||
const query = await queryBar.getQueryString();
|
||||
expect(query).to.equal(originalQuery);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -139,27 +139,6 @@ export function DashboardPageProvider({ getService, getPageObjects }) {
|
|||
}
|
||||
}
|
||||
|
||||
async getQueryInputElement() {
|
||||
return await testSubjects.find('queryInput');
|
||||
}
|
||||
|
||||
async getQuery() {
|
||||
log.debug(`getQuery`);
|
||||
const queryInputElement = await this.getQueryInputElement();
|
||||
return await queryInputElement.getProperty('value');
|
||||
}
|
||||
|
||||
async setQuery(query) {
|
||||
log.debug(`setQuery(${query})`);
|
||||
return await testSubjects.setValue('queryInput', query);
|
||||
}
|
||||
|
||||
async clickFilterButton() {
|
||||
log.debug('Clicking filter button');
|
||||
await testSubjects.click('querySubmitButton');
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
}
|
||||
|
||||
async clickClone() {
|
||||
log.debug('Clicking clone');
|
||||
await testSubjects.click('dashboardClone');
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
|
||||
export function DashboardVisualizationProvider({ getService, getPageObjects }) {
|
||||
const log = getService('log');
|
||||
const queryBar = getService('queryBar');
|
||||
const testSubjects = getService('testSubjects');
|
||||
const dashboardAddPanel = getService('dashboardAddPanel');
|
||||
const PageObjects = getPageObjects(['dashboard', 'visualize', 'header', 'discover']);
|
||||
|
@ -25,8 +26,8 @@ export function DashboardVisualizationProvider({ getService, getPageObjects }) {
|
|||
await PageObjects.dashboard.setTimepickerInDataRange();
|
||||
|
||||
if (query) {
|
||||
await PageObjects.dashboard.setQuery(query);
|
||||
await PageObjects.dashboard.clickFilterButton();
|
||||
await queryBar.setQuery(query);
|
||||
await queryBar.submitQuery();
|
||||
}
|
||||
|
||||
if (fields) {
|
||||
|
|
|
@ -1,11 +1,32 @@
|
|||
export function QueryBarProvider({ getService }) {
|
||||
export function QueryBarProvider({ getService, getPageObjects }) {
|
||||
const testSubjects = getService('testSubjects');
|
||||
const retry = getService('retry');
|
||||
const log = getService('log');
|
||||
const PageObjects = getPageObjects(['header']);
|
||||
|
||||
class QueryBar {
|
||||
|
||||
async getQueryString() {
|
||||
const queryInput = await testSubjects.find('queryInput');
|
||||
return await queryInput.getProperty('value');
|
||||
return await testSubjects.getProperty('queryInput', 'value');
|
||||
}
|
||||
|
||||
async setQuery(query) {
|
||||
log.debug(`QueryBar.setQuery(${query})`);
|
||||
// Extra caution used because of flaky test here: https://github.com/elastic/kibana/issues/16978 doesn't seem
|
||||
// to be actually setting the query in the query input based off
|
||||
await retry.try(async () => {
|
||||
await testSubjects.setValue('queryInput', query);
|
||||
const currentQuery = await this.getQueryString();
|
||||
if (currentQuery !== query) {
|
||||
throw new Error(`Failed to set query input to ${query}, instead query is ${currentQuery}`);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
async submitQuery() {
|
||||
log.debug('QueryBar.submitQuery');
|
||||
await testSubjects.click('querySubmitButton');
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue