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 530cf7d1eca..c771c4da7d8 100644 --- a/packages/compass-e2e-tests/tests/collection-schema-tab.test.ts +++ b/packages/compass-e2e-tests/tests/collection-schema-tab.test.ts @@ -6,7 +6,6 @@ import { screenshotIfFailed, skipForWeb, DEFAULT_CONNECTION_NAME_1, - TEST_COMPASS_WEB, } from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; @@ -115,12 +114,7 @@ describe('Collection schema tab', function () { }); } - describe('with the enableExportSchema feature flag enabled', function () { - beforeEach(async function () { - if (!TEST_COMPASS_WEB) - await browser.setFeature('enableExportSchema', true); - }); - + describe('with exporting schema', function () { const filename = 'schema-test-numbers-mongoDBJSON.json'; before(() => { @@ -140,9 +134,6 @@ describe('Collection schema tab', function () { ); await browser.clickVisible(Selectors.AnalyzeSchemaButton); - const element = browser.$(Selectors.SchemaFieldList); - await element.waitForDisplayed(); - await browser.clickVisible(Selectors.ExportSchemaButton); const exportModal = browser.$(Selectors.ExportSchemaFormatOptions); @@ -171,58 +162,58 @@ describe('Collection schema tab', function () { }, }, }); - }); - - it('can download schema (MongoDB $jsonSchema)', async function () { - await browser.navigateToCollectionTab( - DEFAULT_CONNECTION_NAME_1, - 'test', - 'numbers', - 'Schema' - ); - await browser.clickVisible(Selectors.AnalyzeSchemaButton); - - const element = browser.$(Selectors.SchemaFieldList); - await element.waitForDisplayed(); - - await browser.clickVisible(Selectors.ExportSchemaButton); - const exportModal = browser.$(Selectors.ExportSchemaFormatOptions); - await exportModal.waitForDisplayed(); - - await browser.clickVisible( - Selectors.exportSchemaFormatOption('mongoDBJSON') - ); - - const exportSchemaButton = browser.$( - Selectors.ExportSchemaDownloadButton - ); - await exportSchemaButton.waitForEnabled(); - await exportSchemaButton.click(); - - const { fileExists, filePath } = await waitForFileDownload( - filename, - browser - ); - expect(fileExists).to.be.true; - - const content = readFileSync(filePath, 'utf-8'); - expect(JSON.parse(content)).to.deep.equal({ - $jsonSchema: { - bsonType: 'object', - required: ['_id', 'i', 'j'], - properties: { - _id: { - bsonType: 'objectId', - }, - i: { - bsonType: 'int', - }, - j: { - bsonType: 'int', + it('can download schema (MongoDB $jsonSchema)', async function () { + await browser.navigateToCollectionTab( + DEFAULT_CONNECTION_NAME_1, + 'test', + 'numbers', + 'Schema' + ); + await browser.clickVisible(Selectors.AnalyzeSchemaButton); + + const element = browser.$(Selectors.SchemaFieldList); + await element.waitForDisplayed(); + + await browser.clickVisible(Selectors.ExportSchemaButton); + + const exportModal = browser.$(Selectors.ExportSchemaFormatOptions); + await exportModal.waitForDisplayed(); + + await browser.clickVisible( + Selectors.exportSchemaFormatOption('mongoDBJSON') + ); + + const exportSchemaButton = browser.$( + Selectors.ExportSchemaDownloadButton + ); + await exportSchemaButton.waitForEnabled(); + await exportSchemaButton.click(); + + const { fileExists, filePath } = await waitForFileDownload( + filename, + browser + ); + expect(fileExists).to.be.true; + + const content = readFileSync(filePath, 'utf-8'); + expect(JSON.parse(content)).to.deep.equal({ + $jsonSchema: { + bsonType: 'object', + required: ['_id', 'i', 'j'], + properties: { + _id: { + bsonType: 'objectId', + }, + i: { + bsonType: 'int', + }, + j: { + bsonType: 'int', + }, }, }, - }, + }); }); }); }); diff --git a/packages/compass-preferences-model/src/feature-flags.ts b/packages/compass-preferences-model/src/feature-flags.ts index ba21f08a7b0..07d88b7a978 100644 --- a/packages/compass-preferences-model/src/feature-flags.ts +++ b/packages/compass-preferences-model/src/feature-flags.ts @@ -106,7 +106,7 @@ export const featureFlags: Required<{ * Feature flag for export schema. Epic: COMPASS-6862. */ enableExportSchema: { - stage: 'development', + stage: 'released', description: { short: 'Enable schema export', }, diff --git a/packages/compass-schema/src/components/schema-toolbar.spec.tsx b/packages/compass-schema/src/components/schema-toolbar.spec.tsx index 9c70e85e7e9..d06a9815cc2 100644 --- a/packages/compass-schema/src/components/schema-toolbar.spec.tsx +++ b/packages/compass-schema/src/components/schema-toolbar.spec.tsx @@ -140,29 +140,11 @@ describe('SchemaToolbar', function () { expect(screen.getByTestId('query-bar')).to.be.visible; }); - it('does not render the export schema button', function () { + it('renders the export schema button', function () { renderSchemaToolbar({ sampleSize: 100, }); - expect(screen.getByText(/documents/)).to.be.visible; - - expect(screen.queryByTestId(exportSchemaTestId)).to.not.exist; - }); - - describe('when rendered with the enableExportSchema feature flag true', function () { - beforeEach(function () { - renderSchemaToolbar( - { - sampleSize: 100, - }, - { - enableExportSchema: true, - } - ); - }); - it('renders the export schema button', function () { - expect(screen.getByTestId(exportSchemaTestId)).to.be.visible; - }); + expect(screen.getByTestId(exportSchemaTestId)).to.be.visible; }); });