I'm currently developing an app using React and I'm having problems writing the tests. I have this dropdown:
<DropdownButton variant="light" key={friend+"dropdown"} data-testid={friend+"dropdown"} title="">
<Dropdown.Item target="_blank" href={friend} key={friend+"dropdownI1"} data-testid={friend+"dropdownI1"}>{t('manageFriends.viewProfile')}</Dropdown.Item>
<Dropdown.Item onClick={(event) => deleteFriend(event,friend, webId)} key={friend+"dropdownI2"} data-testid={friend+"dropdownI2"}>{t('manageFriends.delete')}</Dropdown.Item>
<Dropdown.Item onClick={(event) => viewRoutes(event,friend)} key={friend+"dropdownI3"} data-testid={friend+"dropdownI3"}>{t('manageFriends.viewRoutes')}</Dropdown.Item>
</DropdownButton>
and I tried to test that when you click on the DropdownButton the items appear:
test('Dropdown works', () =>{
expect(getByTestId(friend+'dropdown')).toBeTruthy();
fireEvent.click(getByTestId(friend+'dropdown'));
expect(getByTestId(friend +'dropdownI1')).toBeTruthy();
expect(getByTestId(friend +'dropdownI2')).toBeTruthy();
expect(getByTestId(friend +'dropdownI3')).toBeTruthy();
});
The test always finds the DropdownButton but never the Items.
I'm using these two libraries: react-testing-library and @testing-library/jest-dom/. I'm also using a bootstrap dropdown:
import DropdownButton from 'react-bootstrap/DropdownButton';
Thank you in advance.