From d9faef62c5f5b21b93f8a04cea4fe613f814b4a4 Mon Sep 17 00:00:00 2001 From: Le Roux Bodenstein Date: Tue, 9 Jan 2024 16:34:42 +0000 Subject: [PATCH 01/38] wip --- packages/compass-e2e-tests/helpers/compass.ts | 45 ++++++++++++++++--- 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/packages/compass-e2e-tests/helpers/compass.ts b/packages/compass-e2e-tests/helpers/compass.ts index 2092d0ac583..50e7183ed1e 100644 --- a/packages/compass-e2e-tests/helpers/compass.ts +++ b/packages/compass-e2e-tests/helpers/compass.ts @@ -122,9 +122,16 @@ interface RenderLogEntry { args: unknown; } +interface CompassOptions { + mode: 'electron' | 'web'; + writeCoverage?: boolean; + needsCloseWelcomeModal?: boolean; +} + export class Compass { browser: CompassBrowser; - testPackagedApp: boolean; + mode: 'electron' | 'web'; + writeCoverage: boolean; needsCloseWelcomeModal: boolean; renderLogs: RenderLogEntry[]; logs: LogEntry[]; @@ -134,10 +141,15 @@ export class Compass { constructor( browser: CompassBrowser, - { testPackagedApp = false, needsCloseWelcomeModal = false } = {} + { + mode, + writeCoverage = false, + needsCloseWelcomeModal = false, + }: CompassOptions ) { this.browser = browser; - this.testPackagedApp = testPackagedApp; + this.mode = mode; + this.writeCoverage = writeCoverage; this.needsCloseWelcomeModal = needsCloseWelcomeModal; this.logs = []; this.renderLogs = []; @@ -342,7 +354,7 @@ export class Compass { debug(`Writing application render process log to ${renderLogPath}`); await fs.writeFile(renderLogPath, JSON.stringify(this.renderLogs, null, 2)); - if (!this.testPackagedApp) { + if (this.writeCoverage) { // coverage debug('Writing coverage'); const coverage: Coverage = await this.browser.executeAsync((done) => { @@ -393,6 +405,7 @@ export class Compass { interface StartCompassOptions { firstRun?: boolean; + // TODO: these are probably electron-only and not for compass-web noWaitForConnectionScreen?: boolean; extraSpawnArgs?: string[]; wrapBinary?: (binary: string) => Promise | string; @@ -454,7 +467,9 @@ export async function runCompassOnce(args: string[], timeout = 30_000) { return { stdout, stderr }; } -async function startCompass(opts: StartCompassOptions = {}): Promise { +async function startCompassElectron( + opts: StartCompassOptions = {} +): Promise { const { testPackagedApp, binary } = await getCompassExecutionParameters(); const nowFormatted = formattedDate(); let needsCloseWelcomeModal: boolean; @@ -674,7 +689,8 @@ async function startCompass(opts: StartCompassOptions = {}): Promise { } const compass = new Compass(browser, { - testPackagedApp, + mode: 'electron', + writeCoverage: !testPackagedApp, needsCloseWelcomeModal, }); @@ -683,6 +699,21 @@ async function startCompass(opts: StartCompassOptions = {}): Promise { return compass; } +export async function startBrowser() { + const browser: CompassBrowser = await remote({ + capabilities: { browserName: 'chrome' }, + }); + const compass = new Compass(browser, { + mode: 'web', + writeCoverage: false, + needsCloseWelcomeModal: false, + }); + + await compass.recordLogs(); + + return compass; +} + /** * @param {string} logPath The compass application log path * @returns {Promise} @@ -872,7 +903,7 @@ function augmentError(error: Error, stack: string) { export async function beforeTests( opts: StartCompassOptions = {} ): Promise { - const compass = await startCompass(opts); + const compass = await startCompassElectron(opts); const { browser } = compass; From f10a0993debe3c7dfcbba5cb65e6127891e04a8f Mon Sep 17 00:00:00 2001 From: Le Roux Bodenstein Date: Thu, 18 Jan 2024 12:54:25 +0000 Subject: [PATCH 02/38] first try! --- .../connect-with-connection-string.ts | 2 +- .../helpers/commands/disconnect.ts | 10 ++++++ .../commands/wait-for-connection-result.ts | 8 ++++- .../commands/wait-for-connection-screen.ts | 7 +++- packages/compass-e2e-tests/helpers/compass.ts | 32 +++++++++++++++---- .../compass-e2e-tests/helpers/selectors.ts | 1 + packages/compass-e2e-tests/index.ts | 23 ++++++++++--- packages/compass-e2e-tests/package.json | 2 ++ .../tests/atlas-login.test.ts | 9 ++++++ .../tests/auto-connect.test.ts | 8 ++++- .../tests/collection-aggregations-tab.test.ts | 8 +++++ .../tests/collection-ai-query.test.ts | 15 ++++++++- .../tests/collection-bulk-delete.test.ts | 15 ++++++++- .../tests/collection-bulk-update.test.ts | 15 ++++++++- .../tests/collection-documents-tab.test.ts | 15 ++++++++- .../tests/collection-export.test.ts | 9 ++++++ .../tests/collection-heading.test.ts | 15 ++++++++- .../tests/collection-import.test.ts | 15 ++++++++- .../tests/collection-indexes-tab.test.ts | 9 ++++++ .../tests/collection-rename.test.ts | 14 +++++++- .../tests/collection-schema-tab.test.ts | 14 +++++++- .../tests/collection-validation-tab.test.ts | 14 +++++++- .../tests/connection-form.test.ts | 15 ++++++++- .../tests/connection.test.ts | 28 ++++++++++++++++ .../tests/database-collections-tab.test.ts | 8 +++++ .../tests/force-connection-options.test.ts | 15 ++++++++- .../tests/global-preferences.test.ts | 13 +++++++- .../tests/import-export-connections.test.ts | 8 ++++- .../tests/in-use-encryption.test.ts | 7 ++++ .../tests/instance-databases-tab.test.ts | 13 +++++++- .../tests/instance-my-queries-tab.test.ts | 14 +++++++- .../tests/instance-performance-tab.test.ts | 13 +++++++- .../tests/instance-sidebar.test.ts | 13 +++++++- .../compass-e2e-tests/tests/logging.test.ts | 12 ++++++- .../tests/no-network-traffic.test.ts | 5 ++- packages/compass-e2e-tests/tests/oidc.test.ts | 8 +++++ .../tests/protect-connection-strings.test.ts | 13 +++++++- .../compass-e2e-tests/tests/read-only.test.ts | 13 +++++++- .../tests/search-indexes.test.ts | 8 +++++ .../compass-e2e-tests/tests/shell.test.ts | 14 +++++++- .../show-kerberos-password-field.test.ts | 13 +++++++- packages/compass-web/sandbox/index.tsx | 8 ++++- 42 files changed, 462 insertions(+), 39 deletions(-) diff --git a/packages/compass-e2e-tests/helpers/commands/connect-with-connection-string.ts b/packages/compass-e2e-tests/helpers/commands/connect-with-connection-string.ts index 4156f88642b..68b1a9e0869 100644 --- a/packages/compass-e2e-tests/helpers/commands/connect-with-connection-string.ts +++ b/packages/compass-e2e-tests/helpers/commands/connect-with-connection-string.ts @@ -8,7 +8,7 @@ export async function connectWithConnectionString( connectionStatus: 'success' | 'failure' | 'either' = 'success', timeout?: number ): Promise { - const sidebar = await browser.$(Selectors.SidebarTitle); + const sidebar = await browser.$(Selectors.Sidebar); if (await sidebar.isDisplayed()) { await browser.disconnect(); } diff --git a/packages/compass-e2e-tests/helpers/commands/disconnect.ts b/packages/compass-e2e-tests/helpers/commands/disconnect.ts index ef7fb54974e..838eca41eac 100644 --- a/packages/compass-e2e-tests/helpers/commands/disconnect.ts +++ b/packages/compass-e2e-tests/helpers/commands/disconnect.ts @@ -1,8 +1,18 @@ +import { TEST_COMPASS_WEB } from '../compass'; import type { CompassBrowser } from '../compass-browser'; import delay from '../delay'; import * as Selectors from '../selectors'; export async function disconnect(browser: CompassBrowser): Promise { + if (TEST_COMPASS_WEB) { + // TODO: refreshing will probably not be enough to sign out once we run + // these tests against real atlas, depending on how we implement that. + await browser.refresh(); + const element = await browser.$(Selectors.ConnectSection); + await element.waitForConnectionScreen(); + return; + } + const cancelConnectionButtonElement = await browser.$( Selectors.CancelConnectionButton ); diff --git a/packages/compass-e2e-tests/helpers/commands/wait-for-connection-result.ts b/packages/compass-e2e-tests/helpers/commands/wait-for-connection-result.ts index 597b6395c2d..0d6b7bc6c61 100644 --- a/packages/compass-e2e-tests/helpers/commands/wait-for-connection-result.ts +++ b/packages/compass-e2e-tests/helpers/commands/wait-for-connection-result.ts @@ -1,3 +1,4 @@ +import { TEST_COMPASS_WEB } from '../compass'; import type { CompassBrowser } from '../compass-browser'; import * as Selectors from '../selectors'; @@ -8,13 +9,18 @@ export async function waitForConnectionResult( ): Promise { let selector: string; if (connectionStatus === 'either') { + // TODO: compass-web // For the rare cases where we don't care whether it fails or succeeds selector = `${Selectors.DatabasesTable},${Selectors.ConnectionFormErrorMessage}`; } else if (connectionStatus === 'success') { // First meaningful thing on the screen after being connected, good enough // indicator that we are connected to the server - selector = Selectors.MyQueriesList; + // TODO: the web selector might actually work for both cases + selector = TEST_COMPASS_WEB + ? '[data-testid="workspace-tab-button"][title=Databases]' + : Selectors.MyQueriesList; } else { + // TODO: compass-web selector = Selectors.ConnectionFormErrorMessage; } const element = await browser.$(selector); diff --git a/packages/compass-e2e-tests/helpers/commands/wait-for-connection-screen.ts b/packages/compass-e2e-tests/helpers/commands/wait-for-connection-screen.ts index 3e62a671d9e..1efb1a74e42 100644 --- a/packages/compass-e2e-tests/helpers/commands/wait-for-connection-screen.ts +++ b/packages/compass-e2e-tests/helpers/commands/wait-for-connection-screen.ts @@ -1,9 +1,14 @@ +import { TEST_COMPASS_WEB } from '../compass'; import type { CompassBrowser } from '../compass-browser'; import * as Selectors from '../selectors'; export async function waitForConnectionScreen( browser: CompassBrowser ): Promise { - const connectScreenElement = await browser.$(Selectors.ConnectSection); + // TODO: can we not just make this the same selector in both cases somehow? + const selector = TEST_COMPASS_WEB + ? 'textarea[title="Connection string"]' + : Selectors.ConnectSection; + const connectScreenElement = await browser.$(selector); await connectScreenElement.waitForDisplayed(); } diff --git a/packages/compass-e2e-tests/helpers/compass.ts b/packages/compass-e2e-tests/helpers/compass.ts index cd534b3eef3..753a86a5827 100644 --- a/packages/compass-e2e-tests/helpers/compass.ts +++ b/packages/compass-e2e-tests/helpers/compass.ts @@ -47,6 +47,9 @@ let MONGODB_VERSION = ''; let MONGODB_USE_ENTERPRISE = (process.env.MONGODB_VERSION?.endsWith('-enterprise') && 'yes') ?? 'no'; +// should we test compass-web (true) or compass electron (false)? +export const TEST_COMPASS_WEB = process.argv.includes('--test-compass-web'); + export const MONGODB_TEST_SERVER_PORT = Number( process.env.MONGODB_TEST_SERVER_PORT ?? 27091 ); @@ -494,6 +497,7 @@ async function startCompassElectron( const nowFormatted = formattedDate(); let needsCloseWelcomeModal: boolean; + // TODO: also do this for compass-web // If this is not the first run, but we want it to be, delete the user data // dir so it will be recreated below. if (defaultUserDataDir && opts.firstRun) { @@ -509,6 +513,7 @@ async function startCompassElectron( needsCloseWelcomeModal = !defaultUserDataDir && opts.firstRun !== false; } + // TODO: also do this for compass-web // Calculate the userDataDir once so it will be the same between runs. That // way we can test first run vs second run experience. if (!defaultUserDataDir) { @@ -523,11 +528,13 @@ async function startCompassElectron( ); const webdriverLogPath = path.join(LOG_PATH, 'webdriver'); + // TODO: also do this for compass-web // Ensure that the user data dir exists await fs.mkdir(defaultUserDataDir, { recursive: true }); // Chromedriver will fail if log path doesn't exist, webdriver doesn't care, // for consistency let's mkdir for both of them just in case + // TODO: also do this for compass-web await fs.mkdir(path.dirname(chromedriverLogPath), { recursive: true }); await fs.mkdir(webdriverLogPath, { recursive: true }); await fs.mkdir(OUTPUT_PATH, { recursive: true }); @@ -585,12 +592,14 @@ async function startCompassElectron( return [...this]; }; + // TODO: also for compass-web // https://webdriver.io/docs/options/#webdriver-options const webdriverOptions = { logLevel: 'info' as const, outputDir: webdriverLogPath, }; + // TODO: also for compass-web // https://webdriver.io/docs/options/#webdriverio const wdioOptions = { // default is 3000ms @@ -609,13 +618,16 @@ async function startCompassElectron( // For webdriverio env we are changing appName so that keychain records do not // overlap with anything else process.env.HADRON_PRODUCT_NAME_OVERRIDE = 'MongoDB Compass WebdriverIO'; + // TODO: we should probably do this for compass-web too process.env.DEBUG = `${process.env.DEBUG ?? ''},mongodb-compass:main:logging`; + // TODO: we should probably do this for compass-web too process.env.MONGODB_COMPASS_TEST_LOG_DIR = path.join(LOG_PATH, 'app'); process.env.CHROME_LOG_FILE = chromedriverLogPath; // Guide cues might affect too many tests in a way where the auto showing of the cue prevents // clicks from working on elements. Dealing with this case-by-case is way too much work, so // we disable the cues completely for the e2e tests + // TODO: also for compass-web process.env.DISABLE_GUIDE_CUES = 'true'; const options = { @@ -719,17 +731,24 @@ async function startCompassElectron( return compass; } -export async function startBrowser(name: string) { +export async function startBrowser( + name: string, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + opts: StartCompassOptions = {} +) { const browser: CompassBrowser = await remote({ capabilities: { browserName: 'chrome' }, + // TODO: copy all the relevant config from our electron-based config like wdio timeouts }); + await browser.navigateTo('http://localhost:8080/'); const compass = new Compass(name, browser, { mode: 'web', writeCoverage: false, needsCloseWelcomeModal: false, }); - await compass.recordLogs(); + // TODO: we need to figure out how to do this for compass-web + //await compass.recordLogs(); return compass; } @@ -930,14 +949,15 @@ export async function init( name?: string, opts: StartCompassOptions = {} ): Promise { + name = pathName(name ?? formattedDate()); + // Unfortunately mocha's type is that this.test inside a test or hook is // optional even though it always exists. So we have a lot of // this.test?.fullTitle() and therefore we hopefully won't end up with a lot // of dates in filenames in reality. - const compass = await startCompassElectron( - pathName(name ?? formattedDate()), - opts - ); + const compass = TEST_COMPASS_WEB + ? await startBrowser(name, opts) + : await startCompassElectron(name, opts); const { browser } = compass; diff --git a/packages/compass-e2e-tests/helpers/selectors.ts b/packages/compass-e2e-tests/helpers/selectors.ts index 8703be5e3c6..a3faaab8be2 100644 --- a/packages/compass-e2e-tests/helpers/selectors.ts +++ b/packages/compass-e2e-tests/helpers/selectors.ts @@ -233,6 +233,7 @@ export const RenameCollectionModalErrorBanner = export const RenameCollectionModalCloseButton = `${RenameCollectionModal} [aria-label="Close modal"]`; // Database-Collection Sidebar +export const Sidebar = '[data-testid="navigation-sidebar"]'; export const SidebarDatabaseAndCollectionList = '[data-testid="databases-and-collections"]'; export const SidebarTreeItems = `${SidebarDatabaseAndCollectionList} [role="treeitem"]`; diff --git a/packages/compass-e2e-tests/index.ts b/packages/compass-e2e-tests/index.ts index 44ef3a072b3..275f02d4d41 100644 --- a/packages/compass-e2e-tests/index.ts +++ b/packages/compass-e2e-tests/index.ts @@ -21,6 +21,7 @@ import ResultLogger from './helpers/result-logger'; const debug = Debug('compass-e2e-tests'); const allowedArgs = [ + '--test-compass-web', '--no-compile', '--no-native-modules', '--test-packaged-app', @@ -61,6 +62,7 @@ function setup() { fs.mkdirSync(LOG_PATH, { recursive: true }); + debug('Getting mongodb server info'); updateMongoDBServerInfo(); } @@ -103,13 +105,24 @@ function cleanup() { async function main() { setup(); - const shouldTestPackagedApp = process.argv.includes('--test-packaged-app'); + const shouldTestCompassWeb = process.argv.includes('--test-compass-web'); + + // These are mutually exclusive since compass-web is always going to browse to + // the running webserver. + const shouldTestPackagedApp = + process.argv.includes('--test-packaged-app') && !shouldTestCompassWeb; + // Skip this step if you are running tests consecutively and don't need to - // rebuild modules all the time - const noNativeModules = process.argv.includes('--no-native-modules'); + // rebuild modules all the time. Also no need to ever recompile when testing + // compass-web. + const noNativeModules = + process.argv.includes('--no-native-modules') || shouldTestCompassWeb; + // Skip this step if you want to run tests against your own compilation (e.g, - // a dev build or a build running in watch mode that autorecompiles) - const noCompile = process.argv.includes('--no-compile'); + // a dev build or a build running in watch mode that autorecompiles). Also no + // need to recompile when testing compass-web. + const noCompile = + process.argv.includes('--no-compile') || shouldTestCompassWeb; if (shouldTestPackagedApp) { process.env.TEST_PACKAGED_APP = '1'; diff --git a/packages/compass-e2e-tests/package.json b/packages/compass-e2e-tests/package.json index 7913cd54e63..56bf02726b6 100644 --- a/packages/compass-e2e-tests/package.json +++ b/packages/compass-e2e-tests/package.json @@ -22,6 +22,8 @@ "unzip-fixtures": "ts-node ./scripts/gunzip.ts fixtures/*.gz", "test-noserver": "env DEBUG=hadron*,mongo*,compass* npm run test -- --disable-start-stop --bail", "test-noserver-nocompile": "env DEBUG=hadron*,mongo*,compass* npm run test -- --no-native-modules --no-compile --disable-start-stop --bail", + "test-web": "env DEBUG=hadron*,mongo*,compass* npm run test -- --test-compass-web --bail", + "test-web-noserver": "env DEBUG=hadron*,mongo*,compass* npm run test -- --test-compass-web --disable-start-stop --bail", "coverage-merge": "nyc merge .log/coverage .nyc_output/coverage.json", "coverage-report": "npm run coverage-merge && nyc report", "server-info": "ts-node ./scripts/server-info.ts" diff --git a/packages/compass-e2e-tests/tests/atlas-login.test.ts b/packages/compass-e2e-tests/tests/atlas-login.test.ts index f1101c350be..2d38fe528eb 100644 --- a/packages/compass-e2e-tests/tests/atlas-login.test.ts +++ b/packages/compass-e2e-tests/tests/atlas-login.test.ts @@ -4,6 +4,7 @@ import { cleanup, screenshotIfFailed, Selectors, + TEST_COMPASS_WEB, } from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import type { OIDCMockProviderConfig } from '@mongodb-js/oidc-mock-provider'; @@ -40,6 +41,10 @@ describe('Atlas Login', function () { let stopMockAtlasServer: () => Promise; before(async function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } + // Start a mock server to pass an ai response. const { endpoint, stop } = await startMockAtlasServiceServer(); stopMockAtlasServer = stop; @@ -121,6 +126,10 @@ describe('Atlas Login', function () { }); after(async function () { + if (TEST_COMPASS_WEB) { + return; + } + await oidcMockProvider?.close(); delete process.env.COMPASS_CLIENT_ID_OVERRIDE; delete process.env.COMPASS_OIDC_ISSUER_OVERRIDE; diff --git a/packages/compass-e2e-tests/tests/auto-connect.test.ts b/packages/compass-e2e-tests/tests/auto-connect.test.ts index df02477f41c..e71f7972bef 100644 --- a/packages/compass-e2e-tests/tests/auto-connect.test.ts +++ b/packages/compass-e2e-tests/tests/auto-connect.test.ts @@ -1,5 +1,5 @@ import { expect } from 'chai'; -import { init, cleanup } from '../helpers/compass'; +import { init, cleanup, TEST_COMPASS_WEB } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; import os from 'os'; import path from 'path'; @@ -14,6 +14,12 @@ describe('Automatically connecting from the command line', function () { let tmpdir: string; let i = 0; + before(function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } + }); + beforeEach(async function () { tmpdir = path.join( os.tmpdir(), diff --git a/packages/compass-e2e-tests/tests/collection-aggregations-tab.test.ts b/packages/compass-e2e-tests/tests/collection-aggregations-tab.test.ts index d9846ec3c53..4140a0d49c9 100644 --- a/packages/compass-e2e-tests/tests/collection-aggregations-tab.test.ts +++ b/packages/compass-e2e-tests/tests/collection-aggregations-tab.test.ts @@ -8,6 +8,7 @@ import { screenshotIfFailed, outputFilename, serverSatisfies, + TEST_COMPASS_WEB, } from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; @@ -150,6 +151,10 @@ describe('Collection aggregations tab', function () { let browser: CompassBrowser; before(async function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } + compass = await init(this.test?.fullTitle()); browser = compass.browser; }); @@ -176,6 +181,9 @@ describe('Collection aggregations tab', function () { }); after(async function () { + if (TEST_COMPASS_WEB) { + return; + } await cleanup(compass); }); diff --git a/packages/compass-e2e-tests/tests/collection-ai-query.test.ts b/packages/compass-e2e-tests/tests/collection-ai-query.test.ts index 476190a129a..3641c990572 100644 --- a/packages/compass-e2e-tests/tests/collection-ai-query.test.ts +++ b/packages/compass-e2e-tests/tests/collection-ai-query.test.ts @@ -3,7 +3,12 @@ import chai from 'chai'; import type { CompassBrowser } from '../helpers/compass-browser'; import { startTelemetryServer } from '../helpers/telemetry'; import type { Telemetry } from '../helpers/telemetry'; -import { init, cleanup, screenshotIfFailed } from '../helpers/compass'; +import { + init, + cleanup, + screenshotIfFailed, + TEST_COMPASS_WEB, +} from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; import { createNumbersCollection } from '../helpers/insert-data'; @@ -23,6 +28,10 @@ describe('Collection ai query', function () { let clearRequests: () => void; before(async function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } + process.env.COMPASS_E2E_SKIP_ATLAS_SIGNIN = 'true'; // Start a mock server to pass an ai response. @@ -54,6 +63,10 @@ describe('Collection ai query', function () { }); after(async function () { + if (TEST_COMPASS_WEB) { + return; + } + await stopMockAtlasServer(); delete process.env.COMPASS_ATLAS_SERVICE_BASE_URL_OVERRIDE; diff --git a/packages/compass-e2e-tests/tests/collection-bulk-delete.test.ts b/packages/compass-e2e-tests/tests/collection-bulk-delete.test.ts index d32b9430d08..1ac8261fbd1 100644 --- a/packages/compass-e2e-tests/tests/collection-bulk-delete.test.ts +++ b/packages/compass-e2e-tests/tests/collection-bulk-delete.test.ts @@ -2,7 +2,12 @@ import { expect } from 'chai'; import type { CompassBrowser } from '../helpers/compass-browser'; import { startTelemetryServer } from '../helpers/telemetry'; import type { Telemetry } from '../helpers/telemetry'; -import { init, cleanup, screenshotIfFailed } from '../helpers/compass'; +import { + init, + cleanup, + screenshotIfFailed, + TEST_COMPASS_WEB, +} from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; import { createNumbersCollection } from '../helpers/insert-data'; @@ -13,6 +18,10 @@ describe('Bulk Delete', () => { let telemetry: Telemetry; before(async function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } + telemetry = await startTelemetryServer(); compass = await init(this.test?.fullTitle(), { extraSpawnArgs: ['--enableBulkDeleteOperations'], @@ -21,6 +30,10 @@ describe('Bulk Delete', () => { }); after(async function () { + if (TEST_COMPASS_WEB) { + return; + } + await cleanup(compass); await telemetry.stop(); }); diff --git a/packages/compass-e2e-tests/tests/collection-bulk-update.test.ts b/packages/compass-e2e-tests/tests/collection-bulk-update.test.ts index 71559eaf3ce..2ed5b9355b5 100644 --- a/packages/compass-e2e-tests/tests/collection-bulk-update.test.ts +++ b/packages/compass-e2e-tests/tests/collection-bulk-update.test.ts @@ -2,7 +2,12 @@ import { expect } from 'chai'; import type { CompassBrowser } from '../helpers/compass-browser'; import { startTelemetryServer } from '../helpers/telemetry'; import type { Telemetry } from '../helpers/telemetry'; -import { init, cleanup, screenshotIfFailed } from '../helpers/compass'; +import { + init, + cleanup, + screenshotIfFailed, + TEST_COMPASS_WEB, +} from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; import { createNumbersCollection } from '../helpers/insert-data'; @@ -13,6 +18,10 @@ describe('Bulk Update', () => { let telemetry: Telemetry; before(async function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } + telemetry = await startTelemetryServer(); compass = await init(this.test?.fullTitle(), { extraSpawnArgs: ['--enableBulkUpdateOperations'], @@ -21,6 +30,10 @@ describe('Bulk Update', () => { }); after(async function () { + if (TEST_COMPASS_WEB) { + return; + } + await cleanup(compass); await telemetry.stop(); }); diff --git a/packages/compass-e2e-tests/tests/collection-documents-tab.test.ts b/packages/compass-e2e-tests/tests/collection-documents-tab.test.ts index 3e5f9207979..223cd1c73c0 100644 --- a/packages/compass-e2e-tests/tests/collection-documents-tab.test.ts +++ b/packages/compass-e2e-tests/tests/collection-documents-tab.test.ts @@ -3,7 +3,12 @@ import clipboard from 'clipboardy'; import type { CompassBrowser } from '../helpers/compass-browser'; import { startTelemetryServer } from '../helpers/telemetry'; import type { Telemetry } from '../helpers/telemetry'; -import { init, cleanup, screenshotIfFailed } from '../helpers/compass'; +import { + init, + cleanup, + screenshotIfFailed, + TEST_COMPASS_WEB, +} from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; import type { Element, ElementArray } from 'webdriverio'; @@ -109,6 +114,10 @@ describe('Collection documents tab', function () { let maxTimeMSBefore: string; before(async function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } + telemetry = await startTelemetryServer(); compass = await init(this.test?.fullTitle()); browser = compass.browser; @@ -122,6 +131,10 @@ describe('Collection documents tab', function () { }); after(async function () { + if (TEST_COMPASS_WEB) { + return; + } + await cleanup(compass); await telemetry.stop(); }); diff --git a/packages/compass-e2e-tests/tests/collection-export.test.ts b/packages/compass-e2e-tests/tests/collection-export.test.ts index 37eda1c48c1..d836e73ed50 100644 --- a/packages/compass-e2e-tests/tests/collection-export.test.ts +++ b/packages/compass-e2e-tests/tests/collection-export.test.ts @@ -8,6 +8,7 @@ import { cleanup, screenshotIfFailed, outputFilename, + TEST_COMPASS_WEB, } from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; @@ -41,12 +42,20 @@ describe('Collection export', function () { let telemetry: Telemetry; before(async function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } + telemetry = await startTelemetryServer(); compass = await init(this.test?.fullTitle()); browser = compass.browser; }); after(async function () { + if (TEST_COMPASS_WEB) { + return; + } + await cleanup(compass); await telemetry.stop(); }); diff --git a/packages/compass-e2e-tests/tests/collection-heading.test.ts b/packages/compass-e2e-tests/tests/collection-heading.test.ts index 142cda2fca3..b8b4dee818a 100644 --- a/packages/compass-e2e-tests/tests/collection-heading.test.ts +++ b/packages/compass-e2e-tests/tests/collection-heading.test.ts @@ -1,6 +1,11 @@ import chai from 'chai'; import type { CompassBrowser } from '../helpers/compass-browser'; -import { init, cleanup, screenshotIfFailed } from '../helpers/compass'; +import { + init, + cleanup, + screenshotIfFailed, + TEST_COMPASS_WEB, +} from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; import { createNumbersCollection } from '../helpers/insert-data'; @@ -12,6 +17,10 @@ describe('Collection heading', function () { let browser: CompassBrowser; before(async function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } + compass = await init(this.test?.fullTitle()); browser = compass.browser; @@ -24,6 +33,10 @@ describe('Collection heading', function () { }); after(async function () { + if (TEST_COMPASS_WEB) { + return; + } + await cleanup(compass); }); diff --git a/packages/compass-e2e-tests/tests/collection-import.test.ts b/packages/compass-e2e-tests/tests/collection-import.test.ts index 9ad88d9e7c6..0f0b61205db 100644 --- a/packages/compass-e2e-tests/tests/collection-import.test.ts +++ b/packages/compass-e2e-tests/tests/collection-import.test.ts @@ -3,7 +3,12 @@ import chai from 'chai'; import { promises as fs } from 'fs'; import type { CompassBrowser } from '../helpers/compass-browser'; -import { init, cleanup, screenshotIfFailed } from '../helpers/compass'; +import { + init, + cleanup, + screenshotIfFailed, + TEST_COMPASS_WEB, +} from '../helpers/compass'; import { getFirstListDocument } from '../helpers/read-first-document-content'; import type { Compass } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; @@ -92,6 +97,10 @@ describe('Collection import', function () { let telemetry: Telemetry; before(async function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } + telemetry = await startTelemetryServer(); compass = await init(this.test?.fullTitle()); browser = compass.browser; @@ -104,6 +113,10 @@ describe('Collection import', function () { }); after(async function () { + if (TEST_COMPASS_WEB) { + return; + } + await cleanup(compass); await telemetry.stop(); }); diff --git a/packages/compass-e2e-tests/tests/collection-indexes-tab.test.ts b/packages/compass-e2e-tests/tests/collection-indexes-tab.test.ts index bb93f260025..3bfa871675d 100644 --- a/packages/compass-e2e-tests/tests/collection-indexes-tab.test.ts +++ b/packages/compass-e2e-tests/tests/collection-indexes-tab.test.ts @@ -6,6 +6,7 @@ import { cleanup, screenshotIfFailed, serverSatisfies, + TEST_COMPASS_WEB, } from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; @@ -18,6 +19,10 @@ describe('Collection indexes tab', function () { let browser: CompassBrowser; before(async function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } + compass = await init(this.test?.fullTitle()); browser = compass.browser; }); @@ -29,6 +34,10 @@ describe('Collection indexes tab', function () { }); after(async function () { + if (TEST_COMPASS_WEB) { + return; + } + await cleanup(compass); }); diff --git a/packages/compass-e2e-tests/tests/collection-rename.test.ts b/packages/compass-e2e-tests/tests/collection-rename.test.ts index 0e9fb43a342..493a4d70f82 100644 --- a/packages/compass-e2e-tests/tests/collection-rename.test.ts +++ b/packages/compass-e2e-tests/tests/collection-rename.test.ts @@ -1,6 +1,11 @@ import { expect } from 'chai'; import type { Compass } from '../helpers/compass'; -import { init, cleanup, screenshotIfFailed } from '../helpers/compass'; +import { + init, + cleanup, + screenshotIfFailed, + TEST_COMPASS_WEB, +} from '../helpers/compass'; import type { CompassBrowser } from '../helpers/compass-browser'; import { createBlankCollection, dropDatabase } from '../helpers/insert-data'; import * as Selectors from '../helpers/selectors'; @@ -105,6 +110,10 @@ describe('Collection Rename Modal', () => { let browser: CompassBrowser; before(async function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } + compass = await init(this.test?.fullTitle()); browser = compass.browser; @@ -121,6 +130,9 @@ describe('Collection Rename Modal', () => { }); after(async function () { + if (TEST_COMPASS_WEB) { + return; + } await cleanup(compass); }); diff --git a/packages/compass-e2e-tests/tests/collection-schema-tab.test.ts b/packages/compass-e2e-tests/tests/collection-schema-tab.test.ts index 7675b607f73..f9f562de897 100644 --- a/packages/compass-e2e-tests/tests/collection-schema-tab.test.ts +++ b/packages/compass-e2e-tests/tests/collection-schema-tab.test.ts @@ -1,6 +1,11 @@ import chai from 'chai'; import type { CompassBrowser } from '../helpers/compass-browser'; -import { init, cleanup, screenshotIfFailed } from '../helpers/compass'; +import { + init, + cleanup, + screenshotIfFailed, + TEST_COMPASS_WEB, +} from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; import { @@ -15,6 +20,9 @@ describe('Collection schema tab', function () { let browser: CompassBrowser; before(async function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } compass = await init(this.test?.fullTitle()); browser = compass.browser; }); @@ -26,6 +34,10 @@ describe('Collection schema tab', function () { }); after(async function () { + if (TEST_COMPASS_WEB) { + return; + } + await cleanup(compass); }); diff --git a/packages/compass-e2e-tests/tests/collection-validation-tab.test.ts b/packages/compass-e2e-tests/tests/collection-validation-tab.test.ts index cd7e6397852..6859300b7e7 100644 --- a/packages/compass-e2e-tests/tests/collection-validation-tab.test.ts +++ b/packages/compass-e2e-tests/tests/collection-validation-tab.test.ts @@ -1,5 +1,10 @@ import type { CompassBrowser } from '../helpers/compass-browser'; -import { init, cleanup, screenshotIfFailed } from '../helpers/compass'; +import { + init, + cleanup, + screenshotIfFailed, + TEST_COMPASS_WEB, +} from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; import { createNumbersCollection } from '../helpers/insert-data'; @@ -15,6 +20,10 @@ describe('Collection validation tab', function () { let browser: CompassBrowser; before(async function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } + compass = await init(this.test?.fullTitle()); browser = compass.browser; }); @@ -26,6 +35,9 @@ describe('Collection validation tab', function () { }); after(async function () { + if (TEST_COMPASS_WEB) { + return; + } await cleanup(compass); }); diff --git a/packages/compass-e2e-tests/tests/connection-form.test.ts b/packages/compass-e2e-tests/tests/connection-form.test.ts index 17cf3cf7e1c..a4bfb2eacee 100644 --- a/packages/compass-e2e-tests/tests/connection-form.test.ts +++ b/packages/compass-e2e-tests/tests/connection-form.test.ts @@ -2,7 +2,12 @@ import path from 'path'; import { expect } from 'chai'; import clipboard from 'clipboardy'; import type { CompassBrowser } from '../helpers/compass-browser'; -import { init, cleanup, screenshotIfFailed } from '../helpers/compass'; +import { + init, + cleanup, + screenshotIfFailed, + TEST_COMPASS_WEB, +} from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; import type { ConnectFormState } from '../helpers/connect-form-state'; @@ -15,11 +20,19 @@ describe('Connection form', function () { let browser: CompassBrowser; before(async function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } + compass = await init(this.test?.fullTitle()); browser = compass.browser; }); after(async function () { + if (TEST_COMPASS_WEB) { + return; + } + await cleanup(compass); }); diff --git a/packages/compass-e2e-tests/tests/connection.test.ts b/packages/compass-e2e-tests/tests/connection.test.ts index 952f6d91540..c492a5f9a6f 100644 --- a/packages/compass-e2e-tests/tests/connection.test.ts +++ b/packages/compass-e2e-tests/tests/connection.test.ts @@ -11,6 +11,7 @@ import { cleanup, screenshotIfFailed, serverSatisfies, + TEST_COMPASS_WEB, } from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import type { ConnectFormState } from '../helpers/connect-form-state'; @@ -254,11 +255,19 @@ describe('Connection screen', function () { let browser: CompassBrowser; before(async function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } + compass = await init(this.test?.fullTitle()); browser = compass.browser; }); after(function () { + if (TEST_COMPASS_WEB) { + return; + } + return cleanup(compass); }); @@ -627,6 +636,12 @@ describe('Connection screen', function () { // eslint-disable-next-line mocha/max-top-level-suites describe('SRV connectivity', function () { + before(function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } + }); + it('resolves SRV connection string using OS DNS APIs', async function () { const compass = await init(this.test?.fullTitle()); const browser = compass.browser; @@ -688,6 +703,12 @@ describe('SRV connectivity', function () { // eslint-disable-next-line mocha/max-top-level-suites describe('System CA access', function () { + before(function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } + }); + it('allows using the system certificate store for connections', async function () { const compass = await init(this.test?.fullTitle()); const browser = compass.browser; @@ -740,6 +761,10 @@ describe('FLE2', function () { let browser: CompassBrowser; before(async function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } + compass = await init(this.test?.fullTitle()); browser = compass.browser; }); @@ -749,6 +774,9 @@ describe('FLE2', function () { }); after(async function () { + if (TEST_COMPASS_WEB) { + return; + } await cleanup(compass); }); diff --git a/packages/compass-e2e-tests/tests/database-collections-tab.test.ts b/packages/compass-e2e-tests/tests/database-collections-tab.test.ts index d80f5eb5c31..4c40e1aa62d 100644 --- a/packages/compass-e2e-tests/tests/database-collections-tab.test.ts +++ b/packages/compass-e2e-tests/tests/database-collections-tab.test.ts @@ -5,6 +5,7 @@ import { cleanup, screenshotIfFailed, serverSatisfies, + TEST_COMPASS_WEB, } from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; @@ -18,11 +19,18 @@ describe('Database collections tab', function () { let browser: CompassBrowser; before(async function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } + compass = await init(this.test?.fullTitle()); browser = compass.browser; }); after(async function () { + if (TEST_COMPASS_WEB) { + return; + } await cleanup(compass); }); diff --git a/packages/compass-e2e-tests/tests/force-connection-options.test.ts b/packages/compass-e2e-tests/tests/force-connection-options.test.ts index 82a72981722..6377dbadcb7 100644 --- a/packages/compass-e2e-tests/tests/force-connection-options.test.ts +++ b/packages/compass-e2e-tests/tests/force-connection-options.test.ts @@ -1,5 +1,10 @@ import type { CompassBrowser } from '../helpers/compass-browser'; -import { init, cleanup, screenshotIfFailed } from '../helpers/compass'; +import { + init, + cleanup, + screenshotIfFailed, + TEST_COMPASS_WEB, +} from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import { expect } from 'chai'; import { ConnectionString } from 'mongodb-connection-string-url'; @@ -9,6 +14,10 @@ describe('forceConnectionOptions', function () { let browser: CompassBrowser; before(async function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } + compass = await init(this.test?.fullTitle(), { extraSpawnArgs: ['--forceConnectionOptions.appName=testAppName'], }); @@ -16,6 +25,10 @@ describe('forceConnectionOptions', function () { }); after(async function () { + if (TEST_COMPASS_WEB) { + return; + } + await cleanup(compass); }); diff --git a/packages/compass-e2e-tests/tests/global-preferences.test.ts b/packages/compass-e2e-tests/tests/global-preferences.test.ts index cb9ebeb9cd2..b686daabfdf 100644 --- a/packages/compass-e2e-tests/tests/global-preferences.test.ts +++ b/packages/compass-e2e-tests/tests/global-preferences.test.ts @@ -1,5 +1,10 @@ import { expect } from 'chai'; -import { init, cleanup, runCompassOnce } from '../helpers/compass'; +import { + init, + cleanup, + runCompassOnce, + TEST_COMPASS_WEB, +} from '../helpers/compass'; import { promises as fs } from 'fs'; import path from 'path'; import os from 'os'; @@ -27,6 +32,12 @@ describe('Global preferences', function () { let tmpdir: string; let i = 0; + before(function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } + }); + beforeEach(async function () { tmpdir = path.join( os.tmpdir(), diff --git a/packages/compass-e2e-tests/tests/import-export-connections.test.ts b/packages/compass-e2e-tests/tests/import-export-connections.test.ts index c2f4a4c2c66..bf022e56baa 100644 --- a/packages/compass-e2e-tests/tests/import-export-connections.test.ts +++ b/packages/compass-e2e-tests/tests/import-export-connections.test.ts @@ -1,6 +1,6 @@ import { expect } from 'chai'; import type { Compass } from '../helpers/compass'; -import { screenshotIfFailed } from '../helpers/compass'; +import { TEST_COMPASS_WEB, screenshotIfFailed } from '../helpers/compass'; import { init, cleanup, @@ -36,6 +36,12 @@ describe('Connection Import / Export', function () { const getTrackedEvents = (): any[] => telemetry.events().filter((e: any) => e.type === 'track'); + before(function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } + }); + beforeEach(async function () { telemetry = await startTelemetryServer(); diff --git a/packages/compass-e2e-tests/tests/in-use-encryption.test.ts b/packages/compass-e2e-tests/tests/in-use-encryption.test.ts index d69c6b54113..54a9efa138a 100644 --- a/packages/compass-e2e-tests/tests/in-use-encryption.test.ts +++ b/packages/compass-e2e-tests/tests/in-use-encryption.test.ts @@ -5,6 +5,7 @@ import { cleanup, screenshotIfFailed, serverSatisfies, + TEST_COMPASS_WEB, } from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; @@ -33,6 +34,9 @@ describe('CSFLE / QE', function () { let browser: CompassBrowser; before(async function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } if ( !serverSatisfies('>= 4.2.20', true) || // TODO(COMPASS-5911): Saved connections are not being displayed after disconnect on Linux CI. @@ -59,6 +63,9 @@ describe('CSFLE / QE', function () { }); after(async function () { + if (TEST_COMPASS_WEB) { + return; + } if (compass) { await cleanup(compass); } diff --git a/packages/compass-e2e-tests/tests/instance-databases-tab.test.ts b/packages/compass-e2e-tests/tests/instance-databases-tab.test.ts index f5aaab3ea00..b48c44cc6a0 100644 --- a/packages/compass-e2e-tests/tests/instance-databases-tab.test.ts +++ b/packages/compass-e2e-tests/tests/instance-databases-tab.test.ts @@ -1,6 +1,11 @@ import { expect } from 'chai'; import type { CompassBrowser } from '../helpers/compass-browser'; -import { init, cleanup, screenshotIfFailed } from '../helpers/compass'; +import { + init, + cleanup, + screenshotIfFailed, + TEST_COMPASS_WEB, +} from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; import { @@ -13,6 +18,9 @@ describe('Instance databases tab', function () { let browser: CompassBrowser; before(async function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } compass = await init(this.test?.fullTitle()); browser = compass.browser; }); @@ -25,6 +33,9 @@ describe('Instance databases tab', function () { }); after(async function () { + if (TEST_COMPASS_WEB) { + return; + } await cleanup(compass); }); diff --git a/packages/compass-e2e-tests/tests/instance-my-queries-tab.test.ts b/packages/compass-e2e-tests/tests/instance-my-queries-tab.test.ts index 13630cce255..831ab54b40f 100644 --- a/packages/compass-e2e-tests/tests/instance-my-queries-tab.test.ts +++ b/packages/compass-e2e-tests/tests/instance-my-queries-tab.test.ts @@ -1,7 +1,12 @@ import { expect } from 'chai'; import clipboard from 'clipboardy'; import type { CompassBrowser } from '../helpers/compass-browser'; -import { init, cleanup, screenshotIfFailed } from '../helpers/compass'; +import { + init, + cleanup, + screenshotIfFailed, + TEST_COMPASS_WEB, +} from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; import { createNumbersCollection } from '../helpers/insert-data'; @@ -37,6 +42,9 @@ describe('Instance my queries tab', function () { let browser: CompassBrowser; before(async function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } compass = await init(this.test?.fullTitle()); browser = compass.browser; }); @@ -45,6 +53,10 @@ describe('Instance my queries tab', function () { await browser.connectWithConnectionString(); }); after(async function () { + if (TEST_COMPASS_WEB) { + return; + } + await cleanup(compass); }); afterEach(async function () { diff --git a/packages/compass-e2e-tests/tests/instance-performance-tab.test.ts b/packages/compass-e2e-tests/tests/instance-performance-tab.test.ts index a6df15ea291..a83e17a10e4 100644 --- a/packages/compass-e2e-tests/tests/instance-performance-tab.test.ts +++ b/packages/compass-e2e-tests/tests/instance-performance-tab.test.ts @@ -1,5 +1,10 @@ import type { CompassBrowser } from '../helpers/compass-browser'; -import { init, cleanup, screenshotIfFailed } from '../helpers/compass'; +import { + init, + cleanup, + screenshotIfFailed, + TEST_COMPASS_WEB, +} from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; @@ -8,6 +13,9 @@ describe('Instance performance tab', function () { let browser: CompassBrowser; before(async function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } compass = await init(this.test?.fullTitle()); browser = compass.browser; @@ -16,6 +24,9 @@ describe('Instance performance tab', function () { }); after(async function () { + if (TEST_COMPASS_WEB) { + return; + } await cleanup(compass); }); diff --git a/packages/compass-e2e-tests/tests/instance-sidebar.test.ts b/packages/compass-e2e-tests/tests/instance-sidebar.test.ts index 2fbf645f4be..d135636e23e 100644 --- a/packages/compass-e2e-tests/tests/instance-sidebar.test.ts +++ b/packages/compass-e2e-tests/tests/instance-sidebar.test.ts @@ -1,6 +1,11 @@ import chai from 'chai'; import type { CompassBrowser } from '../helpers/compass-browser'; -import { init, cleanup, screenshotIfFailed } from '../helpers/compass'; +import { + init, + cleanup, + screenshotIfFailed, + TEST_COMPASS_WEB, +} from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; import { createNumbersCollection } from '../helpers/insert-data'; @@ -12,6 +17,9 @@ describe('Instance sidebar', function () { let browser: CompassBrowser; before(async function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } compass = await init(this.test?.fullTitle()); browser = compass.browser; }); @@ -22,6 +30,9 @@ describe('Instance sidebar', function () { }); after(async function () { + if (TEST_COMPASS_WEB) { + return; + } await cleanup(compass); }); diff --git a/packages/compass-e2e-tests/tests/logging.test.ts b/packages/compass-e2e-tests/tests/logging.test.ts index 395c6bdb51f..b44319e2d4b 100644 --- a/packages/compass-e2e-tests/tests/logging.test.ts +++ b/packages/compass-e2e-tests/tests/logging.test.ts @@ -1,10 +1,20 @@ import { expect } from 'chai'; -import { init, cleanup, screenshotIfFailed } from '../helpers/compass'; +import { + init, + cleanup, + screenshotIfFailed, + TEST_COMPASS_WEB, +} from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import { startTelemetryServer } from '../helpers/telemetry'; import type { Telemetry, LogEntry } from '../helpers/telemetry'; describe('Logging and Telemetry integration', function () { + before(function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } + }); describe('after running an example path through Compass', function () { let logs: LogEntry[]; let telemetry: Telemetry; diff --git a/packages/compass-e2e-tests/tests/no-network-traffic.test.ts b/packages/compass-e2e-tests/tests/no-network-traffic.test.ts index 59448ed08a4..195e17b376c 100644 --- a/packages/compass-e2e-tests/tests/no-network-traffic.test.ts +++ b/packages/compass-e2e-tests/tests/no-network-traffic.test.ts @@ -1,4 +1,4 @@ -import { init, cleanup } from '../helpers/compass'; +import { init, cleanup, TEST_COMPASS_WEB } from '../helpers/compass'; import { promises as fs } from 'fs'; import path from 'path'; import os from 'os'; @@ -8,6 +8,9 @@ describe('networkTraffic: false / Isolated Edition', function () { let i = 0; before(function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } if (process.platform !== 'linux') { // No strace on other platforms return this.skip(); diff --git a/packages/compass-e2e-tests/tests/oidc.test.ts b/packages/compass-e2e-tests/tests/oidc.test.ts index 0f9ea77b2f4..154c591fa93 100644 --- a/packages/compass-e2e-tests/tests/oidc.test.ts +++ b/packages/compass-e2e-tests/tests/oidc.test.ts @@ -5,6 +5,7 @@ import { screenshotIfFailed, runCompassOnce, serverSatisfies, + TEST_COMPASS_WEB, } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; import type { Compass } from '../helpers/compass'; @@ -62,6 +63,10 @@ describe('OIDC integration', function () { ) => Promise | undefined>; before(async function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } + if (process.platform !== 'linux') { // OIDC is only supported on Linux in the 7.0+ enterprise server. return this.skip(); @@ -156,6 +161,9 @@ describe('OIDC integration', function () { }); after(async function () { + if (TEST_COMPASS_WEB) { + return; + } await cluster?.close(); await oidcMockProvider?.close(); if (tmpdir) await fs.rmdir(tmpdir, { recursive: true }); diff --git a/packages/compass-e2e-tests/tests/protect-connection-strings.test.ts b/packages/compass-e2e-tests/tests/protect-connection-strings.test.ts index 8a45f248fc6..c70f1e101a4 100644 --- a/packages/compass-e2e-tests/tests/protect-connection-strings.test.ts +++ b/packages/compass-e2e-tests/tests/protect-connection-strings.test.ts @@ -1,5 +1,10 @@ import type { CompassBrowser } from '../helpers/compass-browser'; -import { init, cleanup, screenshotIfFailed } from '../helpers/compass'; +import { + init, + cleanup, + screenshotIfFailed, + TEST_COMPASS_WEB, +} from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import clipboard from 'clipboardy'; import { expect } from 'chai'; @@ -33,12 +38,18 @@ describe('protectConnectionStrings', function () { let browser: CompassBrowser; before(async function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } compass = await init(this.test?.fullTitle()); browser = compass.browser; await browser.setFeature('protectConnectionStrings', false); }); after(async function () { + if (TEST_COMPASS_WEB) { + return; + } await browser.setFeature('protectConnectionStrings', false); await cleanup(compass); }); diff --git a/packages/compass-e2e-tests/tests/read-only.test.ts b/packages/compass-e2e-tests/tests/read-only.test.ts index de44a9f8b04..b0ceecace83 100644 --- a/packages/compass-e2e-tests/tests/read-only.test.ts +++ b/packages/compass-e2e-tests/tests/read-only.test.ts @@ -1,4 +1,9 @@ -import { init, cleanup, screenshotIfFailed } from '../helpers/compass'; +import { + init, + cleanup, + screenshotIfFailed, + TEST_COMPASS_WEB, +} from '../helpers/compass'; import { promises as fs } from 'fs'; import path from 'path'; import os from 'os'; @@ -11,6 +16,12 @@ describe('readOnly: true / Read-Only Edition', function () { let tmpdir: string; let i = 0; + before(function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } + }); + beforeEach(async function () { tmpdir = path.join( os.tmpdir(), diff --git a/packages/compass-e2e-tests/tests/search-indexes.test.ts b/packages/compass-e2e-tests/tests/search-indexes.test.ts index e7411c70fb1..bb58eba5593 100644 --- a/packages/compass-e2e-tests/tests/search-indexes.test.ts +++ b/packages/compass-e2e-tests/tests/search-indexes.test.ts @@ -6,6 +6,7 @@ import { MONGODB_TEST_SERVER_PORT, Selectors, serverSatisfies, + TEST_COMPASS_WEB, } from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import { disconnect } from '../helpers/commands'; @@ -155,6 +156,10 @@ describe.skip('Search Indexes', function () { let collectionName: string; before(async function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } + // $search works with server 4.2 or more if (!serverSatisfies('>= 4.1.11')) { this.skip(); @@ -166,6 +171,9 @@ describe.skip('Search Indexes', function () { }); after(async function () { + if (TEST_COMPASS_WEB) { + return; + } await cleanup(compass); }); diff --git a/packages/compass-e2e-tests/tests/shell.test.ts b/packages/compass-e2e-tests/tests/shell.test.ts index 6aa0e99626b..95ecf17027d 100644 --- a/packages/compass-e2e-tests/tests/shell.test.ts +++ b/packages/compass-e2e-tests/tests/shell.test.ts @@ -1,7 +1,12 @@ import type { CompassBrowser } from '../helpers/compass-browser'; import { startTelemetryServer } from '../helpers/telemetry'; import type { Telemetry } from '../helpers/telemetry'; -import { init, cleanup, screenshotIfFailed } from '../helpers/compass'; +import { + init, + cleanup, + screenshotIfFailed, + TEST_COMPASS_WEB, +} from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; import { expect } from 'chai'; @@ -12,12 +17,19 @@ describe('Shell', function () { let telemetry: Telemetry; before(async function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } + telemetry = await startTelemetryServer(); compass = await init(this.test?.fullTitle()); browser = compass.browser; }); after(async function () { + if (TEST_COMPASS_WEB) { + return; + } await cleanup(compass); await telemetry.stop(); }); diff --git a/packages/compass-e2e-tests/tests/show-kerberos-password-field.test.ts b/packages/compass-e2e-tests/tests/show-kerberos-password-field.test.ts index f1ed0a6b49b..2d9e1344740 100644 --- a/packages/compass-e2e-tests/tests/show-kerberos-password-field.test.ts +++ b/packages/compass-e2e-tests/tests/show-kerberos-password-field.test.ts @@ -1,5 +1,10 @@ import type { CompassBrowser } from '../helpers/compass-browser'; -import { init, cleanup, screenshotIfFailed } from '../helpers/compass'; +import { + init, + cleanup, + screenshotIfFailed, + TEST_COMPASS_WEB, +} from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import { expect } from 'chai'; import * as Selectors from '../helpers/selectors'; @@ -10,6 +15,9 @@ describe('showKerberosPasswordField', function () { let browser: CompassBrowser; before(async function () { + if (TEST_COMPASS_WEB) { + this.skip(); + } compass = await init(this.test?.fullTitle()); browser = compass.browser; }); @@ -19,6 +27,9 @@ describe('showKerberosPasswordField', function () { }); after(async function () { + if (TEST_COMPASS_WEB) { + return; + } await cleanup(compass); }); diff --git a/packages/compass-web/sandbox/index.tsx b/packages/compass-web/sandbox/index.tsx index aa9f86a7a1e..559a21a34a5 100644 --- a/packages/compass-web/sandbox/index.tsx +++ b/packages/compass-web/sandbox/index.tsx @@ -204,6 +204,7 @@ const App = () => { }} >