Skip to content

Commit cc75ae3

Browse files
authored
Merge pull request #139 from niloofar-deriv/menu-header-tests
Niloofar/ Added tests for MenuHeader component
2 parents 5fe30fd + c760681 commit cc75ae3

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import { useTranslations } from '@deriv-com/translations';
2+
import { useDevice } from '@deriv-com/ui';
3+
import { render, screen } from '@testing-library/react';
4+
import userEvent from '@testing-library/user-event';
5+
import { MenuHeader } from '../MenuHeader';
6+
7+
const mockOpenLanguageSetting = jest.fn();
8+
9+
jest.mock('@deriv-com/ui', () => ({
10+
...jest.requireActual('@deriv-com/ui'),
11+
useDevice: jest.fn(() => ({ isMobile: true })),
12+
}));
13+
14+
jest.mock('@deriv-com/translations', () => ({
15+
useTranslations: jest.fn(),
16+
}));
17+
18+
describe('MenuHeader component', () => {
19+
beforeEach(() => {
20+
(useTranslations as jest.Mock).mockReturnValue({
21+
currentLang: 'EN',
22+
localize: jest.fn(text => text),
23+
});
24+
});
25+
26+
it('renders "Menu" with "lg" text size in mobile view', () => {
27+
render(<MenuHeader hideLanguageSetting={false} openLanguageSetting={mockOpenLanguageSetting} />);
28+
expect(screen.getByText('Menu')).toHaveClass('derivs-text__size--lg');
29+
});
30+
31+
it('renders "Menu" with "md" text size in desktop view', () => {
32+
(useDevice as jest.Mock).mockReturnValue({ isMobile: false });
33+
render(<MenuHeader hideLanguageSetting={false} openLanguageSetting={mockOpenLanguageSetting} />);
34+
expect(screen.getByText('Menu')).toHaveClass('derivs-text__size--md');
35+
});
36+
37+
it('does not render language setting button when hideLanguageSetting is true', () => {
38+
render(<MenuHeader hideLanguageSetting openLanguageSetting={mockOpenLanguageSetting} />);
39+
expect(screen.queryByText('EN')).not.toBeInTheDocument();
40+
});
41+
42+
it('renders language setting button with correct content when hideLanguageSetting is false', () => {
43+
render(<MenuHeader hideLanguageSetting={false} openLanguageSetting={mockOpenLanguageSetting} />);
44+
expect(screen.getByText('EN')).toBeInTheDocument();
45+
});
46+
47+
it('calls openLanguageSetting when language button is clicked', async () => {
48+
render(<MenuHeader hideLanguageSetting={false} openLanguageSetting={mockOpenLanguageSetting} />);
49+
await userEvent.click(screen.getByText('EN'));
50+
expect(mockOpenLanguageSetting).toHaveBeenCalled();
51+
});
52+
});

0 commit comments

Comments
 (0)