Skip to content

Commit b66cf9f

Browse files
committed
got dropdown.test.tsx to pass
1 parent 266f82e commit b66cf9f

File tree

1 file changed

+27
-6
lines changed

1 file changed

+27
-6
lines changed

src/app/__tests__/dropdown.test.tsx

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,42 @@
11
import React from 'react';
2-
import { render } from '@testing-library/react';
3-
import '@testing-library/jest-dom/extend-expect';
2+
import { render, fireEvent } from '@testing-library/react';
43
import Dropdown from '../components/Dropdown';
4+
import '@testing-library/jest-dom/extend-expect';
55

6-
describe('Dropdown test', () => {
6+
describe('Dropdown component test', () => {
77
const speeds = [
88
{ value: 1, label: 'test1' },
99
{ value: 2, label: 'test2' },
1010
{ value: 3, label: 'test3' },
1111
];
1212
const setSpeed = jest.fn();
1313

14-
test('renders Dropdown with correct info', () => {
14+
test('renders Dropdown initial selection', () => {
1515
const currSpeed = speeds[0];
16-
const { container } = render(
16+
const renderResult = render(
1717
<Dropdown speeds={speeds} setSpeed={setSpeed} selectedSpeed={currSpeed} />,
1818
);
19-
expect(container.querySelector('.react-select__single-value')).toHaveTextContent('test1');
19+
20+
// Check if the initial selected speed is rendered
21+
expect(renderResult.getByText('test1')).toBeInTheDocument();
22+
});
23+
24+
test('handles dropdown interaction and option selection', () => {
25+
const renderResult = render(
26+
<Dropdown speeds={speeds} setSpeed={setSpeed} selectedSpeed={speeds[0]} />
27+
);
28+
29+
// Find the dropdown trigger element
30+
const dropdownTrigger = renderResult.getByText('test1');
31+
32+
// Simulate opening the dropdown
33+
fireEvent.mouseDown(dropdownTrigger);
34+
35+
// Simulate selecting an option
36+
fireEvent.click(renderResult.getByText('test2'));
37+
38+
// Ensure that setSpeed was called
39+
expect(setSpeed).toHaveBeenCalled();
2040
});
2141
});
42+

0 commit comments

Comments
 (0)