Skip to content

Commit 0eed657

Browse files
authored
Dashboard region (#600)
* engagement filter redo * test related * fix issue with toolbar chips * fix space error in Engagement search box. Fix cypress spec 2 * fix issue when clicking on engagement status links after original load * lint failure avoidance * fix page reload filter hold * test * add region filter. update patternfly * update packges * test awaits to reduce test noise
1 parent 32ee802 commit 0eed657

File tree

9 files changed

+26
-16
lines changed

9 files changed

+26
-16
lines changed

src/components/engagement_categories/__tests__/engagement_editable_categories.spec.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ describe('Engagement Editable Categories', () => {
1919
const onUpdateField = jest.fn();
2020
const onSave = jest.fn();
2121
let view: RenderResult;
22-
act(async () => {
22+
await act(async () => {
2323
view = render(
2424
<TestStateWrapper>
2525
<FeatureToggles features={['writer', 'reader', 'engagementWriter']}>

src/components/engagement_data_cards/__tests__/data_cards.spec.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { act } from 'react-dom/test-utils';
1212

1313
describe('Engagement summary card', () => {
1414
test('matches snapshot', async () => {
15-
act(async () => {
15+
await act(async () => {
1616
const rendered = render(
1717
<MemoryRouter>
1818
<TestStateWrapper>
@@ -28,7 +28,7 @@ describe('Engagement summary card', () => {
2828

2929
describe('OpenShift Cluster Summary', () => {
3030
test('matches snapshot', async () => {
31-
act(async () => {
31+
await act(async () => {
3232
const rendered = render(
3333
<TestStateWrapper>
3434
<HostingEnvironmentCard />
@@ -41,7 +41,7 @@ describe('OpenShift Cluster Summary', () => {
4141

4242
describe('Point of Contact Card', () => {
4343
test('matches snapshot', async () => {
44-
act(async () => {
44+
await act(async () => {
4545
const rendered = render(
4646
<TestStateWrapper>
4747
<PointOfContactCard />
@@ -54,7 +54,7 @@ describe('Point of Contact Card', () => {
5454

5555
describe('Edit button', () => {
5656
test('should not be rendered for reader role', async () => {
57-
act(async () => {
57+
await act(async () => {
5858
const Component = () => (
5959
<MemoryRouter>
6060
<FeatureToggles features={[APP_FEATURES.reader]}>

src/components/engagement_data_cards/__tests__/timeline_card.spec.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ describe('Engagement Artifact Card', () => {
6363
expect(requestOpen).toHaveBeenCalled();
6464
});
6565
test('clicking the edit artifact dropdown item opens the edit artifact modal', async () => {
66-
act(async () => {
66+
await act(async () => {
6767
const requestOpen = jest.fn();
6868
render(
6969
<FeatureToggleContext.Provider

src/components/engagement_data_cards/engagement_artifact_card/__tests__/engagement_timeline_card.spec.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ describe('Engagement timeline card', () => {
2727
test('by default, when creating a new artifact, the first artifact type in the array of artifact types is selected', async () => {
2828
let view: RenderResult;
2929
const onUpdateField = jest.fn();
30-
act(async () => {
30+
await act(async () => {
3131
view = render(
3232
<TestStateWrapper>
3333
<EngagementContext.Provider

src/components/engagement_edit_modals/__tests__/engagement_summary_edit_modal.spec.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ describe('timezone select', () => {
8484
});
8585
});
8686
test('can toggle timezone dropdown', async () => {
87-
act(async () => {
87+
await act(async () => {
8888
const spy = jest.fn();
8989
const view = render(<Component spy={spy} />);
9090
const dropdown = await view.findByTestId('timezone-select');

src/components/feature/__tests__/feature.spec.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { TestStateWrapper } from '../../../common/test_state_wrapper';
77

88
describe('Feature component', () => {
99
test('should render inactive component if role is not present', async () => {
10-
act(async () => {
10+
await act(async () => {
1111
function Wrapper({ children }) {
1212
return (
1313
<TestStateWrapper>
@@ -30,7 +30,7 @@ describe('Feature component', () => {
3030
});
3131

3232
test('should render the active component when the role is present', async () => {
33-
act(async () => {
33+
await act(async () => {
3434
function Wrapper({ children }) {
3535
return (
3636
<TestStateWrapper>

src/components/launch_alert_banner/__tests__/launch_alert_banner.spec.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ describe('Engagement launch alert banner ', () => {
2727

2828
test('shows the delete button for launchable engagements', async () => {
2929
let view: RenderResult;
30-
act(async () => {
30+
await act(async () => {
3131
view = getLaunchBar();
3232
});
3333
expect(await view.findByTestId('delete-button')).toBeDefined();
@@ -48,7 +48,7 @@ describe('Engagement launch alert banner ', () => {
4848
);
4949

5050
let view: RenderResult;
51-
act(async () => {
51+
await act(async () => {
5252
view = getLaunchBarForNonLaunchableEngagement();
5353
});
5454
expect(view.queryByTestId('delete-button')).toBeNull();

src/routes/create_new_engagement/__tests__/create_new_engagement.spec.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import { act, fireEvent, render } from '@testing-library/react';
77
import { APP_FEATURES } from '../../../common/app_features';
88
import { CreateNewEngagement } from '../create_new_engagement';
99
import { Engagement } from '../../../schemas/engagement';
10-
import { EngagementFormConfig } from '../../../schemas/engagement_config';
1110
import { FeatureToggles } from '../../../context/feature_context/feature_toggles';
1211
import { MemoryRouter } from 'react-router';
1312
import React from 'react';

src/routes/dashboard/index.tsx

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ import { useCategories } from '../../hooks/use_categories';
3333
import { useEnabledUsers } from '../../hooks/use_enabled_users';
3434
import { useEngagementCollection } from '../../hooks/engagement_collection_hook';
3535
import { useEngagementFormConfig } from '../../context/engagement_config_context/engagement_config_hook';
36-
import { useHistory } from 'react-router';
36+
import { useHistory, useLocation } from 'react-router';
3737
import { useServiceProviders } from '../../context/service_provider_context/service_provider_context';
3838
import { useSummaryCount } from '../../hooks/use_summary_count';
3939
import { useVersion } from '../../context/version_context/version_context';
@@ -60,6 +60,9 @@ export function Dashboard() {
6060
}
6161
}, [versionContext]);
6262

63+
const history = useHistory();
64+
const location = useLocation();
65+
6366
const {
6467
categoryService,
6568
engagementService,
@@ -69,17 +72,25 @@ export function Dashboard() {
6972
summaryCountService,
7073
} = useServiceProviders();
7174
const [isRegionSelectOpen, setIsRegionSelectOpen] = useState(false);
72-
const [selectedRegions, setSelectedRegions] = useState<string[]>([]);
75+
const [selectedRegions, setSelectedRegions] = useState(() => {
76+
const search = new URLSearchParams(location.search);
77+
const initialState = search.get('regions') ? search.get('regions').split(',') : [];
78+
return initialState;
79+
});
7380
const { engagementFormConfig } = useEngagementFormConfig(engagementService);
7481
const { getEngagements } = useEngagementCollection({
7582
engagementService,
7683
});
7784

78-
const history = useHistory();
7985
useEffect(() => {
8086
getEngagements({ perPage: 10000, pageNumber: 1, exclude: ['commits'] });
8187
}, [getEngagements]);
8288

89+
useEffect(() => {
90+
const params = selectedRegions.length === 0 ? '' : `?regions=${selectedRegions.join(',')}`;
91+
history.replace(`${location.pathname}${params}`)
92+
}, [selectedRegions, history, location.pathname]);
93+
8394
const [dateFilter, setDateFilter] = useState<DateFilter | undefined>(
8495
undefined
8596
);

0 commit comments

Comments
 (0)