From 066a09ca11ba9cfc8b1d01ed56d6c5586914dc59 Mon Sep 17 00:00:00 2001
From: m-tartari <37861893+m-tartari@users.noreply.github.com>
Date: Sat, 17 Feb 2024 17:37:46 +0100
Subject: [PATCH] =?UTF-8?q?=E2=9C=85=20test(projects):=20add=20`ProjectsPa?=
=?UTF-8?q?ge`=20unit=20tests?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../pages/ProjectsPage/ProjectsPage.test.tsx | 32 +++++++++++++++++++
1 file changed, 32 insertions(+)
create mode 100644 src/components/pages/ProjectsPage/ProjectsPage.test.tsx
diff --git a/src/components/pages/ProjectsPage/ProjectsPage.test.tsx b/src/components/pages/ProjectsPage/ProjectsPage.test.tsx
new file mode 100644
index 0000000..a0922aa
--- /dev/null
+++ b/src/components/pages/ProjectsPage/ProjectsPage.test.tsx
@@ -0,0 +1,32 @@
+import { screen } from '@testing-library/react'
+import userEvent from '@testing-library/user-event'
+
+import { renderWithRouter as render } from 'components/utils/tests'
+
+import ProjectsPage from '.'
+
+vi.stubGlobal('open', vi.fn())
+const open = vi.spyOn(window, 'open')
+describe('ProjectsPage component', () => {
+ test('renders without crashing and displays the correct project titles', () => {
+ render()
+
+ // check the section titles
+ expect(screen.getByText('Robotics')).toBeInTheDocument()
+ expect(screen.getByText('Engineering')).toBeInTheDocument()
+ expect(screen.getByText('Hobbies')).toBeInTheDocument()
+
+ // check some of the projects
+ expect(screen.getByText('LINFA: An Intuitive Block-Programming Interface for Reconfigurable Robots')).toBeInTheDocument()
+ expect(screen.getByText("Revamping HHCM's Modular: Swift Generation and Control of Modular Robot Models")).toBeInTheDocument()
+ expect(screen.getByText('Voice Controlled Mobile Robot for Indoor Applications')).toBeInTheDocument()
+ })
+
+ test('opens the correct links when the link buttons are clicked', async () => {
+ render()
+
+ // test one of the many links
+ await userEvent.click(screen.getByLabelText('Video-button'))
+ expect(open).toHaveBeenLastCalledWith('https://www.linkedin.com/feed/update/urn:li:activity:7034480841569284096/', '_blank')
+ })
+})