feat: ProjectCard — add url prop, RichText description, open link in new tab
This commit is contained in:
@@ -6,6 +6,7 @@ const DEFAULT_PROPS = {
|
||||
year: '2024',
|
||||
description: 'A cool project description',
|
||||
tags: ['React', 'Node'],
|
||||
url: 'https://example.com',
|
||||
};
|
||||
|
||||
describe('ProjectCard', () => {
|
||||
@@ -33,7 +34,17 @@ describe('ProjectCard', () => {
|
||||
|
||||
it('renders the View Project button', () => {
|
||||
render(<ProjectCard {...DEFAULT_PROPS} />);
|
||||
expect(screen.getByRole('button', { name: /view project/i })).toBeInTheDocument();
|
||||
expect(screen.getByRole('link', { name: /view project/i })).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it('View Project link points to the project url', () => {
|
||||
render(<ProjectCard {...DEFAULT_PROPS} />);
|
||||
expect(screen.getByRole('link', { name: /view project/i })).toHaveAttribute('href', 'https://example.com');
|
||||
});
|
||||
|
||||
it('View Project link opens in a new tab', () => {
|
||||
render(<ProjectCard {...DEFAULT_PROPS} />);
|
||||
expect(screen.getByRole('link', { name: /view project/i })).toHaveAttribute('target', '_blank');
|
||||
});
|
||||
});
|
||||
|
||||
@@ -51,7 +62,7 @@ describe('ProjectCard', () => {
|
||||
|
||||
it('View Project button is inside the sidebar column', () => {
|
||||
render(<ProjectCard {...DEFAULT_PROPS} />);
|
||||
const btn = screen.getByRole('button', { name: /view project/i });
|
||||
const btn = screen.getByRole('link', { name: /view project/i });
|
||||
expect(btn.closest('.brutal-border-sidebar')).toBeInTheDocument();
|
||||
});
|
||||
|
||||
@@ -86,7 +97,7 @@ describe('ProjectCard', () => {
|
||||
|
||||
it('View Project button uses sm size', () => {
|
||||
render(<ProjectCard {...DEFAULT_PROPS} />);
|
||||
const btn = screen.getByRole('button', { name: /view project/i });
|
||||
const btn = screen.getByRole('link', { name: /view project/i });
|
||||
expect(btn).toHaveClass('px-4', 'py-2', 'text-sm');
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user