Skip to content

Commit

Permalink
QA Testing: creating 2 tests (#576)
Browse files Browse the repository at this point in the history
* Add files via upload

* Add files via upload

* Add files via upload

---------

Co-authored-by: Bradley Charles <[email protected]>
  • Loading branch information
el-riber and BradleyCharles authored Nov 18, 2024
1 parent 3a4efb1 commit df6ebe9
Show file tree
Hide file tree
Showing 3 changed files with 104 additions and 0 deletions.
28 changes: 28 additions & 0 deletions myEvents.test.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import { render, screen } from '@testing-library/react';
import MyEvents from '@/app/my-events/page';
import useAuth from '@/hooks/useAuth';
import '@testing-library/jest-dom';

jest.mock('@/hooks/useAuth');
jest.mock('@/components/UnauthorizedPageMessage', () => () => <div>Unauthorized</div>);
jest.mock('@/components/ViewMyEventsGetter', () => () => <div>My Events List Component</div>);

describe('MyEvents Page', () => {
it('renders UnauthorizedPageMessage if the user is not authorized', () => {
(useAuth as jest.Mock).mockReturnValue({ isAuth: false, user: null });
render(<MyEvents />);
expect(screen.getByText('Unauthorized')).toBeInTheDocument();
});

it('renders My Created Events title for authorized users', () => {
(useAuth as jest.Mock).mockReturnValue({ isAuth: true, user: { role: 'admin' } });
render(<MyEvents />);
expect(screen.getByText('My Created Events')).toBeInTheDocument();
});

it('renders MyEventsList component for authorized users', () => {
(useAuth as jest.Mock).mockReturnValue({ isAuth: true, user: { role: 'creator' } });
render(<MyEvents />);
expect(screen.getByText('My Events List Component')).toBeInTheDocument();
});
});
48 changes: 48 additions & 0 deletions tests/unit/archivedEvents.test.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import { render, screen } from '@testing-library/react';
import ArchivedEvents from '@/app/archived-events/page';
import useAuth from '@/hooks/useAuth';
import { useArchivedEvents } from '@/utility/queries';
import '@testing-library/jest-dom';

jest.mock('@/hooks/useAuth');
jest.mock('@/utility/queries');
jest.mock('@/components/UnauthorizedPageMessage', () => () => <div>Unauthorized</div>);

describe('ArchivedEvents Page', () => {
beforeEach(() => {
// Mock `useAuth` to simulate an authorized user
(useAuth as jest.Mock).mockReturnValue({ isAuth: true, user: { role: 'admin' } });

// Mock `useArchivedEvents` to return test data
(useArchivedEvents as jest.Mock).mockReturnValue({
data: [
{ _id: '1', eventTitle: 'Archived Event 1', eventDate: '2024-11-15' },
{ _id: '2', eventTitle: 'Archived Event 2', eventDate: '2024-12-01' },
],
isLoading: false,
isError: false,
error: null,
refetch: jest.fn(),
});
});

it('renders UnauthorizedPageMessage if the user is not authorized', () => {
(useAuth as jest.Mock).mockReturnValue({ isAuth: false, user: null });
render(<ArchivedEvents />);
expect(screen.getByText('Unauthorized')).toBeInTheDocument();
});

it('renders the list of archived events for authorized users', () => {
render(<ArchivedEvents />);
expect(screen.getByText('Archived Events')).toBeInTheDocument();
expect(screen.getByText('Archived Event 1')).toBeInTheDocument();
expect(screen.getByText('Archived Event 2')).toBeInTheDocument();
});

// Remove or adjust this test if not applicable
it('does not render "Load more events" button', () => {
render(<ArchivedEvents />);
const loadMoreButton = screen.queryByRole('button', { name: /load more events/i });
expect(loadMoreButton).not.toBeInTheDocument();
});
});
28 changes: 28 additions & 0 deletions tests/unit/myEvents.test.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import { render, screen } from '@testing-library/react';
import MyEvents from '@/app/my-events/page';
import useAuth from '@/hooks/useAuth';
import '@testing-library/jest-dom';

jest.mock('@/hooks/useAuth');
jest.mock('@/components/UnauthorizedPageMessage', () => () => <div>Unauthorized</div>);
jest.mock('@/components/ViewMyEventsGetter', () => () => <div>My Events List Component</div>);

describe('MyEvents Page', () => {
it('renders UnauthorizedPageMessage if the user is not authorized', () => {
(useAuth as jest.Mock).mockReturnValue({ isAuth: false, user: null });
render(<MyEvents />);
expect(screen.getByText('Unauthorized')).toBeInTheDocument();
});

it('renders My Created Events title for authorized users', () => {
(useAuth as jest.Mock).mockReturnValue({ isAuth: true, user: { role: 'admin' } });
render(<MyEvents />);
expect(screen.getByText('My Created Events')).toBeInTheDocument();
});

it('renders MyEventsList component for authorized users', () => {
(useAuth as jest.Mock).mockReturnValue({ isAuth: true, user: { role: 'creator' } });
render(<MyEvents />);
expect(screen.getByText('My Events List Component')).toBeInTheDocument();
});
});

0 comments on commit df6ebe9

Please sign in to comment.