soapbox/app/soapbox/features/ui/components/__tests__/compose-button.test.tsx

41 wiersze
1.1 KiB
TypeScript
Czysty Zwykły widok Historia

import { fireEvent, render, screen } from '@testing-library/react';
2022-03-21 18:09:01 +00:00
import React from 'react';
import { IntlProvider } from 'react-intl';
import { Provider } from 'react-redux';
2023-04-27 18:20:53 +00:00
import { MemoryRouter } from 'react-router-dom';
2022-03-21 18:09:01 +00:00
2023-05-31 12:54:54 +00:00
import { MODAL_CLOSE, MODAL_OPEN } from 'soapbox/actions/modals';
import { mockStore, rootState } from 'soapbox/jest/test-helpers';
2022-03-21 18:09:01 +00:00
import ComposeButton from '../compose-button';
const store = mockStore(rootState);
const renderComposeButton = () => {
render(
<Provider store={store}>
<IntlProvider locale='en'>
2023-04-27 18:20:53 +00:00
<MemoryRouter>
<ComposeButton />
</MemoryRouter>
</IntlProvider>
</Provider>,
);
};
2022-03-21 18:09:01 +00:00
describe('<ComposeButton />', () => {
it('renders a button element', () => {
renderComposeButton();
2022-03-21 18:09:01 +00:00
expect(screen.getByRole('button')).toHaveTextContent('Compose');
2022-03-21 18:09:01 +00:00
});
it('dispatches the MODAL_OPEN action', () => {
renderComposeButton();
2022-03-21 18:09:01 +00:00
expect(store.getActions().length).toEqual(0);
fireEvent.click(screen.getByRole('button'));
2023-05-31 12:54:54 +00:00
expect(store.getActions()[0].type).toEqual(MODAL_CLOSE);
expect(store.getActions()[1].type).toEqual(MODAL_OPEN);
2022-03-21 18:09:01 +00:00
});
});