Updating error message on mongo collection create (#118)

* 1) Updated mongo collection create pane to display a better error when a shard key is ill formed.
2) Updated an error message to use double quotes since no string interpolation is used. I thought it was included in a previoue PR but I guess the change didn't get staged.
This commit is contained in:
vchske 2020-08-06 10:56:40 -07:00 committed by GitHub
parent a64109ebaa
commit d45af21996
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 83 additions and 81 deletions

View File

@ -301,7 +301,6 @@ src/Utils/NotebookConfigurationUtils.ts
src/Utils/OfferUtils.test.ts src/Utils/OfferUtils.test.ts
src/Utils/OfferUtils.ts src/Utils/OfferUtils.ts
src/Utils/PricingUtils.test.ts src/Utils/PricingUtils.test.ts
src/Utils/PricingUtils.ts
src/Utils/QueryUtils.test.ts src/Utils/QueryUtils.test.ts
src/Utils/QueryUtils.ts src/Utils/QueryUtils.ts
src/Utils/StringUtils.test.ts src/Utils/StringUtils.test.ts

View File

@ -7,6 +7,8 @@ export function replaceKnownError(err: string): string {
err.indexOf("SharedOffer is Disabled for your account") >= 0 err.indexOf("SharedOffer is Disabled for your account") >= 0
) { ) {
return "Database throughput is not supported for internal subscriptions."; return "Database throughput is not supported for internal subscriptions.";
} else if (err.indexOf("Partition key paths must contain only valid") >= 0) {
return "Partition key paths must contain only valid characters and not contain a trailing slash or wildcard character.";
} }
return err; return err;

View File

@ -373,12 +373,12 @@ describe("PricingUtils Tests", () => {
expect(value).toBe(1); expect(value).toBe(1);
}); });
it("should return 1 for -1", () => { it("should return -1 for -1", () => {
const value = PricingUtils.normalizeNumber(-1); const value = PricingUtils.normalizeNumber(-1);
expect(value).toBe(-1); expect(value).toBe(-1);
}); });
it("should return 1 for 0.1", () => { it("should return 0 for 0.1", () => {
const value = PricingUtils.normalizeNumber(0.1); const value = PricingUtils.normalizeNumber(0.1);
expect(value).toBe(0); expect(value).toBe(0);
}); });

View File

@ -7,10 +7,11 @@ import { AutopilotTier } from "../Contracts/DataModels";
* Otherwise, return numberOfRegions * Otherwise, return numberOfRegions
* @param number * @param number
*/ */
export function normalizeNumber(number: any): number { export function normalizeNumber(number: null | undefined | string | number): number {
const normalizedNumber: number = number === null ? 0 : isNaN(number) ? 0 : parseInt(number); if (!number) {
return 0;
return normalizedNumber; }
return Math.floor(Number(number));
} }
export function getRuToolTipText(isV2AutoPilot: boolean): string { export function getRuToolTipText(isV2AutoPilot: boolean): string {
@ -79,16 +80,16 @@ export function getPriceCurrency(serverId: string): string {
export function computeStorageUsagePrice(serverId: string, storageUsedRoundUpToGB: number): string { export function computeStorageUsagePrice(serverId: string, storageUsedRoundUpToGB: number): string {
if (serverId === "mooncake") { if (serverId === "mooncake") {
let storageCharge = storageUsedRoundUpToGB * Constants.OfferPricing.HourlyPricing.mooncake.Standard.PricePerGB; const storageCharge = storageUsedRoundUpToGB * Constants.OfferPricing.HourlyPricing.mooncake.Standard.PricePerGB;
return calculateEstimateNumber(storageCharge) + " " + Constants.OfferPricing.HourlyPricing.mooncake.Currency; return calculateEstimateNumber(storageCharge) + " " + Constants.OfferPricing.HourlyPricing.mooncake.Currency;
} }
let storageCharge = storageUsedRoundUpToGB * Constants.OfferPricing.HourlyPricing.default.Standard.PricePerGB; const storageCharge = storageUsedRoundUpToGB * Constants.OfferPricing.HourlyPricing.default.Standard.PricePerGB;
return calculateEstimateNumber(storageCharge) + " " + Constants.OfferPricing.HourlyPricing.default.Currency; return calculateEstimateNumber(storageCharge) + " " + Constants.OfferPricing.HourlyPricing.default.Currency;
} }
export function computeDisplayUsageString(usageInKB: number): string { export function computeDisplayUsageString(usageInKB: number): string {
let usageInMB = usageInKB / 1024, const usageInMB = usageInKB / 1024,
usageInGB = usageInMB / 1024, usageInGB = usageInMB / 1024,
displayUsageString = displayUsageString =
usageInGB > 0.1 usageInGB > 0.1
@ -100,7 +101,7 @@ export function computeDisplayUsageString(usageInKB: number): string {
} }
export function usageInGB(usageInKB: number): number { export function usageInGB(usageInKB: number): number {
let usageInMB = usageInKB / 1024, const usageInMB = usageInKB / 1024,
usageInGB = usageInMB / 1024; usageInGB = usageInMB / 1024;
return Math.ceil(usageInGB); return Math.ceil(usageInGB);
} }
@ -109,7 +110,7 @@ export function calculateEstimateNumber(n: number): string {
return n >= 1 ? n.toFixed(2) : n.toPrecision(2); return n >= 1 ? n.toFixed(2) : n.toPrecision(2);
} }
export function numberWithCommasFormatter(n: number) { export function numberWithCommasFormatter(n: number): string {
return n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); return n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
} }
@ -279,9 +280,9 @@ export function getEstimatedSpendAcknowledgeString(
)} - ${currencySign}${calculateEstimateNumber(monthlyPrice)} monthly cost for the throughput above.`; )} - ${currencySign}${calculateEstimateNumber(monthlyPrice)} monthly cost for the throughput above.`;
} }
export function getUpsellMessage(serverId: string = "default", isFreeTier: boolean = false): string { export function getUpsellMessage(serverId = "default", isFreeTier = false): string {
if (isFreeTier) { if (isFreeTier) {
return `With free tier discount, you'll get the first 400 RU/s and 5 GB of storage in this account for free. Charges will apply if your resource throughput exceeds 400 RU/s.`; return "With free tier discount, you'll get the first 400 RU/s and 5 GB of storage in this account for free. Charges will apply if your resource throughput exceeds 400 RU/s.";
} else { } else {
let price: number = Constants.OfferPricing.MonthlyPricing.default.Standard.StartingPrice; let price: number = Constants.OfferPricing.MonthlyPricing.default.Standard.StartingPrice;