This commit is contained in:
Steve Faulkner
2021-04-28 18:59:13 -05:00
parent 7b5b752d9c
commit 3a6c7f9f94
5 changed files with 17 additions and 21 deletions

View File

@@ -1,4 +1,3 @@
import Q from "q";
import * as Constants from "../../Common/Constants";
import { configContext } from "../../ConfigContext";
import * as DataModels from "../../Contracts/DataModels";
@@ -21,8 +20,7 @@ export default class AuthHeadersUtil {
const databaseAccount = userContext.databaseAccount;
const subscriptionId: string = userContext.subscriptionId;
const resourceGroup = userContext.resourceGroup;
const defaultExperience: string = DefaultExperienceUtility.getDefaultExperienceFromDatabaseAccount(databaseAccount);
const apiKind: DataModels.ApiKind = DefaultExperienceUtility.getApiKindFromDefaultExperience(defaultExperience);
const apiKind: DataModels.ApiKind = DefaultExperienceUtility.getApiKindFromDefaultExperience(userContext.apiType);
const accountEndpoint = (databaseAccount && databaseAccount.properties.documentEndpoint) || "";
const sid = subscriptionId || "";
const rg = resourceGroup || "";

View File

@@ -1,6 +1,6 @@
import * as Constants from "../Common/Constants";
import * as DataModels from "../Contracts/DataModels";
import * as ViewModels from "../Contracts/ViewModels";
import { userContext } from "../UserContext";
import { DefaultExperienceUtility } from "./DefaultExperienceUtility";
describe("Default Experience Utility", () => {
@@ -38,31 +38,29 @@ describe("Default Experience Utility", () => {
});
describe("getApiKindFromDefaultExperience()", () => {
function runScenario(defaultExperience: string, expectedApiKind: number): void {
function runScenario(defaultExperience: typeof userContext.apiType, expectedApiKind: number): void {
const resolvedApiKind = DefaultExperienceUtility.getApiKindFromDefaultExperience(defaultExperience);
expect(resolvedApiKind).toEqual(expectedApiKind);
}
describe("On SQL", () => {
it("should return SQL", () => runScenario(Constants.DefaultAccountExperience.DocumentDB, DataModels.ApiKind.SQL));
it("should return SQL", () => runScenario("SQL", DataModels.ApiKind.SQL));
});
describe("On MongoDB", () => {
it("should return MongoDB", () =>
runScenario(Constants.DefaultAccountExperience.MongoDB, DataModels.ApiKind.MongoDB));
it("should return MongoDB", () => runScenario("Mongo", DataModels.ApiKind.MongoDB));
});
describe("On Table", () => {
it("should return Table", () => runScenario(Constants.DefaultAccountExperience.Table, DataModels.ApiKind.Table));
it("should return Table", () => runScenario("Tables", DataModels.ApiKind.Table));
});
describe("On Cassandra", () => {
it("should return Cassandra", () =>
runScenario(Constants.DefaultAccountExperience.Cassandra, DataModels.ApiKind.Cassandra));
it("should return Cassandra", () => runScenario("Cassandra", DataModels.ApiKind.Cassandra));
});
describe("On Graph", () => {
it("should return Graph", () => runScenario(Constants.DefaultAccountExperience.Graph, DataModels.ApiKind.Graph));
it("should return Graph", () => runScenario("Gremlin", DataModels.ApiKind.Graph));
});
describe("On null", () => {

View File

@@ -1,6 +1,7 @@
import * as _ from "underscore";
import * as Constants from "../Common/Constants";
import * as DataModels from "../Contracts/DataModels";
import { userContext } from "../UserContext";
export class DefaultExperienceUtility {
public static getDefaultExperienceFromDatabaseAccount(databaseAccount: DataModels.DatabaseAccount): string | null {
@@ -15,22 +16,21 @@ export class DefaultExperienceUtility {
return DefaultExperienceUtility._getDefaultExperience(kind, capabilities);
}
public static getApiKindFromDefaultExperience(defaultExperience: string): DataModels.ApiKind {
public static getApiKindFromDefaultExperience(defaultExperience: typeof userContext.apiType): DataModels.ApiKind {
if (!defaultExperience) {
return DataModels.ApiKind.SQL;
}
switch (defaultExperience) {
case Constants.DefaultAccountExperience.DocumentDB:
case "SQL":
return DataModels.ApiKind.SQL;
case Constants.DefaultAccountExperience.MongoDB:
case Constants.DefaultAccountExperience.ApiForMongoDB:
case "Mongo":
return DataModels.ApiKind.MongoDB;
case Constants.DefaultAccountExperience.Table:
case "Tables":
return DataModels.ApiKind.Table;
case Constants.DefaultAccountExperience.Cassandra:
case "Cassandra":
return DataModels.ApiKind.Cassandra;
case Constants.DefaultAccountExperience.Graph:
case "Gremlin":
return DataModels.ApiKind.Graph;
default:
return DataModels.ApiKind.SQL;

View File

@@ -27,7 +27,7 @@ interface UserContext {
readonly hasWriteAccess: boolean;
}
type ApiType = "SQL" | "Mongo" | "Gremlin" | "Tables" | "Cassandra";
export type ApiType = "SQL" | "Mongo" | "Gremlin" | "Tables" | "Cassandra";
export type PortalEnv = "localhost" | "blackforest" | "fairfax" | "mooncake" | "prod" | "dev";
const features = extractFeatures();

View File

@@ -282,7 +282,7 @@ export function getUpsellMessage(
}
}
export function getCollectionName(defaultExperience: string): string {
export function getCollectionName(defaultExperience: typeof userContext.apiType): string {
switch (defaultExperience) {
case "SQL":
return "container";