From 7a555bfa500cf8e48062af22f509d23693faa701 Mon Sep 17 00:00:00 2001 From: Fearg Date: Tue, 25 Jun 2024 12:53:14 +0100 Subject: [PATCH] Test to check home on navbar and logs in Relates #80 --- src/__tests__/App.spec.tsx | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/src/__tests__/App.spec.tsx b/src/__tests__/App.spec.tsx index 3729b22..81c0b9d 100644 --- a/src/__tests__/App.spec.tsx +++ b/src/__tests__/App.spec.tsx @@ -8,11 +8,11 @@ jest.mock('../components/UserContextProvider', () => ({ })); import '@testing-library/jest-dom'; -import { render, screen } from '@testing-library/react'; +import { render, screen, fireEvent } from '@testing-library/react'; import App from '../App'; import UserContextProvider from '../components/UserContextProvider'; -test('demo', () => { +test('demo test', () => { expect(true).toBe(true); }); @@ -25,12 +25,38 @@ test('Renders the main page', () => { expect(true).toBeTruthy(); }); -test('Renders main UI elements', () => { +test('Renders main page and navbar elements', () => { render( , ); - expect(screen.getByRole('navigation')).toBeInTheDocument(); // Navbar - // expect(screen.getByRole('heading', { name: /welcome/i })).toBeInTheDocument(); // Assuming there's a welcome heading + + // check for the navigation + expect(screen.getByRole('navigation')).toBeInTheDocument(); + + // Check for the Home link + const homeLink = screen.getByRole('link', { name: /home/i }); + expect(homeLink).toBeInTheDocument(); + expect(homeLink).toHaveAttribute('href', '#'); +}); + +test('Login form submission', () => { + render( + + + , + ); + fireEvent.click(screen.getByRole('button', { name: /log in/i })); + fireEvent.change(screen.getByLabelText(/email/i), { + target: { value: 'testuser' }, + }); + fireEvent.change(screen.getByLabelText(/password/i), { + target: { value: 'password123' }, + }); + const loginButton = screen.getByText('Log In!'); + expect(loginButton).toBeInTheDocument(); + fireEvent.click(loginButton); + + // Add expectations based on what should happen after login });