diff --git a/packages/react/src/toast/__tests__/ToastManager.test.js b/packages/react/src/toast/__tests__/ToastManager.test.js
index 44e2f2bdb8..aaacd8e069 100644
--- a/packages/react/src/toast/__tests__/ToastManager.test.js
+++ b/packages/react/src/toast/__tests__/ToastManager.test.js
@@ -516,6 +516,10 @@ describe('ToastManager', () => {
});
expect(updateSuccess).toBe(true);
}, [toast]);
+ const handleClickUpdateInvalidToast = useCallback(() => {
+ const updateSuccess = toast.update(null, {});
+ expect(updateSuccess).toBe(false);
+ }, [toast]);
return (
<>
@@ -525,6 +529,9 @@ describe('ToastManager', () => {
+
>
);
};
@@ -540,9 +547,75 @@ describe('ToastManager', () => {
// Update the toast
await user.click(screen.getByText('Update Toast'));
+ await user.click(screen.getByText('Update Invalid Toast'));
// Check if the content has been updated
const toastElement = screen.getByTestId(toastId);
expect(toastElement).toHaveTextContent(updatedMessage);
});
+
+ it('should not create a toast and return false for invalid placement', async () => {
+ const user = userEvent.setup();
+ const toastId = 'toast-id';
+ const placement = 'center'; // "center" is not a supported placement
+ const message = 'This is a toast message';
+
+ // Spy on console.error to capture and check the error message
+ const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(() => {});
+
+ const WrapperComponent = (props) => (
+
+ );
+
+ const TestComponent = () => {
+ const toast = useToastManager();
+ const handleClick = useCallback(() => {
+ const result = toast(({ onClose }) => (
+
+ {message}
+
+ ), { placement });
+ expect(result).toBe(false);
+ }, [toast]);
+
+ return (
+
+ );
+ };
+
+ render(
+
+
+
+ );
+
+ const button = await screen.findByText('Add Toast');
+ await user.click(button);
+
+ // Check that console.error was called with the expected error message
+ const placements = [
+ 'bottom',
+ 'bottom-right',
+ 'bottom-left',
+ 'top',
+ 'top-left',
+ 'top-right',
+ ];
+ const expectedErrorMessage = `[ToastManager] Error: Invalid toast placement "${placement}". Please provide a valid placement from the following options: ${placements.join(', ')}.`;
+ expect(consoleErrorSpy).toHaveBeenCalledWith(expectedErrorMessage);
+
+ // Assert that no toast element with the invalid placement was created
+ const toastElement = screen.queryByTestId(toastId);
+ expect(toastElement).not.toBeInTheDocument();
+
+ // Restore console.error to its original implementation
+ consoleErrorSpy.mockRestore();
+ });
});