mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 17:28:26 -04:00
Address saved_object_tagging flakiness (#170114)
## Summary Fixes: * https://github.com/elastic/kibana/issues/89958 * https://github.com/elastic/kibana/issues/150249 * https://github.com/elastic/kibana/issues/167812 * https://github.com/elastic/kibana/issues/167560 Uses same strategy as Stratoula's [PR](https://github.com/elastic/kibana/pull/167599). It also adds a "click" step to make sure the form control has the focus (as we do with the other form controls on the same `fillForm` method). The tests above fail cause the logic fails to clean the default tag colour before entering a new one, resulting in:  Also fixes: * https://github.com/elastic/kibana/issues/163817 [This one](https://buildkite.com/elastic/kibana-on-merge/builds/36347#018b0068-ec42-47de-804d-b63a42b5b3e2) is looks like a lost click on the Delete modal confirm button (modal still present after 30s): 
This commit is contained in:
parent
d7ab75ffc5
commit
036918d017
9 changed files with 65 additions and 22 deletions
|
@ -387,6 +387,12 @@ export class CommonPageObject extends FtrService {
|
|||
this.log.debug('Clicking modal confirm');
|
||||
// make sure this data-test-subj 'confirmModalTitleText' exists because we're going to wait for it to be gone later
|
||||
await this.testSubjects.exists('confirmModalTitleText');
|
||||
// make sure button is enabled before clicking it
|
||||
// (and conveniently give UI enough time to bind a handler to it)
|
||||
const isEnabled = await this.testSubjects.isEnabled('confirmModalConfirmButton');
|
||||
if (!isEnabled) {
|
||||
throw new Error('Modal confirm button is not enabled');
|
||||
}
|
||||
await this.testSubjects.click('confirmModalConfirmButton');
|
||||
if (ensureHidden) {
|
||||
await this.ensureModalOverlayHidden();
|
||||
|
|
|
@ -65,6 +65,7 @@ class TagModal extends FtrService {
|
|||
});
|
||||
}
|
||||
if (fields.color !== undefined) {
|
||||
await this.testSubjects.click('~createModalField-color');
|
||||
await this.testSubjects.setValue('~createModalField-color', fields.color, {
|
||||
clearWithKeyboard,
|
||||
});
|
||||
|
|
|
@ -27,8 +27,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
);
|
||||
});
|
||||
|
||||
// FLAKY: https://github.com/elastic/kibana/issues/163817
|
||||
describe.skip('bulk delete', () => {
|
||||
describe('bulk delete', () => {
|
||||
it('deletes multiple tags', async () => {
|
||||
const initialDisplayedTags = await tagManagementPage.getDisplayedTagNames();
|
||||
await tagManagementPage.selectTagByName('tag-1');
|
||||
|
|
|
@ -15,8 +15,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
|
||||
const tagManagementPage = PageObjects.tagManagement;
|
||||
|
||||
// FLAKY: https://github.com/elastic/kibana/issues/167812
|
||||
describe.skip('create tag', () => {
|
||||
describe('create tag', () => {
|
||||
let tagModal: typeof tagManagementPage['tagModal'];
|
||||
|
||||
before(async () => {
|
||||
|
@ -45,7 +44,10 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
description: 'I just added this tag',
|
||||
color: '#FF00CC',
|
||||
},
|
||||
{ submit: true }
|
||||
{
|
||||
submit: true,
|
||||
clearWithKeyboard: true,
|
||||
}
|
||||
);
|
||||
await tagModal.waitUntilClosed();
|
||||
await tagManagementPage.waitUntilTableIsLoaded();
|
||||
|
@ -65,7 +67,10 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
description: 'The name will fails validation',
|
||||
color: '#FF00CC',
|
||||
},
|
||||
{ submit: true }
|
||||
{
|
||||
submit: true,
|
||||
clearWithKeyboard: true,
|
||||
}
|
||||
);
|
||||
|
||||
expect(await tagModal.isOpened()).to.be(true);
|
||||
|
@ -84,7 +89,10 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
description: 'The name will fails validation',
|
||||
color: '#FF00CC',
|
||||
},
|
||||
{ submit: true }
|
||||
{
|
||||
submit: true,
|
||||
clearWithKeyboard: true,
|
||||
}
|
||||
);
|
||||
|
||||
expect(await tagModal.isOpened()).to.be(true);
|
||||
|
@ -94,7 +102,10 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
{
|
||||
name: 'valid name',
|
||||
},
|
||||
{ submit: true }
|
||||
{
|
||||
submit: true,
|
||||
clearWithKeyboard: true,
|
||||
}
|
||||
);
|
||||
|
||||
await tagModal.waitUntilClosed();
|
||||
|
@ -114,7 +125,10 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
description: 'I will not add this tag',
|
||||
color: '#FF00CC',
|
||||
},
|
||||
{ submit: false }
|
||||
{
|
||||
submit: false,
|
||||
clearWithKeyboard: true,
|
||||
}
|
||||
);
|
||||
await tagModal.clickCancel();
|
||||
await tagModal.waitUntilClosed();
|
||||
|
|
|
@ -118,6 +118,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
},
|
||||
{
|
||||
submit: true,
|
||||
clearWithKeyboard: true,
|
||||
}
|
||||
);
|
||||
|
||||
|
|
|
@ -52,8 +52,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
});
|
||||
};
|
||||
|
||||
// Failing: See https://github.com/elastic/kibana/issues/150249
|
||||
describe.skip('discover integration', () => {
|
||||
describe('discover integration', () => {
|
||||
before(async () => {
|
||||
await kibanaServer.importExport.load(
|
||||
'x-pack/test/saved_object_tagging/common/fixtures/es_archiver/discover/data.json'
|
||||
|
@ -143,6 +142,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
},
|
||||
{
|
||||
submit: true,
|
||||
clearWithKeyboard: true,
|
||||
}
|
||||
);
|
||||
expect(await tagModal.isOpened()).to.be(false);
|
||||
|
|
|
@ -15,8 +15,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
|
||||
const tagManagementPage = PageObjects.tagManagement;
|
||||
|
||||
// Failing: See https://github.com/elastic/kibana/issues/167560
|
||||
describe.skip('edit tag', () => {
|
||||
describe('edit tag', () => {
|
||||
let tagModal: typeof tagManagementPage['tagModal'];
|
||||
|
||||
before(async () => {
|
||||
|
@ -56,7 +55,10 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
description: 'This was edited',
|
||||
color: '#FFCC00',
|
||||
},
|
||||
{ submit: true }
|
||||
{
|
||||
submit: true,
|
||||
clearWithKeyboard: true,
|
||||
}
|
||||
);
|
||||
await tagModal.waitUntilClosed();
|
||||
await tagManagementPage.waitUntilTableIsLoaded();
|
||||
|
@ -79,7 +81,10 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
{
|
||||
name: 'a',
|
||||
},
|
||||
{ submit: true }
|
||||
{
|
||||
submit: true,
|
||||
clearWithKeyboard: true,
|
||||
}
|
||||
);
|
||||
|
||||
expect(await tagModal.isOpened()).to.be(true);
|
||||
|
@ -98,7 +103,10 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
description: 'edited description',
|
||||
color: '#FF00CC',
|
||||
},
|
||||
{ submit: true }
|
||||
{
|
||||
submit: true,
|
||||
clearWithKeyboard: true,
|
||||
}
|
||||
);
|
||||
|
||||
expect(await tagModal.isOpened()).to.be(true);
|
||||
|
@ -108,7 +116,10 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
{
|
||||
name: 'edited name',
|
||||
},
|
||||
{ submit: true }
|
||||
{
|
||||
submit: true,
|
||||
clearWithKeyboard: true,
|
||||
}
|
||||
);
|
||||
|
||||
await tagModal.waitUntilClosed();
|
||||
|
@ -130,7 +141,10 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
description: 'I will not add this tag',
|
||||
color: '#FF00CC',
|
||||
},
|
||||
{ submit: false }
|
||||
{
|
||||
submit: false,
|
||||
clearWithKeyboard: true,
|
||||
}
|
||||
);
|
||||
await tagModal.clickCancel();
|
||||
await tagModal.waitUntilClosed();
|
||||
|
@ -153,13 +167,16 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
it('should disable save button if no property is changed', async () => {
|
||||
await tagModal.openEdit('tag-3');
|
||||
|
||||
await tagModal.fillForm(tag3Unmodified, { submit: false });
|
||||
await tagModal.fillForm(tag3Unmodified, { submit: false, clearWithKeyboard: true });
|
||||
expect(await tagModal.isConfirmDisabled()).to.be(true);
|
||||
});
|
||||
it('should enable save button if name is changed', async () => {
|
||||
await tagModal.openEdit('tag-3');
|
||||
|
||||
await tagModal.fillForm({ ...tag3Unmodified, name: 'changed name' }, { submit: false });
|
||||
await tagModal.fillForm(
|
||||
{ ...tag3Unmodified, name: 'changed name' },
|
||||
{ submit: false, clearWithKeyboard: true }
|
||||
);
|
||||
expect(await tagModal.isConfirmDisabled()).to.be(false);
|
||||
});
|
||||
it('should enable save button if description is changed', async () => {
|
||||
|
@ -167,14 +184,17 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
|
||||
await tagModal.fillForm(
|
||||
{ ...tag3Unmodified, description: 'changed description' },
|
||||
{ submit: false }
|
||||
{ submit: false, clearWithKeyboard: true }
|
||||
);
|
||||
expect(await tagModal.isConfirmDisabled()).to.be(false);
|
||||
});
|
||||
it('should enable save button if color is changed', async () => {
|
||||
await tagModal.openEdit('tag-3');
|
||||
|
||||
await tagModal.fillForm({ ...tag3Unmodified, color: '#FF0000' }, { submit: false });
|
||||
await tagModal.fillForm(
|
||||
{ ...tag3Unmodified, color: '#FF0000' },
|
||||
{ submit: false, clearWithKeyboard: true }
|
||||
);
|
||||
expect(await tagModal.isConfirmDisabled()).to.be(false);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -98,6 +98,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
},
|
||||
{
|
||||
submit: true,
|
||||
clearWithKeyboard: true,
|
||||
}
|
||||
);
|
||||
|
||||
|
|
|
@ -173,6 +173,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
},
|
||||
{
|
||||
submit: true,
|
||||
clearWithKeyboard: true,
|
||||
}
|
||||
);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue