Skip to content

Commit e2ffe13

Browse files
committed
Dismiss end-of-life modal conditionally on the connection name
1 parent ec9fa6b commit e2ffe13

File tree

3 files changed

+28
-1
lines changed

3 files changed

+28
-1
lines changed

packages/compass-e2e-tests/helpers/commands/connect.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import * as Selectors from '../selectors';
99
import Debug from 'debug';
1010
import {
1111
DEFAULT_CONNECTION_NAMES,
12+
isEndOfLifeConnection,
1213
isTestingAtlasCloudExternal,
1314
isTestingAtlasCloudSandbox,
1415
} from '../test-runner-context';
@@ -33,6 +34,7 @@ export async function getConnectFormConnectionString(
3334
type ConnectionResultOptions = {
3435
connectionStatus?: 'success' | 'failure' | 'either';
3536
timeout?: number;
37+
dismissEndOfLifeModal?: boolean;
3638
};
3739

3840
type ConnectOptions = ConnectionResultOptions & {
@@ -130,7 +132,11 @@ export async function doConnect(
130132
export async function waitForConnectionResult(
131133
browser: CompassBrowser,
132134
connectionName: string,
133-
{ connectionStatus = 'success', timeout }: ConnectionResultOptions = {}
135+
{
136+
connectionStatus = 'success',
137+
timeout,
138+
dismissEndOfLifeModal = isEndOfLifeConnection(connectionName),
139+
}: ConnectionResultOptions = {}
134140
): Promise<string | undefined> {
135141
const waitOptions = typeof timeout !== 'undefined' ? { timeout } : undefined;
136142

@@ -145,6 +151,14 @@ export async function waitForConnectionResult(
145151
await browser.setValueVisible(Selectors.SidebarFilterInput, '');
146152
}
147153

154+
if (dismissEndOfLifeModal) {
155+
await browser.$(Selectors.EndOfLifeConnectionModal).waitForDisplayed();
156+
await browser.clickVisible(Selectors.EndOfLifeConnectionModalConfirmButton);
157+
await browser
158+
.$(Selectors.EndOfLifeConnectionModal)
159+
.waitForDisplayed({ reverse: true });
160+
}
161+
148162
if (connectionStatus === 'either') {
149163
// For the very rare cases where we don't care whether it fails or succeeds.
150164
// Usually because the exact result is a race condition.

packages/compass-e2e-tests/helpers/test-runner-context.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import {
22
getConnectionTitle,
33
type ConnectionInfo,
44
} from '@mongodb-js/connection-info';
5+
import { isEndOfLifeVersion } from '@mongodb-js/compass-connections';
56
import type { MongoClusterOptions } from 'mongodb-runner';
67
import yargs from 'yargs';
78
import type { Argv, CamelCase } from 'yargs';
@@ -331,6 +332,17 @@ export function assertTestingAtlasCloudSandbox(
331332
}
332333
}
333334

335+
export function isEndOfLifeConnection(connectionName: string) {
336+
const connectionIndex = DEFAULT_CONNECTION_NAMES.indexOf(connectionName);
337+
const serverInfo = DEFAULT_CONNECTIONS_SERVER_INFO[connectionIndex];
338+
if (!serverInfo) {
339+
throw new Error(
340+
`Unable to find server info for connection named '${connectionName}'`
341+
);
342+
}
343+
return isEndOfLifeVersion(serverInfo.version);
344+
}
345+
334346
const contextForPrinting = Object.fromEntries(
335347
Object.entries(context).map(([k, v]) => {
336348
return [k, /password/i.test(k) ? '<secret>' : v];

packages/compass-e2e-tests/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
},
3333
"devDependencies": {
3434
"@electron/rebuild": "^3.7.2",
35+
"@mongodb-js/compass-connections": "^1.56.0",
3536
"@mongodb-js/compass-test-server": "^0.3.8",
3637
"@mongodb-js/connection-info": "^0.14.0",
3738
"@mongodb-js/eslint-config-compass": "^1.3.8",

0 commit comments

Comments
 (0)