All files / lib/libs/email/content/withdrawConfirmation index.tsx

57.14% Statements 4/7
50% Branches 1/2
40% Functions 2/5
57.14% Lines 4/7

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          2x         4x                 2x                 4x            
import { Authority, CommonEmailVariables, EmailAddresses, Events } from "shared-types";
import { AuthoritiesWithUserTypesTemplate } from "../..";
import { ChipSpaStateEmail, MedSpaStateEmail, WaiverStateEmail } from "./emailTemplates";
import { render } from "@react-email/render";
 
const generateWithdrawEmail = async (
  variables: Events["WithdrawPackage"] & CommonEmailVariables & { emails: EmailAddresses },
  subjectPrefix: string,
  EmailComponent: React.FC<{ variables: any }>,
) => {
  return {
    to: variables.allStateUsersEmails?.length
      ? variables.allStateUsersEmails
      : [`${variables.submitterName} <${variables.submitterEmail}>`],
    subject: `${subjectPrefix} ${variables.id} Withdrawal Confirmation`,
    body: await render(<EmailComponent variables={variables} />),
  };
};
 
export const withdrawConfirmation: AuthoritiesWithUserTypesTemplate = {
  [Authority.MED_SPA]: {
    state: (variables) =>
      generateWithdrawEmail(variables, "Medicaid SPA Package", MedSpaStateEmail),
  },
  [Authority.CHIP_SPA]: {
    state: (variables) => generateWithdrawEmail(variables, "CHIP SPA Package", ChipSpaStateEmail),
  },
  [Authority["1915b"]]: {
    state: (variables) => generateWithdrawEmail(variables, "1915(b)", WaiverStateEmail),
  },
  [Authority["1915c"]]: {
    state: (variables) => generateWithdrawEmail(variables, "1915(c)", WaiverStateEmail),
  },
};