generated from Real-Dev-Squad/website-template
-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
540c546
commit b862085
Showing
5 changed files
with
117 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
import React from 'react'; | ||
import { render, screen, waitFor } from '@testing-library/react'; | ||
import Toast from '../../src/components/Toast'; | ||
|
||
describe('Toast', () => { | ||
const onDismiss = jest.fn(); | ||
|
||
test('should render the toast component', () => { | ||
const { container } = render( | ||
<Toast message="This is a toast message" isVisible={true} timeToShow={5000} onDismiss={onDismiss} /> | ||
); | ||
|
||
expect(container).toMatchSnapshot(); | ||
}); | ||
|
||
test('should render the toast component with the message', () => { | ||
render(<Toast message="This is a toast message" isVisible={true} timeToShow={5000} onDismiss={onDismiss} />); | ||
|
||
expect(screen.getByText('This is a toast message')).toBeInTheDocument(); | ||
}); | ||
|
||
test('should not render the toast component', () => { | ||
const { container } = render( | ||
<Toast message="This is a toast message" isVisible={false} timeToShow={5000} onDismiss={onDismiss} /> | ||
); | ||
|
||
expect(container).toMatchSnapshot(); | ||
}); | ||
|
||
test('should not call onDismiss function when the timeToShow is not completed', () => { | ||
render(<Toast message="This is a toast message" isVisible={true} timeToShow={5000} onDismiss={onDismiss} />); | ||
|
||
expect(onDismiss).not.toHaveBeenCalled(); | ||
}); | ||
|
||
test('should call onDismiss function when the timeToShow is completed', async () => { | ||
render(<Toast message="This is a toast message" isVisible={true} timeToShow={0} onDismiss={onDismiss} />); | ||
|
||
await waitFor(() => expect(onDismiss).toHaveBeenCalled()); | ||
}); | ||
}); |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
import Dashboard from '../../src/pages/dashboard'; | ||
import { render, screen, fireEvent } from '@testing-library/react'; | ||
|
||
describe('Dashboard Component', () => { | ||
test('renders the Dashboard component', () => { | ||
render(<Dashboard />); | ||
const urlInput = screen.getByPlaceholderText('🔗 Enter the URL'); | ||
const generateButton = screen.getByText('Generate'); | ||
const copyButton = screen.getByTestId('copy-button'); | ||
|
||
expect(urlInput).toBeInTheDocument(); | ||
expect(generateButton).toBeInTheDocument(); | ||
expect(copyButton).toBeInTheDocument(); | ||
}); | ||
|
||
test('generates a short URL when clicking the Generate button', () => { | ||
render(<Dashboard />); | ||
const generateButton = screen.getByText('Generate'); | ||
const shortUrlInput = screen.getByPlaceholderText('Copy the URL'); | ||
|
||
fireEvent.click(generateButton); | ||
const shortUrlValue = shortUrlInput.value; | ||
|
||
expect(shortUrlValue).toMatch(/^https:\/\/rds\.li\/[a-zA-Z0-9]+$/); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
import React, { useEffect } from 'react'; | ||
|
||
interface ToastProps { | ||
message: string; | ||
isVisible: boolean; | ||
timeToShow: number; | ||
onDismiss: () => void; | ||
} | ||
|
||
const Toast: React.FC<ToastProps> = ({ message, isVisible, timeToShow, onDismiss }) => { | ||
useEffect(() => { | ||
if (isVisible) { | ||
const timer = setTimeout(() => { | ||
onDismiss(); | ||
}, timeToShow); | ||
|
||
return () => { | ||
clearTimeout(timer); | ||
}; | ||
} | ||
}, [isVisible, timeToShow, onDismiss]); | ||
|
||
return isVisible ? ( | ||
<div className="fixed bottom-10 left-1/2 transform -translate-x-1/2 bg-gray-900 text-white px-4 py-2 rounded-lg border-2 border-cyan-100"> | ||
{message} | ||
</div> | ||
) : null; | ||
}; | ||
|
||
export default Toast; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters