Skip to content

Commit

Permalink
fix(process-email-test): add tests cases with no email
Browse files Browse the repository at this point in the history
* add test case with no email

* update excludes

* add test logic

* Update processEmails.test.ts

* Update stateSubmitters.ts
  • Loading branch information
jdinh8124 authored Feb 5, 2025
1 parent 3ea942a commit 93fe423
Show file tree
Hide file tree
Showing 3 changed files with 95 additions and 44 deletions.
63 changes: 19 additions & 44 deletions lib/libs/email/content/withdrawConfirmation/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,57 +3,32 @@ 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: async (
variables: Events["WithdrawPackage"] & CommonEmailVariables & { emails: EmailAddresses },
) => {
return {
to: variables.allStateUsersEmails?.length
? variables.allStateUsersEmails
: [`${variables.submitterName} <${variables.submitterEmail}>`],
subject: `Medicaid SPA Package ${variables.id} Withdrawal Confirmation`,
body: await render(<MedSpaStateEmail variables={variables} />),
};
},
state: (variables) =>
generateWithdrawEmail(variables, "Medicaid SPA Package", MedSpaStateEmail),
},
[Authority.CHIP_SPA]: {
state: async (
variables: Events["WithdrawPackage"] & CommonEmailVariables & { emails: EmailAddresses },
) => {
return {
to: variables.allStateUsersEmails?.length
? variables.allStateUsersEmails
: [`${variables.submitterName} <${variables.submitterEmail}>`],
subject: `CHIP SPA Package ${variables.id} Withdraw Confirmation`,
body: await render(<ChipSpaStateEmail variables={variables} />),
};
},
state: (variables) => generateWithdrawEmail(variables, "CHIP SPA Package", ChipSpaStateEmail),
},
[Authority["1915b"]]: {
state: async (
variables: Events["WithdrawPackage"] & CommonEmailVariables & { emails: EmailAddresses },
) => {
return {
to: variables.allStateUsersEmails?.length
? variables.allStateUsersEmails
: [`${variables.submitterName} <${variables.submitterEmail}>`],
subject: `1915(b) ${variables.id} Withdrawal Confirmation`,
body: await render(<WaiverStateEmail variables={variables} />),
};
},
state: (variables) => generateWithdrawEmail(variables, "1915(b)", WaiverStateEmail),
},
[Authority["1915c"]]: {
state: async (
variables: Events["WithdrawPackage"] & CommonEmailVariables & { emails: EmailAddresses },
) => {
return {
to: variables.allStateUsersEmails?.length
? variables.allStateUsersEmails
: [`${variables.submitterName} <${variables.submitterEmail}>`],
subject: `1915(c) ${variables.id} Withdrawal Confirmation`,
body: await render(<WaiverStateEmail variables={variables} />),
};
},
state: (variables) => generateWithdrawEmail(variables, "1915(c)", WaiverStateEmail),
},
};
10 changes: 10 additions & 0 deletions lib/libs/email/getAllStateUsers.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,14 @@ describe("getAllStateUsers", () => {
const result = await getAllStateUsers({ userPoolId: USER_POOL_ID, state: "MA" });
expect(result).toEqual([]);
});

it("should ignore users with no email", async () => {
const result = await getAllStateUsers({ userPoolId: USER_POOL_ID, state: "AK" });
expect(result).toEqual([]);
});

it("should ignore users with invalid email formats", async () => {
const result = await getAllStateUsers({ userPoolId: USER_POOL_ID, state: "LA" });
expect(result).toEqual([]);
});
});
66 changes: 66 additions & 0 deletions mocks/data/users/stateSubmitters.ts
Original file line number Diff line number Diff line change
Expand Up @@ -306,6 +306,70 @@ export const testNewStateSubmitter: TestUserData = {
Username: "f8e64f73-d121-4252-b9e3-1f4df902a1c1",
};

export const noEmailStateSubmitter: TestUserData = {
UserAttributes: [
{
Name: "email",
Value: "bademail-",
},
{
Name: "email_verified",
Value: "true",
},
{
Name: "given_name",
Value: "Test",
},
{
Name: "family_name",
Value: "Submitter",
},
{
Name: "custom:state",
Value: "LA",
},
{
Name: "custom:cms-roles",
Value: "onemac-micro-statesubmitter",
},
{
Name: "sub",
Value: "f8e64f73-d121-4252-b9e3-1f4df902a1c2",
},
],
Username: "f8e64f73-d121-4252-b9e3-1f4df902a1c2",
};

export const invalidEmailStateSubmitter: TestUserData = {
UserAttributes: [
{
Name: "email_verified",
Value: "true",
},
{
Name: "given_name",
Value: "Test",
},
{
Name: "family_name",
Value: "Submitter",
},
{
Name: "custom:state",
Value: "AK",
},
{
Name: "custom:cms-roles",
Value: "onemac-micro-statesubmitter",
},
{
Name: "sub",
Value: "f8e64f73-d121-4252-b9e3-1f4df902a1c2",
},
],
Username: "f8e64f73-d121-4252-b9e3-1f4df902a1c2",
};

export const stateSubmitters: TestUserData[] = [
makoStateSubmitter,
superUser,
Expand All @@ -316,4 +380,6 @@ export const stateSubmitters: TestUserData[] = [
noStateSubmitter,
automatedStateSubmitter,
testNewStateSubmitter,
noEmailStateSubmitter,
invalidEmailStateSubmitter,
];

0 comments on commit 93fe423

Please sign in to comment.