From 13f6583186a648cf49e83bdafb02bec6dc7607de Mon Sep 17 00:00:00 2001 From: Matthias Wilhelm Date: Wed, 3 Jun 2020 19:35:44 +0200 Subject: [PATCH 1/4] Fix firefox error --- test/functional/apps/context/_size.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/functional/apps/context/_size.js b/test/functional/apps/context/_size.js index 3beb070b50deb..5de72adeb8746 100644 --- a/test/functional/apps/context/_size.js +++ b/test/functional/apps/context/_size.js @@ -30,8 +30,8 @@ export default function ({ getService, getPageObjects }) { const docTable = getService('docTable'); const PageObjects = getPageObjects(['context']); - // FLAKY: https://github.com/elastic/kibana/issues/53888 - describe.skip('context size', function contextSize() { + // eslint-disable-next-line mocha/no-exclusive-tests + describe.only('context size', function contextSize() { before(async function () { await kibanaServer.uiSettings.update({ 'context:defaultSize': `${TEST_DEFAULT_CONTEXT_SIZE}`, From bca223326221b6e2f7ecc6595a06efffc4179055 Mon Sep 17 00:00:00 2001 From: Matthias Wilhelm Date: Wed, 3 Jun 2020 20:56:41 +0200 Subject: [PATCH 2/4] Improve code --- test/functional/apps/context/_size.js | 64 +++++++++++++-------------- 1 file changed, 31 insertions(+), 33 deletions(-) diff --git a/test/functional/apps/context/_size.js b/test/functional/apps/context/_size.js index 5de72adeb8746..ce1f894df9201 100644 --- a/test/functional/apps/context/_size.js +++ b/test/functional/apps/context/_size.js @@ -16,19 +16,17 @@ * specific language governing permissions and limitations * under the License. */ - -import expect from '@kbn/expect'; - const TEST_INDEX_PATTERN = 'logstash-*'; const TEST_ANCHOR_ID = 'AU_x3_BrGFA8no6QjjaI'; -const TEST_DEFAULT_CONTEXT_SIZE = 7; -const TEST_STEP_SIZE = 3; +const TEST_DEFAULT_CONTEXT_SIZE = 2; +const TEST_STEP_SIZE = 2; export default function ({ getService, getPageObjects }) { const kibanaServer = getService('kibanaServer'); const retry = getService('retry'); const docTable = getService('docTable'); const PageObjects = getPageObjects(['context']); + let rowLength = 2 * TEST_DEFAULT_CONTEXT_SIZE + 1; // eslint-disable-next-line mocha/no-exclusive-tests describe.only('context size', function contextSize() { @@ -37,48 +35,48 @@ export default function ({ getService, getPageObjects }) { 'context:defaultSize': `${TEST_DEFAULT_CONTEXT_SIZE}`, 'context:step': `${TEST_STEP_SIZE}`, }); + await PageObjects.context.navigateTo(TEST_INDEX_PATTERN, TEST_ANCHOR_ID); }); it('should default to the `context:defaultSize` setting', async function () { - await PageObjects.context.navigateTo(TEST_INDEX_PATTERN, TEST_ANCHOR_ID); - - await retry.try(async function () { - expect(await docTable.getRowsText()).to.have.length(2 * TEST_DEFAULT_CONTEXT_SIZE + 1); - }); - await retry.try(async function () { - const predecessorCountPicker = await PageObjects.context.getPredecessorCountPicker(); - expect(await predecessorCountPicker.getAttribute('value')).to.equal( - `${TEST_DEFAULT_CONTEXT_SIZE}` - ); - }); - await retry.try(async function () { - const successorCountPicker = await PageObjects.context.getSuccessorCountPicker(); - expect(await successorCountPicker.getAttribute('value')).to.equal( - `${TEST_DEFAULT_CONTEXT_SIZE}` - ); + await retry.waitFor(`number of rows displayed initially is ${rowLength}`, async function () { + const rows = await docTable.getRowsText(); + return rows.length === rowLength; }); + await retry.waitFor( + `predecessor count picker is set to ${TEST_DEFAULT_CONTEXT_SIZE}`, + async function () { + const predecessorCountPicker = await PageObjects.context.getPredecessorCountPicker(); + const value = await predecessorCountPicker.getAttribute('value'); + return value === String(TEST_DEFAULT_CONTEXT_SIZE); + } + ); }); it('should increase according to the `context:step` setting when clicking the `load newer` button', async function () { - await PageObjects.context.navigateTo(TEST_INDEX_PATTERN, TEST_ANCHOR_ID); await PageObjects.context.clickPredecessorLoadMoreButton(); + rowLength += TEST_STEP_SIZE; - await retry.try(async function () { - expect(await docTable.getRowsText()).to.have.length( - 2 * TEST_DEFAULT_CONTEXT_SIZE + TEST_STEP_SIZE + 1 - ); - }); + await retry.waitFor( + `number of rows displayed after clicking load more predecessors is ${rowLength}`, + async function () { + const rows = await docTable.getRowsText(); + return rows.length === rowLength; + } + ); }); it('should increase according to the `context:step` setting when clicking the `load older` button', async function () { - await PageObjects.context.navigateTo(TEST_INDEX_PATTERN, TEST_ANCHOR_ID); await PageObjects.context.clickSuccessorLoadMoreButton(); + rowLength += TEST_STEP_SIZE; - await retry.try(async function () { - expect(await docTable.getRowsText()).to.have.length( - 2 * TEST_DEFAULT_CONTEXT_SIZE + TEST_STEP_SIZE + 1 - ); - }); + await retry.waitFor( + `number of rows displayed after clicking load more successors is ${rowLength}`, + async function () { + const rows = await docTable.getRowsText(); + return rows.length === rowLength; + } + ); }); }); } From 197251b804a6a17510f1518b5bba35b97df06921 Mon Sep 17 00:00:00 2001 From: Matthias Wilhelm Date: Thu, 4 Jun 2020 08:05:38 +0200 Subject: [PATCH 3/4] Improve filters code --- test/functional/apps/context/_filters.js | 34 ++++++++++++------------ test/functional/apps/context/_size.js | 28 ++++++++++--------- 2 files changed, 32 insertions(+), 30 deletions(-) diff --git a/test/functional/apps/context/_filters.js b/test/functional/apps/context/_filters.js index 470ef462b9d9d..780ebb2a0532a 100644 --- a/test/functional/apps/context/_filters.js +++ b/test/functional/apps/context/_filters.js @@ -17,8 +17,6 @@ * under the License. */ -import expect from '@kbn/expect'; - const TEST_INDEX_PATTERN = 'logstash-*'; const TEST_ANCHOR_ID = 'AU_x3_BrGFA8no6QjjaI'; const TEST_ANCHOR_FILTER_FIELD = 'geo.src'; @@ -40,20 +38,19 @@ export default function ({ getService, getPageObjects }) { }); it('inclusive filter should be addable via expanded doc table rows', async function () { - await docTable.toggleRowExpanded({ isAnchorRow: true }); - - await retry.try(async () => { + await retry.waitFor(`filter ${TEST_ANCHOR_FILTER_FIELD} in filterbar`, async () => { + await docTable.toggleRowExpanded({ isAnchorRow: true }); const anchorDetailsRow = await docTable.getAnchorDetailsRow(); await docTable.addInclusiveFilter(anchorDetailsRow, TEST_ANCHOR_FILTER_FIELD); await PageObjects.context.waitUntilContextLoadingHasFinished(); - expect( - await filterBar.hasFilter(TEST_ANCHOR_FILTER_FIELD, TEST_ANCHOR_FILTER_VALUE, true) - ).to.be(true); + + return await filterBar.hasFilter(TEST_ANCHOR_FILTER_FIELD, TEST_ANCHOR_FILTER_VALUE, true); + }); + await retry.waitFor(`filter matching docs in docTable`, async () => { const fields = await docTable.getFields(); - const hasOnlyFilteredRows = fields + return fields .map((row) => row[2]) .every((fieldContent) => fieldContent === TEST_ANCHOR_FILTER_VALUE); - expect(hasOnlyFilteredRows).to.be(true); }); }); @@ -64,26 +61,29 @@ export default function ({ getService, getPageObjects }) { await filterBar.toggleFilterEnabled(TEST_ANCHOR_FILTER_FIELD); await PageObjects.context.waitUntilContextLoadingHasFinished(); - await retry.try(async () => { - expect( - await filterBar.hasFilter(TEST_ANCHOR_FILTER_FIELD, TEST_ANCHOR_FILTER_VALUE, false) - ).to.be(true); + await retry.waitFor(`a disabled filter in filterbar`, async () => { + return await filterBar.hasFilter(TEST_ANCHOR_FILTER_FIELD, TEST_ANCHOR_FILTER_VALUE, false); + }); + + await retry.waitFor('filters are disabled', async () => { const fields = await docTable.getFields(); const hasOnlyFilteredRows = fields .map((row) => row[2]) .every((fieldContent) => fieldContent === TEST_ANCHOR_FILTER_VALUE); - expect(hasOnlyFilteredRows).to.be(false); + return hasOnlyFilteredRows === false; }); + + retry.try(async () => {}); }); it('filter for presence should be addable via expanded doc table rows', async function () { await docTable.toggleRowExpanded({ isAnchorRow: true }); - await retry.try(async () => { + await retry.waitFor('an exists filter in the filterbar', async () => { const anchorDetailsRow = await docTable.getAnchorDetailsRow(); await docTable.addExistsFilter(anchorDetailsRow, TEST_ANCHOR_FILTER_FIELD); await PageObjects.context.waitUntilContextLoadingHasFinished(); - expect(await filterBar.hasFilter(TEST_ANCHOR_FILTER_FIELD, 'exists', true)).to.be(true); + return await filterBar.hasFilter(TEST_ANCHOR_FILTER_FIELD, 'exists', true); }); }); }); diff --git a/test/functional/apps/context/_size.js b/test/functional/apps/context/_size.js index ce1f894df9201..067a23daacb4a 100644 --- a/test/functional/apps/context/_size.js +++ b/test/functional/apps/context/_size.js @@ -26,10 +26,9 @@ export default function ({ getService, getPageObjects }) { const retry = getService('retry'); const docTable = getService('docTable'); const PageObjects = getPageObjects(['context']); - let rowLength = 2 * TEST_DEFAULT_CONTEXT_SIZE + 1; + let expectedRowLength = 2 * TEST_DEFAULT_CONTEXT_SIZE + 1; - // eslint-disable-next-line mocha/no-exclusive-tests - describe.only('context size', function contextSize() { + describe('context size', function contextSize() { before(async function () { await kibanaServer.uiSettings.update({ 'context:defaultSize': `${TEST_DEFAULT_CONTEXT_SIZE}`, @@ -39,10 +38,13 @@ export default function ({ getService, getPageObjects }) { }); it('should default to the `context:defaultSize` setting', async function () { - await retry.waitFor(`number of rows displayed initially is ${rowLength}`, async function () { - const rows = await docTable.getRowsText(); - return rows.length === rowLength; - }); + await retry.waitFor( + `number of rows displayed initially is ${expectedRowLength}`, + async function () { + const rows = await docTable.getRowsText(); + return rows.length === expectedRowLength; + } + ); await retry.waitFor( `predecessor count picker is set to ${TEST_DEFAULT_CONTEXT_SIZE}`, async function () { @@ -55,26 +57,26 @@ export default function ({ getService, getPageObjects }) { it('should increase according to the `context:step` setting when clicking the `load newer` button', async function () { await PageObjects.context.clickPredecessorLoadMoreButton(); - rowLength += TEST_STEP_SIZE; + expectedRowLength += TEST_STEP_SIZE; await retry.waitFor( - `number of rows displayed after clicking load more predecessors is ${rowLength}`, + `number of rows displayed after clicking load more predecessors is ${expectedRowLength}`, async function () { const rows = await docTable.getRowsText(); - return rows.length === rowLength; + return rows.length === expectedRowLength; } ); }); it('should increase according to the `context:step` setting when clicking the `load older` button', async function () { await PageObjects.context.clickSuccessorLoadMoreButton(); - rowLength += TEST_STEP_SIZE; + expectedRowLength += TEST_STEP_SIZE; await retry.waitFor( - `number of rows displayed after clicking load more successors is ${rowLength}`, + `number of rows displayed after clicking load more successors is ${expectedRowLength}`, async function () { const rows = await docTable.getRowsText(); - return rows.length === rowLength; + return rows.length === expectedRowLength; } ); }); From 01b1c88095a0b8e289a448a32882ad6c784a861e Mon Sep 17 00:00:00 2001 From: Matthias Wilhelm Date: Fri, 5 Jun 2020 09:30:55 +0200 Subject: [PATCH 4/4] Remove redundant code --- test/functional/apps/context/_filters.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/test/functional/apps/context/_filters.js b/test/functional/apps/context/_filters.js index 780ebb2a0532a..66888d441954e 100644 --- a/test/functional/apps/context/_filters.js +++ b/test/functional/apps/context/_filters.js @@ -72,8 +72,6 @@ export default function ({ getService, getPageObjects }) { .every((fieldContent) => fieldContent === TEST_ANCHOR_FILTER_VALUE); return hasOnlyFilteredRows === false; }); - - retry.try(async () => {}); }); it('filter for presence should be addable via expanded doc table rows', async function () {