Skip to content

Commit 91ec641

Browse files
authored
chore: screenshot the moment before clicking the add database button in the sidebar COMPASS-7086 (#4904)
* screenshot the moment before clicking the add database button in the sidebar * attempt to fix another flake while at it * wait for the button to become enabled
1 parent 4d0409b commit 91ec641

File tree

3 files changed

+28
-10
lines changed

3 files changed

+28
-10
lines changed

packages/compass-e2e-tests/tests/collection-documents-tab.test.ts

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import type { Telemetry } from '../helpers/telemetry';
66
import { beforeTests, afterTests, afterTest } from '../helpers/compass';
77
import type { Compass } from '../helpers/compass';
88
import * as Selectors from '../helpers/selectors';
9-
import type { Element } from 'webdriverio';
9+
import type { Element, ElementArray } from 'webdriverio';
1010
import { createNumbersCollection } from '../helpers/insert-data';
1111

1212
const { expect } = chai;
@@ -16,19 +16,31 @@ interface RecentQuery {
1616
}
1717

1818
async function getRecentQueries(
19-
browser: CompassBrowser
19+
browser: CompassBrowser,
20+
expectQueries = false
2021
): Promise<RecentQuery[]> {
2122
const history = await browser.$(Selectors.QueryBarHistory);
2223
if (!(await history.isDisplayed())) {
2324
await browser.clickVisible(Selectors.QueryBarHistoryButton);
2425
await history.waitForDisplayed();
2526
}
2627

27-
const queryTags = await browser.$$(
28-
'[data-testid="query-history-query-attributes"]'
29-
);
28+
let queryTags;
29+
await browser.waitUntil(async () => {
30+
queryTags = await browser.$$(
31+
'[data-testid="query-history-query-attributes"]'
32+
);
33+
// Usually we expect to find some recents and the most common failure is
34+
// that we read out the queries before they are rendered.
35+
if (expectQueries) {
36+
// Keep going until we find something or timeout if we never do
37+
return queryTags.length > 0;
38+
}
39+
return true;
40+
});
41+
3042
return Promise.all(
31-
queryTags.map(async (queryTag) => {
43+
(queryTags as unknown as ElementArray).map(async (queryTag) => {
3244
const attributeTags = await queryTag.$$(
3345
'[data-testid="query-history-query-attribute"]'
3446
);
@@ -138,7 +150,7 @@ describe('Collection documents tab', function () {
138150
used_regex: false,
139151
});
140152

141-
const queries = await getRecentQueries(browser);
153+
const queries = await getRecentQueries(browser, true);
142154
expect(queries).to.deep.include.members([{ Filter: '{\n i: 5\n}' }]);
143155
});
144156

@@ -168,7 +180,7 @@ describe('Collection documents tab', function () {
168180
used_regex: false,
169181
});
170182

171-
const queries = await getRecentQueries(browser);
183+
const queries = await getRecentQueries(browser, true);
172184
expect(queries).to.deep.include.members([
173185
{
174186
Filter: '{\n i: {\n $gt: 5\n }\n}',
@@ -215,7 +227,7 @@ describe('Collection documents tab', function () {
215227
const displayText = await documentListActionBarMessageElement.getText();
216228
expect(displayText).to.equal('1 – 1 of 1');
217229

218-
const queries = await getRecentQueries(browser);
230+
const queries = await getRecentQueries(browser, true);
219231
expect(queries).to.deep.include.members([
220232
{
221233
Filter: "{\n $where: 'function() { return sleep(10000) || true; }'\n}",

packages/compass-e2e-tests/tests/collection-import.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1177,6 +1177,10 @@ describe('Collection import', function () {
11771177
const importModal = await browser.$(Selectors.ImportModal);
11781178
await importModal.waitForDisplayed();
11791179

1180+
// Wait for the import button to become available because detect can take
1181+
// a while
1182+
await browser.$(Selectors.ImportConfirm).waitForEnabled();
1183+
11801184
// Confirm import.
11811185
await browser.clickVisible(Selectors.ImportConfirm);
11821186

packages/compass-e2e-tests/tests/instance-sidebar.test.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,9 @@ describe('Instance sidebar', function () {
121121
const collectionName = 'my-collection';
122122

123123
// open the create database modal from the sidebar
124-
await browser.clickVisible(Selectors.SidebarCreateDatabaseButton);
124+
await browser.clickVisible(Selectors.SidebarCreateDatabaseButton, {
125+
screenshot: 'before-can-create-a-database-and-drop-it-click.png',
126+
});
125127

126128
await browser.addDatabase(dbName, collectionName);
127129

0 commit comments

Comments
 (0)