From a298fd83898a044aaeb9621fea80ca835ec4803b Mon Sep 17 00:00:00 2001 From: Srinath Narayanan Date: Thu, 21 Jan 2021 10:56:05 -0800 Subject: [PATCH] Added message to indicate compound indexes are not supported in Mongo Index editor (#395) * mongo message * Added test and bug fix in Main.tsx * format changes * added new formatting * added null check --- .../Controls/Settings/SettingsRenderUtils.tsx | 7 +++++++ .../MongoIndexingPolicyComponent.test.tsx | 8 ++++++++ .../MongoIndexingPolicyComponent.tsx | 13 +++++++++++++ .../MongoIndexingPolicyComponent.test.tsx.snap | 6 ++++++ src/Main.tsx | 1 + 5 files changed, 35 insertions(+) diff --git a/src/Explorer/Controls/Settings/SettingsRenderUtils.tsx b/src/Explorer/Controls/Settings/SettingsRenderUtils.tsx index 2c1ece979..003b665f8 100644 --- a/src/Explorer/Controls/Settings/SettingsRenderUtils.tsx +++ b/src/Explorer/Controls/Settings/SettingsRenderUtils.tsx @@ -441,6 +441,13 @@ export const mongoIndexingPolicyDisclaimer: JSX.Element = ( ); +export const mongoCompoundIndexNotSupportedMessage: JSX.Element = ( + + Collections with compound indexes are not yet supported in the indexing editor. To modify indexing policy for this + collection, use the Mongo Shell. + +); + export const mongoIndexingPolicyAADError: JSX.Element = ( diff --git a/src/Explorer/Controls/Settings/SettingsSubComponents/MongoIndexingPolicy/MongoIndexingPolicyComponent.test.tsx b/src/Explorer/Controls/Settings/SettingsSubComponents/MongoIndexingPolicy/MongoIndexingPolicyComponent.test.tsx index 07cee23d7..b0f8e9e57 100644 --- a/src/Explorer/Controls/Settings/SettingsSubComponents/MongoIndexingPolicy/MongoIndexingPolicyComponent.test.tsx +++ b/src/Explorer/Controls/Settings/SettingsSubComponents/MongoIndexingPolicy/MongoIndexingPolicyComponent.test.tsx @@ -36,6 +36,14 @@ describe("MongoIndexingPolicyComponent", () => { expect(wrapper).toMatchSnapshot(); }); + it("error shown for collection with compound indexes", () => { + const props = { ...baseProps, mongoIndexes: [{ key: { keys: ["prop1", "prop2"] } }] }; + const wrapper = shallow(); + expect(wrapper).toMatchSnapshot(); + const mongoIndexingPolicyComponent = wrapper.instance() as MongoIndexingPolicyComponent; + expect(mongoIndexingPolicyComponent.hasCompoundIndex()).toBeTruthy(); + }); + describe("AddMongoIndexProps test", () => { const wrapper = shallow(); const mongoIndexingPolicyComponent = wrapper.instance() as MongoIndexingPolicyComponent; diff --git a/src/Explorer/Controls/Settings/SettingsSubComponents/MongoIndexingPolicy/MongoIndexingPolicyComponent.tsx b/src/Explorer/Controls/Settings/SettingsSubComponents/MongoIndexingPolicy/MongoIndexingPolicyComponent.tsx index 506acdee7..5493f7dda 100644 --- a/src/Explorer/Controls/Settings/SettingsSubComponents/MongoIndexingPolicy/MongoIndexingPolicyComponent.tsx +++ b/src/Explorer/Controls/Settings/SettingsSubComponents/MongoIndexingPolicy/MongoIndexingPolicyComponent.tsx @@ -24,6 +24,7 @@ import { indexingPolicynUnsavedWarningMessage, infoAndToolTipTextStyle, onRenderRow, + mongoCompoundIndexNotSupportedMessage, } from "../../SettingsRenderUtils"; import { MongoIndex } from "../../../../../Utils/arm/generatedClients/2020-04-01/types"; import { @@ -282,6 +283,15 @@ export class MongoIndexingPolicyComponent extends React.Component { + for (let index = 0; index < this.props.mongoIndexes.length; index++) { + if (this.props.mongoIndexes[index].key?.keys?.length > 1) { + return true; + } + } + return false; + }; + private renderWarningMessage = (): JSX.Element => { let warningMessage: JSX.Element; if (this.getMongoWarningNotificationMessage()) { @@ -303,6 +313,9 @@ export class MongoIndexingPolicyComponent extends React.Component {this.renderWarningMessage()} diff --git a/src/Explorer/Controls/Settings/SettingsSubComponents/MongoIndexingPolicy/__snapshots__/MongoIndexingPolicyComponent.test.tsx.snap b/src/Explorer/Controls/Settings/SettingsSubComponents/MongoIndexingPolicy/__snapshots__/MongoIndexingPolicyComponent.test.tsx.snap index 577fa2862..06443ee16 100644 --- a/src/Explorer/Controls/Settings/SettingsSubComponents/MongoIndexingPolicy/__snapshots__/MongoIndexingPolicyComponent.test.tsx.snap +++ b/src/Explorer/Controls/Settings/SettingsSubComponents/MongoIndexingPolicy/__snapshots__/MongoIndexingPolicyComponent.test.tsx.snap @@ -1,5 +1,11 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`MongoIndexingPolicyComponent error shown for collection with compound indexes 1`] = ` + + Collections with compound indexes are not yet supported in the indexing editor. To modify indexing policy for this collection, use the Mongo Shell. + +`; + exports[`MongoIndexingPolicyComponent renders 1`] = ` { explorer.databaseAccount(emulatorAccount); explorer.isAccountReady(true); } else if (config.platform === Platform.Portal) { + window.authType = AuthType.AAD; explorer = new Explorer(); // In development mode, try to load the iframe message from session storage.