+
{facilitationTeam.map(user => (
-
+
))}
BRANCH Team Members
-
+
{teamMembers.map(user => (
-
+
))}
diff --git a/apps/frontend/src/app/components/StaffCard.tsx b/apps/frontend/src/app/components/StaffCard.tsx
index b69a41d6..17cac58e 100644
--- a/apps/frontend/src/app/components/StaffCard.tsx
+++ b/apps/frontend/src/app/components/StaffCard.tsx
@@ -3,32 +3,53 @@ import React from 'react';
import Image from 'next/image';
import { useState } from 'react';
import { PiUserCircleThin } from "react-icons/pi";
+import { MdOutlineMail } from "react-icons/md";
interface StaffCardProps {
image?: string;
name: string;
+ title?: string;
+ email: string;
}
export default function StaffCard({
image,
- name
+ name,
+ title,
+ email
}: StaffCardProps) {
const [imgError, setImgError] = useState(false);
return (
-
-
- {(image && !imgError) ? (
-
setImgError(true)}/>
- ) : (
-
- )}
+
+
+ {(image && !imgError) ? (
+
setImgError(true)}/>
+ ) : (
+
+ )}
+
+
+
+
+ {name}{title ? `, ${title}` : ''}
+
+
-
{name}
+
)
}
diff --git a/apps/frontend/src/app/projects/[id]/page.tsx b/apps/frontend/src/app/projects/[id]/page.tsx
index 99f73b04..6d37af05 100644
--- a/apps/frontend/src/app/projects/[id]/page.tsx
+++ b/apps/frontend/src/app/projects/[id]/page.tsx
@@ -176,7 +176,7 @@ export default function ProjectPage() {
) : (
{members.slice(0, PREVIEW_STAFF).map((member) => (
-
+
))}
)}
diff --git a/apps/frontend/test/components/AccountsPage.test.tsx b/apps/frontend/test/components/AccountsPage.test.tsx
index f006a6bf..1f9e6c90 100644
--- a/apps/frontend/test/components/AccountsPage.test.tsx
+++ b/apps/frontend/test/components/AccountsPage.test.tsx
@@ -1,5 +1,5 @@
import { render, screen } from '../utils';
-import AccountsPage, { facilitationTeam, teamMembers } from '@/app/components/AccountsPage';
+import AccountsPage, { facilitationTeam, teamMembers } from '@/app/accounts/page';
describe('AccountsPage', () => {
it('renders the headings', () => {
diff --git a/apps/frontend/test/components/StaffCard.test.tsx b/apps/frontend/test/components/StaffCard.test.tsx
index 1999ffe5..fb1f723f 100644
--- a/apps/frontend/test/components/StaffCard.test.tsx
+++ b/apps/frontend/test/components/StaffCard.test.tsx
@@ -1,33 +1,50 @@
import { render, screen, fireEvent } from '../utils';
import StaffCard from '@/app/components/StaffCard';
-describe ('StaffCard', () => {
+describe('StaffCard', () => {
it('renders the placeholder image when no image given', () => {
- render();
+ render();
expect(document.querySelector('[data-testid="staff-placeholder"]')).toBeInTheDocument();
});
- it('renders the placeholder image when image given image has error', () => {
- render();
+ it('renders the placeholder image when given image has error', () => {
+ render();
const img = document.querySelector('img');
fireEvent.error(img!);
expect(document.querySelector('[data-testid="staff-placeholder"]')).toBeInTheDocument();
});
it('renders the given image', () => {
- render();
+ render();
const img = document.querySelector('img');
expect(img).toHaveAttribute('src', expect.stringContaining('test.jpg'));
});
it('renders the name', () => {
- render();
+ render();
+ expect(screen.getByText('name')).toBeInTheDocument();
+ });
+
+ it('renders the name with title appended', () => {
+ render();
+ expect(screen.getByText('Allen F. Shaughnessy, PharmD')).toBeInTheDocument();
+ });
+
+ it('renders the name without title when title not given', () => {
+ render();
expect(screen.getByText('name')).toBeInTheDocument();
});
it('long name is wrapped', () => {
- render();
+ render();
const name = screen.getByText('superduper longname');
- expect(name).toHaveClass('break-words');
+ expect(name).toHaveClass('break-words');
+ });
+
+ it('renders the email with a mailto compose link', () => {
+ render();
+ const link = screen.getByText('test@gmail.com');
+ expect(link).toBeInTheDocument();
+ expect(link).toHaveAttribute('href', expect.stringContaining(encodeURIComponent('test@gmail.com')));
});
-})
\ No newline at end of file
+});
\ No newline at end of file