From cab4305f39a844956f0fda9b0f65e243da44fb2b Mon Sep 17 00:00:00 2001 From: Rhys Howell Date: Mon, 24 Feb 2025 13:05:04 -0500 Subject: [PATCH 1/3] feat(schema): enable export schema feature --- .../tests/collection-schema-tab.test.ts | 76 +++++++++---------- .../src/feature-flags.ts | 2 +- .../schema-toolbar/schema-toolbar.spec.tsx | 17 +---- 3 files changed, 37 insertions(+), 58 deletions(-) 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 8817366e613..da0b01be5d6 100644 --- a/packages/compass-e2e-tests/tests/collection-schema-tab.test.ts +++ b/packages/compass-e2e-tests/tests/collection-schema-tab.test.ts @@ -109,53 +109,45 @@ describe('Collection schema tab', function () { }); } - describe('with the enableExportSchema feature flag enabled', function () { - beforeEach(async function () { - // TODO(COMPASS-8819): remove web skip when defaulted true. - skipForWeb(this, "can't toggle features in compass-web"); - await browser.setFeature('enableExportSchema', true); - }); - - it('shows an exported schema to copy', async function () { - await browser.navigateToCollectionTab( - DEFAULT_CONNECTION_NAME_1, - 'test', - 'numbers', - 'Schema' - ); - await browser.clickVisible(Selectors.AnalyzeSchemaButton); + it('shows an exported schema to copy', 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(); + const element = browser.$(Selectors.SchemaFieldList); + await element.waitForDisplayed(); - await browser.clickVisible(Selectors.ExportSchemaButton); + await browser.clickVisible(Selectors.ExportSchemaButton); - const exportModal = browser.$(Selectors.ExportSchemaFormatOptions); - await exportModal.waitForDisplayed(); + const exportModal = browser.$(Selectors.ExportSchemaFormatOptions); + await exportModal.waitForDisplayed(); - const exportSchemaContent = browser.$(Selectors.ExportSchemaOutput); - await exportSchemaContent.waitForDisplayed(); - const text = await browser.getCodemirrorEditorText( - Selectors.ExportSchemaOutput - ); - const parsedText = JSON.parse(text); - delete parsedText.$defs; - expect(parsedText).to.deep.equal({ - $schema: 'https://json-schema.org/draft/2020-12/schema', - type: 'object', - required: ['_id', 'i', 'j'], - properties: { - _id: { - $ref: '#/$defs/ObjectId', - }, - i: { - type: 'integer', - }, - j: { - type: 'integer', - }, + const exportSchemaContent = browser.$(Selectors.ExportSchemaOutput); + await exportSchemaContent.waitForDisplayed(); + const text = await browser.getCodemirrorEditorText( + Selectors.ExportSchemaOutput + ); + const parsedText = JSON.parse(text); + delete parsedText.$defs; + expect(parsedText).to.deep.equal({ + $schema: 'https://json-schema.org/draft/2020-12/schema', + type: 'object', + required: ['_id', 'i', 'j'], + properties: { + _id: { + $ref: '#/$defs/ObjectId', + }, + i: { + type: 'integer', + }, + j: { + type: 'integer', }, - }); + }, }); }); 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/schema-toolbar.spec.tsx b/packages/compass-schema/src/components/schema-toolbar/schema-toolbar.spec.tsx index b9ec2a1d13c..9d15cd99175 100644 --- a/packages/compass-schema/src/components/schema-toolbar/schema-toolbar.spec.tsx +++ b/packages/compass-schema/src/components/schema-toolbar/schema-toolbar.spec.tsx @@ -147,20 +147,7 @@ describe('SchemaToolbar', function () { 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; - }); + it('renders the export schema button', function () { + expect(screen.getByTestId(exportSchemaTestId)).to.be.visible; }); }); From 365d22d85abd59fd910524d60f8b751b06ad519e Mon Sep 17 00:00:00 2001 From: Rhys Howell Date: Tue, 25 Feb 2025 11:14:06 -0500 Subject: [PATCH 2/3] fixup: update test --- .../src/components/schema-toolbar/schema-toolbar.spec.tsx | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/packages/compass-schema/src/components/schema-toolbar/schema-toolbar.spec.tsx b/packages/compass-schema/src/components/schema-toolbar/schema-toolbar.spec.tsx index 9d15cd99175..3e66cdbecfd 100644 --- a/packages/compass-schema/src/components/schema-toolbar/schema-toolbar.spec.tsx +++ b/packages/compass-schema/src/components/schema-toolbar/schema-toolbar.spec.tsx @@ -138,16 +138,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; - }); - - it('renders the export schema button', function () { expect(screen.getByTestId(exportSchemaTestId)).to.be.visible; }); }); From b2483f23d20d94f6e6741329297523e332475cbd Mon Sep 17 00:00:00 2001 From: Rhys Howell Date: Fri, 21 Mar 2025 11:35:34 -0400 Subject: [PATCH 3/3] fixup: lint --- packages/compass-e2e-tests/tests/collection-schema-tab.test.ts | 1 - 1 file changed, 1 deletion(-) 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 a45fa8f0135..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';