mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2025-02-19 18:56:36 +00:00
Load Legacy Mongo Shell V2 by default (#1424)
- Load Legacy Mongo Shell V2 by default - Add/Keep feature flags to load from portal BE and V1 - Skip code coverage if skipCodeCoverage environment variable is set to "true"
This commit is contained in:
parent
874cec26fc
commit
fb8871cfbf
@ -18,7 +18,8 @@ module.exports = {
|
|||||||
// clearMocks: false,
|
// clearMocks: false,
|
||||||
|
|
||||||
// Indicates whether the coverage information should be collected while executing the test
|
// Indicates whether the coverage information should be collected while executing the test
|
||||||
collectCoverage: true,
|
|
||||||
|
collectCoverage: process.env.skipCodeCoverage === "true" ? false : true,
|
||||||
|
|
||||||
// An array of glob patterns indicating a set of files for which coverage information should be collected
|
// An array of glob patterns indicating a set of files for which coverage information should be collected
|
||||||
collectCoverageFrom: ["src/**/*.{js,jsx,ts,tsx}"],
|
collectCoverageFrom: ["src/**/*.{js,jsx,ts,tsx}"],
|
||||||
|
@ -12,18 +12,19 @@ describe("getMongoShellOrigin", () => {
|
|||||||
new URLSearchParams({
|
new URLSearchParams({
|
||||||
"feature.enableLegacyMongoShellV1": "false",
|
"feature.enableLegacyMongoShellV1": "false",
|
||||||
"feature.enableLegacyMongoShellV2": "false",
|
"feature.enableLegacyMongoShellV2": "false",
|
||||||
"feature.enableLegacyMongoShellV1Dist": "false",
|
"feature.enableLegacyMongoShellV1Debug": "false",
|
||||||
"feature.enableLegacyMongoShellV2Dist": "false",
|
"feature.enableLegacyMongoShellV2Debug": "false",
|
||||||
|
"feature.loadLegacyMongoShellFromBE": "false",
|
||||||
})
|
})
|
||||||
),
|
),
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should return BACKEND_ENDPOINT by default", () => {
|
it("should return by default", () => {
|
||||||
expect(getMongoShellOrigin()).toBe(configContext.BACKEND_ENDPOINT);
|
expect(getMongoShellOrigin()).toBe(window.origin);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should return /mongoshell/index.html when enableLegacyMongoShellV1", () => {
|
it("should return window.origin when enableLegacyMongoShellV1", () => {
|
||||||
updateUserContext({
|
updateUserContext({
|
||||||
features: extractFeatures(
|
features: extractFeatures(
|
||||||
new URLSearchParams({
|
new URLSearchParams({
|
||||||
@ -35,7 +36,7 @@ describe("getMongoShellOrigin", () => {
|
|||||||
expect(getMongoShellOrigin()).toBe(window.origin);
|
expect(getMongoShellOrigin()).toBe(window.origin);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should return /mongoshell/index.html when enableLegacyMongoShellV2===true", () => {
|
it("should return window.origin when enableLegacyMongoShellV2===true", () => {
|
||||||
updateUserContext({
|
updateUserContext({
|
||||||
features: extractFeatures(
|
features: extractFeatures(
|
||||||
new URLSearchParams({
|
new URLSearchParams({
|
||||||
@ -47,11 +48,11 @@ describe("getMongoShellOrigin", () => {
|
|||||||
expect(getMongoShellOrigin()).toBe(window.origin);
|
expect(getMongoShellOrigin()).toBe(window.origin);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should return /mongoshell/index.html when enableLegacyMongoShellV1Dist===true", () => {
|
it("should return window.origin when enableLegacyMongoShellV1Debug===true", () => {
|
||||||
updateUserContext({
|
updateUserContext({
|
||||||
features: extractFeatures(
|
features: extractFeatures(
|
||||||
new URLSearchParams({
|
new URLSearchParams({
|
||||||
"feature.enableLegacyMongoShellV1Dist": "true",
|
"feature.enableLegacyMongoShellV1Debug": "true",
|
||||||
})
|
})
|
||||||
),
|
),
|
||||||
});
|
});
|
||||||
@ -59,15 +60,27 @@ describe("getMongoShellOrigin", () => {
|
|||||||
expect(getMongoShellOrigin()).toBe(window.origin);
|
expect(getMongoShellOrigin()).toBe(window.origin);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should return /mongoshell/index.html when enableLegacyMongoShellV2Dist===true", () => {
|
it("should return window.origin when enableLegacyMongoShellV2Debug===true", () => {
|
||||||
updateUserContext({
|
updateUserContext({
|
||||||
features: extractFeatures(
|
features: extractFeatures(
|
||||||
new URLSearchParams({
|
new URLSearchParams({
|
||||||
"feature.enableLegacyMongoShellV2Dist": "true",
|
"feature.enableLegacyMongoShellV2Debug": "true",
|
||||||
})
|
})
|
||||||
),
|
),
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(getMongoShellOrigin()).toBe(window.origin);
|
expect(getMongoShellOrigin()).toBe(window.origin);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("should return BACKEND_ENDPOINT when loadLegacyMongoShellFromBE===true", () => {
|
||||||
|
updateUserContext({
|
||||||
|
features: extractFeatures(
|
||||||
|
new URLSearchParams({
|
||||||
|
"feature.loadLegacyMongoShellFromBE": "true",
|
||||||
|
})
|
||||||
|
),
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(getMongoShellOrigin()).toBe(configContext.BACKEND_ENDPOINT);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
@ -2,14 +2,9 @@ import { configContext } from "../../../ConfigContext";
|
|||||||
import { userContext } from "../../../UserContext";
|
import { userContext } from "../../../UserContext";
|
||||||
|
|
||||||
export function getMongoShellOrigin(): string {
|
export function getMongoShellOrigin(): string {
|
||||||
if (
|
if (userContext.features.loadLegacyMongoShellFromBE === true) {
|
||||||
userContext.features.enableLegacyMongoShellV1 === true ||
|
return configContext.BACKEND_ENDPOINT;
|
||||||
userContext.features.enableLegacyMongoShellV2 === true ||
|
|
||||||
userContext.features.enableLegacyMongoShellV1Dist === true ||
|
|
||||||
userContext.features.enableLegacyMongoShellV2Dist === true
|
|
||||||
) {
|
|
||||||
return window.origin;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return configContext.BACKEND_ENDPOINT;
|
return window.origin;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { extractFeatures } from "Platform/Hosted/extractFeatures";
|
import { extractFeatures } from "Platform/Hosted/extractFeatures";
|
||||||
import { Platform, resetConfigContext, updateConfigContext } from "../../../ConfigContext";
|
import { Platform, configContext, resetConfigContext, updateConfigContext } from "../../../ConfigContext";
|
||||||
import { updateUserContext, userContext } from "../../../UserContext";
|
import { updateUserContext, userContext } from "../../../UserContext";
|
||||||
import { getExtensionEndpoint, getMongoShellUrl } from "./getMongoShellUrl";
|
import { getExtensionEndpoint, getMongoShellUrl } from "./getMongoShellUrl";
|
||||||
|
|
||||||
@ -36,8 +36,9 @@ describe("getMongoShellUrl", () => {
|
|||||||
new URLSearchParams({
|
new URLSearchParams({
|
||||||
"feature.enableLegacyMongoShellV1": "false",
|
"feature.enableLegacyMongoShellV1": "false",
|
||||||
"feature.enableLegacyMongoShellV2": "false",
|
"feature.enableLegacyMongoShellV2": "false",
|
||||||
"feature.enableLegacyMongoShellV1Dist": "false",
|
"feature.enableLegacyMongoShellV1Debug": "false",
|
||||||
"feature.enableLegacyMongoShellV2Dist": "false",
|
"feature.enableLegacyMongoShellV2Debug": "false",
|
||||||
|
"feature.loadLegacyMongoShellFromBE": "false",
|
||||||
})
|
})
|
||||||
),
|
),
|
||||||
portalEnv: "prod",
|
portalEnv: "prod",
|
||||||
@ -46,53 +47,16 @@ describe("getMongoShellUrl", () => {
|
|||||||
queryString = `resourceId=${userContext.databaseAccount.id}&accountName=${userContext.databaseAccount.name}&mongoEndpoint=${userContext.databaseAccount.properties.documentEndpoint}`;
|
queryString = `resourceId=${userContext.databaseAccount.id}&accountName=${userContext.databaseAccount.name}&mongoEndpoint=${userContext.databaseAccount.properties.documentEndpoint}`;
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should return {mongoBackendEndpoint}/content/mongoshell/dist/index.html by default ", () => {
|
it("should return /mongoshell/indexv2.html by default ", () => {
|
||||||
expect(getMongoShellUrl()).toBe(`${mongoBackendEndpoint}/content/mongoshell/dist/index.html?${queryString}`);
|
expect(getMongoShellUrl()).toBe(`/mongoshell/indexv2.html?${queryString}`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should return {mongoBackendEndpoint}/content/mongoshell/index.html when portalEnv==localhost ", () => {
|
it("should return /mongoshell/indexv2.html when portalEnv==localhost ", () => {
|
||||||
updateUserContext({
|
updateUserContext({
|
||||||
portalEnv: "localhost",
|
portalEnv: "localhost",
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(getMongoShellUrl()).toBe(`${mongoBackendEndpoint}/content/mongoshell/index.html?${queryString}`);
|
expect(getMongoShellUrl()).toBe(`/mongoshell/indexv2.html?${queryString}`);
|
||||||
});
|
|
||||||
|
|
||||||
it("should return {mongoBackendEndpoint}/content/mongoshell/dist/index.html when configContext.platform !== Platform.Hosted", () => {
|
|
||||||
updateConfigContext({
|
|
||||||
platform: Platform.Portal,
|
|
||||||
});
|
|
||||||
|
|
||||||
expect(getMongoShellUrl()).toBe(`${mongoBackendEndpoint}/content/mongoshell/dist/index.html?${queryString}`);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("should return /content/mongoshell/index.html when configContext.BACKEND_ENDPOINT === '' and configContext.platform === Platform.Hosted", () => {
|
|
||||||
resetConfigContext();
|
|
||||||
updateConfigContext({
|
|
||||||
platform: Platform.Hosted,
|
|
||||||
});
|
|
||||||
|
|
||||||
expect(getMongoShellUrl()).toBe(`/content/mongoshell/dist/index.html?${queryString}`);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("should return /content/mongoshell/index.html when configContext.BACKEND_ENDPOINT === '' and configContext.platform !== Platform.Hosted", () => {
|
|
||||||
resetConfigContext();
|
|
||||||
|
|
||||||
updateConfigContext({
|
|
||||||
platform: Platform.Portal,
|
|
||||||
});
|
|
||||||
|
|
||||||
expect(getMongoShellUrl()).toBe(`/content/mongoshell/dist/index.html?${queryString}`);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("should return /content/mongoshell/index.html when configContext.BACKEND_ENDPOINT !== '' and configContext.platform !== Platform.Hosted", () => {
|
|
||||||
resetConfigContext();
|
|
||||||
updateConfigContext({
|
|
||||||
platform: Platform.Portal,
|
|
||||||
BACKEND_ENDPOINT: mongoBackendEndpoint,
|
|
||||||
});
|
|
||||||
|
|
||||||
expect(getMongoShellUrl()).toBe(`${mongoBackendEndpoint}/content/mongoshell/dist/index.html?${queryString}`);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should return /mongoshell/index.html when enableLegacyMongoShellV1===true", () => {
|
it("should return /mongoshell/index.html when enableLegacyMongoShellV1===true", () => {
|
||||||
@ -119,28 +83,91 @@ describe("getMongoShellUrl", () => {
|
|||||||
expect(getMongoShellUrl()).toBe(`/mongoshell/indexv2.html?${queryString}`);
|
expect(getMongoShellUrl()).toBe(`/mongoshell/indexv2.html?${queryString}`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should return /mongoshell/index.html when enableLegacyMongoShellV1Dist===true", () => {
|
it("should return /mongoshell/index.html when enableLegacyMongoShellV1Debug===true", () => {
|
||||||
updateUserContext({
|
updateUserContext({
|
||||||
features: extractFeatures(
|
features: extractFeatures(
|
||||||
new URLSearchParams({
|
new URLSearchParams({
|
||||||
"feature.enableLegacyMongoShellV1Dist": "true",
|
"feature.enableLegacyMongoShellV1Debug": "true",
|
||||||
})
|
})
|
||||||
),
|
),
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(getMongoShellUrl()).toBe(`/mongoshell/dist/index.html?${queryString}`);
|
expect(getMongoShellUrl()).toBe(`/mongoshell/debug/index.html?${queryString}`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should return /mongoshell/index.html when enableLegacyMongoShellV2Dist===true", () => {
|
it("should return /mongoshell/index.html when enableLegacyMongoShellV2Debug===true", () => {
|
||||||
updateUserContext({
|
updateUserContext({
|
||||||
features: extractFeatures(
|
features: extractFeatures(
|
||||||
new URLSearchParams({
|
new URLSearchParams({
|
||||||
"feature.enableLegacyMongoShellV2Dist": "true",
|
"feature.enableLegacyMongoShellV2Debug": "true",
|
||||||
})
|
})
|
||||||
),
|
),
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(getMongoShellUrl()).toBe(`/mongoshell/dist/indexv2.html?${queryString}`);
|
expect(getMongoShellUrl()).toBe(`/mongoshell/debug/indexv2.html?${queryString}`);
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("loadLegacyMongoShellFromBE===true", () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
resetConfigContext();
|
||||||
|
updateConfigContext({
|
||||||
|
BACKEND_ENDPOINT: mongoBackendEndpoint,
|
||||||
|
platform: Platform.Hosted,
|
||||||
|
});
|
||||||
|
|
||||||
|
updateUserContext({
|
||||||
|
features: extractFeatures(
|
||||||
|
new URLSearchParams({
|
||||||
|
"feature.loadLegacyMongoShellFromBE": "true",
|
||||||
|
})
|
||||||
|
),
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should return /mongoshell/index.html", () => {
|
||||||
|
const endpoint = getExtensionEndpoint(configContext.platform, configContext.BACKEND_ENDPOINT);
|
||||||
|
expect(getMongoShellUrl()).toBe(`${endpoint}/content/mongoshell/debug/index.html?${queryString}`);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("configContext.platform !== Platform.Hosted, should return /mongoshell/indexv2.html", () => {
|
||||||
|
updateConfigContext({
|
||||||
|
platform: Platform.Portal,
|
||||||
|
});
|
||||||
|
|
||||||
|
const endpoint = getExtensionEndpoint(configContext.platform, configContext.BACKEND_ENDPOINT);
|
||||||
|
expect(getMongoShellUrl()).toBe(`${endpoint}/content/mongoshell/debug/index.html?${queryString}`);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("configContext.BACKEND_ENDPOINT !== '' and configContext.platform !== Platform.Hosted, should return /mongoshell/indexv2.html", () => {
|
||||||
|
resetConfigContext();
|
||||||
|
updateConfigContext({
|
||||||
|
platform: Platform.Portal,
|
||||||
|
BACKEND_ENDPOINT: mongoBackendEndpoint,
|
||||||
|
});
|
||||||
|
|
||||||
|
const endpoint = getExtensionEndpoint(configContext.platform, configContext.BACKEND_ENDPOINT);
|
||||||
|
expect(getMongoShellUrl()).toBe(`${endpoint}/content/mongoshell/debug/index.html?${queryString}`);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("configContext.BACKEND_ENDPOINT === '' and configContext.platform === Platform.Hosted, should return /mongoshell/indexv2.html ", () => {
|
||||||
|
resetConfigContext();
|
||||||
|
updateConfigContext({
|
||||||
|
platform: Platform.Hosted,
|
||||||
|
});
|
||||||
|
|
||||||
|
const endpoint = getExtensionEndpoint(configContext.platform, configContext.BACKEND_ENDPOINT);
|
||||||
|
expect(getMongoShellUrl()).toBe(`${endpoint}/content/mongoshell/debug/index.html?${queryString}`);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("configContext.BACKEND_ENDPOINT === '' and configContext.platform !== Platform.Hosted, should return /mongoshell/indexv2.html", () => {
|
||||||
|
resetConfigContext();
|
||||||
|
updateConfigContext({
|
||||||
|
platform: Platform.Portal,
|
||||||
|
});
|
||||||
|
|
||||||
|
const endpoint = getExtensionEndpoint(configContext.platform, configContext.BACKEND_ENDPOINT);
|
||||||
|
expect(getMongoShellUrl()).toBe(`${endpoint}/content/mongoshell/debug/index.html?${queryString}`);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -12,25 +12,28 @@ export function getMongoShellUrl(): string {
|
|||||||
return `/mongoshell/index.html?${queryString}`;
|
return `/mongoshell/index.html?${queryString}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (userContext.features.enableLegacyMongoShellV1Dist === true) {
|
if (userContext.features.enableLegacyMongoShellV1Debug === true) {
|
||||||
return `/mongoshell/dist/index.html?${queryString}`;
|
return `/mongoshell/debug/index.html?${queryString}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (userContext.features.enableLegacyMongoShellV2 === true) {
|
if (userContext.features.enableLegacyMongoShellV2 === true) {
|
||||||
return `/mongoshell/indexv2.html?${queryString}`;
|
return `/mongoshell/indexv2.html?${queryString}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (userContext.features.enableLegacyMongoShellV2Dist === true) {
|
if (userContext.features.enableLegacyMongoShellV2Debug === true) {
|
||||||
return `/mongoshell/dist/indexv2.html?${queryString}`;
|
return `/mongoshell/debug/indexv2.html?${queryString}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
const extensionEndpoint: string = getExtensionEndpoint(configContext.platform, configContext.BACKEND_ENDPOINT);
|
|
||||||
|
|
||||||
if (userContext.portalEnv === "localhost") {
|
if (userContext.portalEnv === "localhost") {
|
||||||
return `${extensionEndpoint}/content/mongoshell/index.html?${queryString}`;
|
return `/mongoshell/indexv2.html?${queryString}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
return `${extensionEndpoint}/content/mongoshell/dist/index.html?${queryString}`;
|
if (userContext.features.loadLegacyMongoShellFromBE === true) {
|
||||||
|
const extensionEndpoint: string = getExtensionEndpoint(configContext.platform, configContext.BACKEND_ENDPOINT);
|
||||||
|
return `${extensionEndpoint}/content/mongoshell/debug/index.html?${queryString}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
return `/mongoshell/indexv2.html?${queryString}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getExtensionEndpoint(platform: string, backendEndpoint: string): string {
|
export function getExtensionEndpoint(platform: string, backendEndpoint: string): string {
|
||||||
|
@ -31,9 +31,10 @@ export type Features = {
|
|||||||
readonly enableThroughputCap: boolean;
|
readonly enableThroughputCap: boolean;
|
||||||
readonly enableHierarchicalKeys: boolean;
|
readonly enableHierarchicalKeys: boolean;
|
||||||
readonly enableLegacyMongoShellV1: boolean;
|
readonly enableLegacyMongoShellV1: boolean;
|
||||||
readonly enableLegacyMongoShellV1Dist: boolean;
|
readonly enableLegacyMongoShellV1Debug: boolean;
|
||||||
readonly enableLegacyMongoShellV2: boolean;
|
readonly enableLegacyMongoShellV2: boolean;
|
||||||
readonly enableLegacyMongoShellV2Dist: boolean;
|
readonly enableLegacyMongoShellV2Debug: boolean;
|
||||||
|
readonly loadLegacyMongoShellFromBE: boolean;
|
||||||
|
|
||||||
// can be set via both flight and feature flag
|
// can be set via both flight and feature flag
|
||||||
autoscaleDefault: boolean;
|
autoscaleDefault: boolean;
|
||||||
@ -97,9 +98,10 @@ export function extractFeatures(given = new URLSearchParams(window.location.sear
|
|||||||
enableThroughputCap: "true" === get("enablethroughputcap"),
|
enableThroughputCap: "true" === get("enablethroughputcap"),
|
||||||
enableHierarchicalKeys: "true" === get("enablehierarchicalkeys"),
|
enableHierarchicalKeys: "true" === get("enablehierarchicalkeys"),
|
||||||
enableLegacyMongoShellV1: "true" === get("enablelegacymongoshellv1"),
|
enableLegacyMongoShellV1: "true" === get("enablelegacymongoshellv1"),
|
||||||
enableLegacyMongoShellV1Dist: "true" === get("enablelegacymongoshellv1dist"),
|
enableLegacyMongoShellV1Debug: "true" === get("enablelegacymongoshellv1debug"),
|
||||||
enableLegacyMongoShellV2: "true" === get("enablelegacymongoshellv2"),
|
enableLegacyMongoShellV2: "true" === get("enablelegacymongoshellv2"),
|
||||||
enableLegacyMongoShellV2Dist: "true" === get("enablelegacymongoshellv2dist"),
|
enableLegacyMongoShellV2Debug: "true" === get("enablelegacymongoshellv2debug"),
|
||||||
|
loadLegacyMongoShellFromBE: "true" === get("loadlegacymongoshellfrombe"),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user