Skip to content

Commit b3eefb9

Browse files
authored
SO Tagging: fix flaky test and re-enable it (#82930)
* fix flaky test and re-enable it * wait for table to load before to perform operations * move everything out of ciGroup2 for flaky test runner * add debug block for flaky runner * use correct vis name * remove test sync * Revert "move everything out of ciGroup2 for flaky test runner" This reverts commit db86c3b
1 parent cc0d6c1 commit b3eefb9

File tree

3 files changed

+41
-3
lines changed

3 files changed

+41
-3
lines changed

test/functional/services/listing_table.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,20 @@ export function ListingTableProvider({ getService, getPageObjects }: FtrProvider
6262
return visualizationNames;
6363
}
6464

65+
public async waitUntilTableIsLoaded() {
66+
return retry.try(async () => {
67+
const isLoaded = await find.existsByDisplayedByCssSelector(
68+
'[data-test-subj="itemsInMemTable"]:not(.euiBasicTable-loading)'
69+
);
70+
71+
if (isLoaded) {
72+
return true;
73+
} else {
74+
throw new Error('Waiting');
75+
}
76+
});
77+
}
78+
6579
/**
6680
* Navigates through all pages on Landing page and returns array of items names
6781
*/

x-pack/test/saved_object_tagging/functional/tests/dashboard_integration.ts

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
1313
const listingTable = getService('listingTable');
1414
const testSubjects = getService('testSubjects');
1515
const find = getService('find');
16-
const PageObjects = getPageObjects(['dashboard', 'tagManagement', 'common']);
16+
const PageObjects = getPageObjects(['dashboard', 'tagManagement', 'common', 'header']);
1717

1818
/**
1919
* Select tags in the searchbar's tag filter.
@@ -31,6 +31,8 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
3131
// click elsewhere to close the filter dropdown
3232
const searchFilter = await find.byCssSelector('main .euiFieldSearch');
3333
await searchFilter.click();
34+
// wait until the table refreshes
35+
await listingTable.waitUntilTableIsLoaded();
3436
};
3537

3638
describe('dashboard integration', () => {
@@ -47,6 +49,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
4749
beforeEach(async () => {
4850
await PageObjects.common.navigateToApp('dashboard');
4951
await PageObjects.dashboard.gotoDashboardLandingPage();
52+
await listingTable.waitUntilTableIsLoaded();
5053
});
5154

5255
it('allows to manually type tag filter query', async () => {
@@ -96,6 +99,8 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
9699
});
97100

98101
await PageObjects.dashboard.gotoDashboardLandingPage();
102+
await listingTable.waitUntilTableIsLoaded();
103+
99104
await selectFilterTags('tag-1');
100105
const itemNames = await listingTable.getAllItemsNames();
101106
expect(itemNames).to.contain('my-new-dashboard');
@@ -128,8 +133,11 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
128133
expect(await tagModal.isOpened()).to.be(false);
129134

130135
await PageObjects.dashboard.clickSave();
136+
await PageObjects.common.waitForSaveModalToClose();
131137

132138
await PageObjects.dashboard.gotoDashboardLandingPage();
139+
await listingTable.waitUntilTableIsLoaded();
140+
133141
await selectFilterTags('my-new-tag');
134142
const itemNames = await listingTable.getAllItemsNames();
135143
expect(itemNames).to.contain('dashboard-with-new-tag');
@@ -140,6 +148,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
140148
beforeEach(async () => {
141149
await PageObjects.common.navigateToApp('dashboard');
142150
await PageObjects.dashboard.gotoDashboardLandingPage();
151+
await listingTable.waitUntilTableIsLoaded();
143152
});
144153

145154
it('allows to select tags for an existing dashboard', async () => {
@@ -152,6 +161,8 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
152161
});
153162

154163
await PageObjects.dashboard.gotoDashboardLandingPage();
164+
await listingTable.waitUntilTableIsLoaded();
165+
155166
await selectFilterTags('tag-3');
156167
const itemNames = await listingTable.getAllItemsNames();
157168
expect(itemNames).to.contain('dashboard 4 with real data (tag-1)');

x-pack/test/saved_object_tagging/functional/tests/visualize_integration.ts

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
1313
const listingTable = getService('listingTable');
1414
const testSubjects = getService('testSubjects');
1515
const find = getService('find');
16-
const PageObjects = getPageObjects(['visualize', 'tagManagement', 'visEditor']);
16+
const PageObjects = getPageObjects(['visualize', 'tagManagement', 'visEditor', 'common']);
1717

1818
/**
1919
* Select tags in the searchbar's tag filter.
@@ -31,6 +31,8 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
3131
// click elsewhere to close the filter dropdown
3232
const searchFilter = await find.byCssSelector('main .euiFieldSearch');
3333
await searchFilter.click();
34+
// wait until the table refreshes
35+
await listingTable.waitUntilTableIsLoaded();
3436
};
3537

3638
const selectSavedObjectTags = async (...tagNames: string[]) => {
@@ -56,6 +58,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
5658
describe('listing', () => {
5759
beforeEach(async () => {
5860
await PageObjects.visualize.gotoVisualizationLandingPage();
61+
await listingTable.waitUntilTableIsLoaded();
5962
});
6063

6164
it('allows to manually type tag filter query', async () => {
@@ -83,7 +86,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
8386
});
8487

8588
describe('creating', () => {
86-
it.skip('allows to assign tags to the new visualization', async () => {
89+
it('allows to assign tags to the new visualization', async () => {
8790
await PageObjects.visualize.navigateToNewVisualization();
8891

8992
await PageObjects.visualize.clickMarkdownWidget();
@@ -95,7 +98,10 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
9598
await selectSavedObjectTags('tag-1');
9699

97100
await testSubjects.click('confirmSaveSavedObjectButton');
101+
await PageObjects.common.waitForSaveModalToClose();
102+
98103
await PageObjects.visualize.gotoVisualizationLandingPage();
104+
await listingTable.waitUntilTableIsLoaded();
99105

100106
await selectFilterTags('tag-1');
101107
const itemNames = await listingTable.getAllItemsNames();
@@ -133,7 +139,10 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
133139
expect(await tagModal.isOpened()).to.be(false);
134140

135141
await testSubjects.click('confirmSaveSavedObjectButton');
142+
await PageObjects.common.waitForSaveModalToClose();
143+
136144
await PageObjects.visualize.gotoVisualizationLandingPage();
145+
await listingTable.waitUntilTableIsLoaded();
137146

138147
await selectFilterTags('my-new-tag');
139148
const itemNames = await listingTable.getAllItemsNames();
@@ -144,6 +153,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
144153
describe('editing', () => {
145154
beforeEach(async () => {
146155
await PageObjects.visualize.gotoVisualizationLandingPage();
156+
await listingTable.waitUntilTableIsLoaded();
147157
});
148158

149159
it('allows to assign tags to an existing visualization', async () => {
@@ -153,7 +163,10 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
153163
await selectSavedObjectTags('tag-2');
154164

155165
await testSubjects.click('confirmSaveSavedObjectButton');
166+
await PageObjects.common.waitForSaveModalToClose();
167+
156168
await PageObjects.visualize.gotoVisualizationLandingPage();
169+
await listingTable.waitUntilTableIsLoaded();
157170

158171
await selectFilterTags('tag-2');
159172
const itemNames = await listingTable.getAllItemsNames();

0 commit comments

Comments
 (0)