Skip to content
Snippets Groups Projects

feat: add modal

Merged Adrian Orłów requested to merge feature/add-modal into development
All threads resolved!
1 file
+ 48
2
Compare changes
  • Side-by-side
  • Inline
import { StoreType } from '@/redux/store';
import { FIRST_ARRAY_ELEMENT } from '@/constants/common';
import { render, screen } from '@testing-library/react';
import {
 
BACKGROUNDS_MOCK,
 
BACKGROUND_INITIAL_STATE_MOCK,
 
} from '@/redux/backgrounds/background.mock';
 
import { initialMapStateFixture } from '@/redux/map/map.fixtures';
 
import { AppDispatch, RootState, StoreType } from '@/redux/store';
 
import { getReduxStoreWithActionsListener } from '@/utils/testing/getReduxStoreActionsListener';
import {
import {
InitialStoreState,
InitialStoreState,
getReduxWrapperWithStore,
getReduxWrapperWithStore,
} from '@/utils/testing/getReduxWrapperWithStore';
} from '@/utils/testing/getReduxWrapperWithStore';
 
import { render, screen } from '@testing-library/react';
 
import { MockStoreEnhanced } from 'redux-mock-store';
import { MapAdditionalOptions } from './MapAdditionalOptions.component';
import { MapAdditionalOptions } from './MapAdditionalOptions.component';
const renderComponent = (initialStoreState: InitialStoreState = {}): { store: StoreType } => {
const renderComponent = (initialStoreState: InitialStoreState = {}): { store: StoreType } => {
@@ -21,9 +29,47 @@ const renderComponent = (initialStoreState: InitialStoreState = {}): { store: St
@@ -21,9 +29,47 @@ const renderComponent = (initialStoreState: InitialStoreState = {}): { store: St
);
);
};
};
 
const renderComponentWithActionListener = (
 
initialStoreState: InitialStoreState = {},
 
): { store: MockStoreEnhanced<Partial<RootState>, AppDispatch> } => {
 
const { Wrapper, store } = getReduxStoreWithActionsListener(initialStoreState);
 
 
return (
 
render(
 
<Wrapper>
 
<MapAdditionalOptions />
 
</Wrapper>,
 
),
 
{
 
store,
 
}
 
);
 
};
 
describe('MapAdditionalOptions - component', () => {
describe('MapAdditionalOptions - component', () => {
it('should display background selector', () => {
it('should display background selector', () => {
renderComponent();
renderComponent();
expect(screen.getByTestId('background-selector')).toBeInTheDocument();
expect(screen.getByTestId('background-selector')).toBeInTheDocument();
});
});
 
 
it('should render browse overview images button', () => {
 
renderComponent();
 
expect(screen.getByText('Browse overview images')).toBeInTheDocument();
 
});
 
 
it('should open overview image modal on button click', () => {
 
const { store } = renderComponentWithActionListener({
 
map: initialMapStateFixture,
 
backgrounds: { ...BACKGROUND_INITIAL_STATE_MOCK, data: BACKGROUNDS_MOCK },
 
});
 
 
const overviewImageButton = screen.getByText('Browse overview images');
 
overviewImageButton.click();
 
 
const actions = store.getActions();
 
expect(actions[FIRST_ARRAY_ELEMENT]).toStrictEqual({
 
payload: undefined,
 
type: 'modal/openOverviewImagesModal',
 
});
 
});
});
});
Loading