From 8f0bb1add81b3a3ee0f9e80dc417f86d2e5870eb Mon Sep 17 00:00:00 2001 From: hardiknai-techm Date: Thu, 15 Apr 2021 13:04:51 +0530 Subject: [PATCH] Remove Explorer.defaultExperience --- src/Explorer/Explorer.tsx | 16 +++++--------- src/Explorer/Panes/AddCollectionPane.test.ts | 23 +++++++++++++++----- src/Explorer/Panes/AddCollectionPane.ts | 2 +- src/Explorer/Panes/AddDatabasePane.ts | 2 +- src/Explorer/Tabs/DocumentsTab.test.ts | 15 +++++++++---- src/Explorer/Tabs/NotebookV2Tab.ts | 2 +- 6 files changed, 37 insertions(+), 23 deletions(-) diff --git a/src/Explorer/Explorer.tsx b/src/Explorer/Explorer.tsx index 6883ab29c..7558d4c88 100644 --- a/src/Explorer/Explorer.tsx +++ b/src/Explorer/Explorer.tsx @@ -111,11 +111,7 @@ export default class Explorer { * */ public databaseAccount: ko.Observable; public collectionCreationDefaults: ViewModels.CollectionCreationDefaults = SharedConstants.CollectionCreationDefaults; - /** - * @deprecated - * Use userContext.apiType instead - * */ - public defaultExperience: ko.Observable; + /** * @deprecated * Compare a string with userContext.apiType instead: userContext.apiType === "Cassandra" @@ -402,12 +398,10 @@ export default class Explorer { bounds: splitterBounds, direction: SplitterDirection.Vertical, }); - this.defaultExperience = ko.observable(); this.databaseAccount.subscribe((databaseAccount) => { const defaultExperience: string = DefaultExperienceUtility.getDefaultExperienceFromDatabaseAccount( databaseAccount ); - this.defaultExperience(defaultExperience); // TODO. Remove this entirely updateUserContext({ defaultExperience: DefaultExperienceUtility.mapDefaultExperienceStringToEnum(defaultExperience), @@ -415,16 +409,16 @@ export default class Explorer { }); this.isPreferredApiCassandra = ko.computed(() => { - const defaultExperience = (this.defaultExperience && this.defaultExperience()) || ""; + const defaultExperience = userContext.apiType || ""; return defaultExperience.toLowerCase() === Constants.DefaultAccountExperience.Cassandra.toLowerCase(); }); this.isPreferredApiGraph = ko.computed(() => { - const defaultExperience = (this.defaultExperience && this.defaultExperience()) || ""; + const defaultExperience = userContext.apiType || ""; return defaultExperience.toLowerCase() === Constants.DefaultAccountExperience.Graph.toLowerCase(); }); this.isPreferredApiTable = ko.computed(() => { - const defaultExperience = (this.defaultExperience && this.defaultExperience()) || ""; + const defaultExperience = userContext.apiType || ""; return defaultExperience.toLowerCase() === Constants.DefaultAccountExperience.Table.toLowerCase(); }); @@ -449,7 +443,7 @@ export default class Explorer { ); this.isPreferredApiMongoDB = ko.computed(() => { - const defaultExperience = (this.defaultExperience && this.defaultExperience()) || ""; + const defaultExperience = userContext.apiType || ""; if (defaultExperience.toLowerCase() === Constants.DefaultAccountExperience.MongoDB.toLowerCase()) { return true; } diff --git a/src/Explorer/Panes/AddCollectionPane.test.ts b/src/Explorer/Panes/AddCollectionPane.test.ts index 98fc2890d..d56efdfd9 100644 --- a/src/Explorer/Panes/AddCollectionPane.test.ts +++ b/src/Explorer/Panes/AddCollectionPane.test.ts @@ -1,7 +1,8 @@ import * as Constants from "../../Common/Constants"; -import AddCollectionPane from "./AddCollectionPane"; -import Explorer from "../Explorer"; import { DatabaseAccount } from "../../Contracts/DataModels"; +import { updateUserContext } from "../../UserContext"; +import Explorer from "../Explorer"; +import AddCollectionPane from "./AddCollectionPane"; describe("Add Collection Pane", () => { describe("isValid()", () => { @@ -43,14 +44,26 @@ describe("Add Collection Pane", () => { }); it("should be true if graph API and partition key is not /id nor /label", () => { - explorer.defaultExperience(Constants.DefaultAccountExperience.Graph.toLowerCase()); + updateUserContext({ + databaseAccount: { + properties: { + capabilities: [{ name: "EnableGremlin" }], + }, + } as DatabaseAccount, + }); const addCollectionPane = explorer.addCollectionPane as AddCollectionPane; addCollectionPane.partitionKey("/blah"); expect(addCollectionPane.isValid()).toBe(true); }); it("should be false if graph API and partition key is /id or /label", () => { - explorer.defaultExperience(Constants.DefaultAccountExperience.Graph.toLowerCase()); + updateUserContext({ + databaseAccount: { + properties: { + capabilities: [{ name: "EnableGremlin" }], + }, + } as DatabaseAccount, + }); const addCollectionPane = explorer.addCollectionPane as AddCollectionPane; addCollectionPane.partitionKey("/id"); expect(addCollectionPane.isValid()).toBe(false); @@ -60,7 +73,7 @@ describe("Add Collection Pane", () => { }); it("should be true for any non-graph API with /id or /label partition key", () => { - explorer.defaultExperience(Constants.DefaultAccountExperience.DocumentDB.toLowerCase()); + updateUserContext({}); const addCollectionPane = explorer.addCollectionPane as AddCollectionPane; addCollectionPane.partitionKey("/id"); diff --git a/src/Explorer/Panes/AddCollectionPane.ts b/src/Explorer/Panes/AddCollectionPane.ts index 68303780d..1b8d1be82 100644 --- a/src/Explorer/Panes/AddCollectionPane.ts +++ b/src/Explorer/Panes/AddCollectionPane.ts @@ -486,7 +486,7 @@ export default class AddCollectionPane extends ContextualPaneBase { userContext.portalEnv, this.isFreeTierAccount(), this.container.isFirstResourceCreated(), - this.container.defaultExperience(), + userContext.apiType, true ); }); diff --git a/src/Explorer/Panes/AddDatabasePane.ts b/src/Explorer/Panes/AddDatabasePane.ts index dff1f08ff..b6f23e867 100644 --- a/src/Explorer/Panes/AddDatabasePane.ts +++ b/src/Explorer/Panes/AddDatabasePane.ts @@ -238,7 +238,7 @@ export default class AddDatabasePane extends ContextualPaneBase { userContext.portalEnv, this.isFreeTierAccount(), this.container.isFirstResourceCreated(), - this.container.defaultExperience(), + userContext.apiType, false ); }); diff --git a/src/Explorer/Tabs/DocumentsTab.test.ts b/src/Explorer/Tabs/DocumentsTab.test.ts index df46d171a..ac3cd5d85 100644 --- a/src/Explorer/Tabs/DocumentsTab.test.ts +++ b/src/Explorer/Tabs/DocumentsTab.test.ts @@ -1,10 +1,11 @@ import * as ko from "knockout"; +import { DatabaseAccount } from "../../Contracts/DataModels"; import * as ViewModels from "../../Contracts/ViewModels"; -import * as Constants from "../../Common/Constants"; -import DocumentsTab from "./DocumentsTab"; +import { updateUserContext } from "../../UserContext"; +import { CommandButtonComponentProps } from "../Controls/CommandButton/CommandButtonComponent"; import Explorer from "../Explorer"; import DocumentId from "../Tree/DocumentId"; -import { CommandButtonComponentProps } from "../Controls/CommandButton/CommandButtonComponent"; +import DocumentsTab from "./DocumentsTab"; describe("Documents tab", () => { describe("buildQuery", () => { @@ -29,7 +30,13 @@ describe("Documents tab", () => { const explorer = new Explorer(); const mongoExplorer = new Explorer(); - mongoExplorer.defaultExperience(Constants.DefaultAccountExperience.MongoDB); + updateUserContext({ + databaseAccount: { + properties: { + capabilities: [{ name: "EnableGremlin" }], + }, + } as DatabaseAccount, + }); const collectionWithoutPartitionKey = ({ id: ko.observable("foo"), diff --git a/src/Explorer/Tabs/NotebookV2Tab.ts b/src/Explorer/Tabs/NotebookV2Tab.ts index a7c2242c2..91779e9dd 100644 --- a/src/Explorer/Tabs/NotebookV2Tab.ts +++ b/src/Explorer/Tabs/NotebookV2Tab.ts @@ -56,7 +56,7 @@ export default class NotebookTabV2 extends TabsBase { NotebookTabV2.clientManager = new NotebookClientV2({ connectionInfo: this.container.notebookServerInfo(), databaseAccountName: this.container.databaseAccount().name, - defaultExperience: this.container.defaultExperience(), + defaultExperience: userContext.apiType, contentProvider: this.container.notebookManager?.notebookContentProvider, }); }