Skip to content

Commit 1035cb1

Browse files
authored
chore(e2e): un-skip import/export connections tests for multiple connections COMPASS-8007 (#5970)
* un-skip import/export connections tests for multiple connections * shorten labels
1 parent 4a16c56 commit 1035cb1

File tree

7 files changed

+60
-45
lines changed

7 files changed

+60
-45
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export * from './save-favorite';
4343
export * from './save-connection-string-as-favorite';
4444
export * from './select-connection';
4545
export * from './select-connection-menu-item';
46-
export * from './select-favorites-menu-item';
46+
export * from './select-connections-menu-item';
4747
export * from './open-settings-modal';
4848
export * from './wait-for-connection-result';
4949
export * from './screenshot';
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import { TEST_MULTIPLE_CONNECTIONS } from '../compass';
2+
import type { CompassBrowser } from '../compass-browser';
3+
import * as Selectors from '../selectors';
4+
5+
export async function selectConnectionsMenuItem(
6+
browser: CompassBrowser,
7+
itemSelector: string
8+
) {
9+
const Sidebar = TEST_MULTIPLE_CONNECTIONS
10+
? Selectors.Multiple
11+
: Selectors.Single;
12+
13+
if (!TEST_MULTIPLE_CONNECTIONS) {
14+
// In the single connection world the button only appears on hover
15+
16+
const selector = Selectors.Single.FavoriteConnectionsHeader;
17+
await browser.$(selector).waitForDisplayed();
18+
19+
// workaround for weirdness in the ItemActionControls menu opener icon
20+
await browser.clickVisible(Selectors.Single.ConnectionsTitle);
21+
22+
// Hover over an arbitrary other element to ensure that the second hover will
23+
// actually be a fresh one. This otherwise breaks if this function is called
24+
// twice in a row.
25+
await browser.hover(`*:not(${selector}, ${selector} *)`);
26+
await browser.hover(selector);
27+
}
28+
29+
await browser.clickVisible(Sidebar.ConnectionsMenuButton);
30+
await browser.$(Sidebar.ConnectionsMenu).waitForDisplayed();
31+
await browser.clickVisible(itemSelector);
32+
}

packages/compass-e2e-tests/helpers/commands/select-favorites-menu-item.ts

Lines changed: 0 additions & 25 deletions
This file was deleted.

packages/compass-e2e-tests/helpers/selectors.ts

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -229,14 +229,19 @@ export const Single = {
229229
SidebarNewConnectionButton: '[data-testid="new-connection-button"]',
230230
FavoriteConnections: '[data-testid="favorite-connection"]',
231231
FavoriteConnectionsHeader: '[data-testid="favorite-connections-list-header"]',
232-
FavoriteConnectionsMenuButton: `[data-testid="favorite-connections-list-header"] button[title="Show actions"]`,
233-
FavoriteConnectionsMenu: '[data-testid="favorites-menu"]',
234232
ConnectionMenu: '[data-testid="connection-menu"]',
235233
CopyConnectionStringItem: `[data-testid="connection-menu-copy-connection-string-action"]`,
236234
EditConnectionItem: `[data-testid="connection-menu-edit-connection-action"]`,
237235
DuplicateConnectionItem: `[data-testid="connection-menu-duplicate-connection-action"]`,
238236
RemoveConnectionItem: `[data-testid="connection-menu-remove-connection-action"]`,
239237
RecentConnections: '[data-testid="recent-connection"]',
238+
239+
ConnectionsMenuButton: `[data-testid="favorite-connections-list-header"] button[title="Show actions"]`,
240+
ConnectionsMenu: '[data-testid="favorites-menu"]',
241+
ExportConnectionsModalOpen:
242+
'[data-testid="favorites-menu-export-saved-connections-action"]',
243+
ImportConnectionsModalOpen:
244+
'[data-testid="favorites-menu-import-saved-connections-action"]',
240245
};
241246

242247
// Multiple Connections sidebar
@@ -264,6 +269,14 @@ export const Multiple = {
264269
'[data-testid="sidebar-navigation-item-actions-connection-toggle-favorite-action"]',
265270
DuplicateConnectionItem: `[data-testid="sidebar-navigation-item-actions-duplicate-connection-action"]`,
266271
RemoveConnectionItem: `[data-testid="sidebar-navigation-item-actions-remove-connection-action"]`,
272+
273+
ConnectionsMenuButton:
274+
'[data-testid="connections-list-title-actions-show-actions"]',
275+
ConnectionsMenu: '[data-testid="connections-list-title-actions"]',
276+
ExportConnectionsModalOpen:
277+
'[data-testid="connections-list-title-actions-export-saved-connections-action"]',
278+
ImportConnectionsModalOpen:
279+
'[data-testid="connections-list-title-actions-import-saved-connections-action"]',
267280
};
268281

269282
// Rename Collection Modal
@@ -646,8 +659,6 @@ export const BulkDeleteSuccessToast = `[data-testid="toast-bulk-delete-toast"]`;
646659
export const BulkDeleteSuccessToastDismissButton = `[data-testid="toast-bulk-delete-toast"] [data-testid="lg-toast-dismiss-button"]`;
647660

648661
// Connection import/export modals
649-
export const ExportConnectionsModalOpen =
650-
'[data-testid="favorites-menu-export-saved-connections-action"]';
651662
export const ExportConnectionsModal = '[data-testid="connection-export-modal"]';
652663
export const ExportConnectionsSubmit = `${ExportConnectionsModal} [data-testid="submit-button"]`;
653664
export const ExportConnectionsPassphrase =
@@ -656,8 +667,6 @@ export const ExportConnectionsRemoveSecrets =
656667
'[data-testid="connection-export-remove-secrets"]';
657668
export const ExportConnectionsSucceededToast =
658669
'[data-testid="toast-compass-connection-import-export--export-succeeded"]';
659-
export const ImportConnectionsModalOpen =
660-
'[data-testid="favorites-menu-import-saved-connections-action"]';
661670
export const ImportConnectionsModal = '[data-testid="connection-import-modal"]';
662671
export const ImportConnectionsPassphrase =
663672
'[data-testid="conn-import-export-passphrase-input"]';

packages/compass-e2e-tests/tests/import-export-connections.test.ts

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,6 @@ describe('Connection Import / Export', function () {
4949

5050
before(function () {
5151
skipForWeb(this, 'export connections not available in compass-web');
52-
53-
// TODO(COMPASS-8007): port this test file to multiple connections
54-
if (TEST_MULTIPLE_CONNECTIONS) {
55-
this.skip();
56-
}
5752
});
5853

5954
beforeEach(async function () {
@@ -309,6 +304,10 @@ describe('Connection Import / Export', function () {
309304

310305
for (const variant of variants) {
311306
it(`supports exporting and importing connections in ${variant} mode`, async function () {
307+
const Sidebar = TEST_MULTIPLE_CONNECTIONS
308+
? Selectors.Multiple
309+
: Selectors.Single;
310+
312311
{
313312
// Make sure file exists so that the file picker works. We could also do work
314313
// similar to what we do for collection data export, where we add special listeners
@@ -320,8 +319,8 @@ describe('Connection Import / Export', function () {
320319

321320
// Open export modal
322321
{
323-
await browser.selectFavoritesMenuItem(
324-
Selectors.ExportConnectionsModalOpen
322+
await browser.selectConnectionsMenuItem(
323+
Sidebar.ExportConnectionsModalOpen
325324
);
326325
await browser.$(Selectors.ExportConnectionsModal).waitForDisplayed();
327326
}
@@ -382,8 +381,8 @@ describe('Connection Import / Export', function () {
382381

383382
// Open import modal
384383
{
385-
await browser.selectFavoritesMenuItem(
386-
Selectors.ImportConnectionsModalOpen
384+
await browser.selectConnectionsMenuItem(
385+
Sidebar.ImportConnectionsModalOpen
387386
);
388387
await browser.$(Selectors.ImportConnectionsModal).waitForDisplayed();
389388
}

packages/compass-sidebar/src/components/multiple-connections/connections-navigation.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,12 +236,12 @@ const ConnectionsNavigation: React.FC<ConnectionsNavigationProps> = ({
236236
actions.push(
237237
{
238238
action: 'import-saved-connections',
239-
label: 'Import saved connections',
239+
label: 'Import connections',
240240
icon: 'Download',
241241
},
242242
{
243243
action: 'export-saved-connections',
244-
label: 'Export saved connections',
244+
label: 'Export connections',
245245
icon: 'Export',
246246
}
247247
);

packages/compass-sidebar/src/components/multiple-connections/sidebar.spec.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -217,8 +217,8 @@ describe('Multiple Connections Sidebar Component', function () {
217217
expect(screen.getByLabelText('Show actions')).to.be.visible;
218218

219219
userEvent.click(screen.getByLabelText('Show actions'));
220-
expect(screen.getByText('Import saved connections')).to.be.visible;
221-
expect(screen.getByText('Export saved connections')).to.be.visible;
220+
expect(screen.getByText('Import connections')).to.be.visible;
221+
expect(screen.getByText('Export connections')).to.be.visible;
222222
});
223223
}
224224
);

0 commit comments

Comments
 (0)