All files / src/features/Merchants/MerchantSidePanel/components/GiveDisclaimer helpers.ts

100% Statements 31/31
100% Branches 45/45
100% Functions 2/2
100% Lines 30/30

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80    1x 30x   2x   1x   1x   1x   3x   3x   1x   1x   1x   1x   1x                   8x                 5x   1x         14x 13x 13x 13x 30x 30x           9x   21x 14x 7x         13x   13x 4x     13x    
import { TMSPStatus } from "@components/Merchants/MerchantPreview/data.types";
 
const getMSPErrorName = (error: string): string => {
  switch (error) {
    case "merchant name":
      return "Name";
    case "merchant servicePhoneNumber":
      return "Service Phone Number";
    case "merchant websiteURL":
      return "Website URL";
    case "merchant categoryCode":
      return "Category Code";
    case "merchant address line1":
      return "Line 1";
    case "merchant address city":
      return "City";
    case "merchant address state":
      return "State";
    case "merchant address zip":
      return "Zip";
    case "merchant address country":
      return "Country";
    case "merchant bankAccount number":
      return "Bank Account Number";
    case "merchant bankAccount routingNumber":
      return "Routing Number";
    case "legalEntity":
    case "legalEntity name":
    case "legalEntity type":
    case "legalEntity taxIDNumber":
    case "legalEntity address line1":
    case "legalEntity address city":
    case "legalEntity address zip":
    case "legalEntity address state":
    case "legalEntity phoneNumber":
      return "Business Profile";
    case "legalEntity principal firstName":
    case "legalEntity principal lastName":
    case "legalEntity principal email":
    case "legalEntity principal dateOfBirth":
    case "legalEntity principal taxIDNumber":
    case "legalEntity principal address line1":
    case "legalEntity principal address zip":
    case "legalEntity principal address state":
      return "Business Owner";
    default:
      return "";
  }
};
 
export function generateMissingInfoMessage(errors?: TMSPStatus[]) {
  if (!errors) return null;
  const missingFields: string[] = [];
  const addressFields: string[] = [];
  for (const error of errors) {
    const errName = getMSPErrorName(error.field);
    if (
      error?.field.includes("address") &&
      !error?.field?.includes("legalEntity address") &&
      !error?.field?.includes("legalEntity principal address") &&
      Boolean(errName)
    ) {
      addressFields.push(errName);
    } else {
      if (!missingFields.includes(errName) && Boolean(errName)) {
        missingFields.push(errName);
      } else continue;
    }
  }
 
  const addressMessage =
    addressFields.length > 0 ? `(${addressFields.join(", ")})` : "";
 
  if (addressMessage) {
    missingFields.push(`Address ${addressMessage}`);
  }
 
  return missingFields.join(", ");
}