Skip to content

Commit b327625

Browse files
feature/dep315: Fixed api linting errors, fixed failing web unit test.
1 parent 072ef4b commit b327625

9 files changed

Lines changed: 28 additions & 23 deletions

File tree

api/src/api/models/engagement.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ def _filter_by_engagement_status(query, search_options):
275275
for status in search_options.get('engagement_status', [])]
276276
if not statuses:
277277
return query
278-
278+
279279
allowed_statuses = [
280280
Status.Draft.value,
281281
Status.Published.value,
@@ -307,7 +307,7 @@ def _filter_by_engagement_status(query, search_options):
307307
Engagement.end_date < datetime.now()
308308
)
309309
)
310-
310+
311311
if EngagementDisplayStatus.Unpublished.value in statuses:
312312
status_filter.append(Engagement.status_id ==
313313
Status.Unpublished.value)

web/src/components/engagement/admin/create/authoring/AuthoringFeedback.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ import { getEditorStateFromRaw } from 'components/common/RichTextEditor/utils';
1414
import ConfirmModal from 'components/common/Modals/ConfirmModal';
1515
import { EngagementStatus } from 'constants/engagementStatus';
1616
import { AuthoringFormContainer, AuthoringFormSection } from './AuthoringFormLayout';
17-
import { tryParse } from './utils';
1817
import { getEngagementTranslationByCode } from 'services/engagementService';
1918
import { useAuthoringPageHydration } from './useAuthoringPageHydration';
2019
import { AppConfig } from 'config';
20+
import { tryParse } from 'helper';
2121

2222
type SelectOption = { label: string; value: number };
2323

@@ -56,7 +56,7 @@ const AuthoringFeedback = () => {
5656
...defaultValuesObject,
5757
form_source: pageName,
5858
id: Number(loadedEngagement.id),
59-
status_id: Number(loadedEngagement.id),
59+
status_id: Number(loadedEngagement.status_id),
6060
feedback_heading: feedbackHeading || '',
6161
feedback_body: tryParse(feedbackBody) ? getEditorStateFromRaw(feedbackBody) || '' : '',
6262
selected_survey_id: loadedEngagement.surveys?.find(

web/src/components/engagement/admin/create/authoring/AuthoringSummary.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ import WidgetPicker from '../widgets';
1313
import { WidgetLocation } from 'models/widget';
1414
import { getEditorStateFromRaw } from 'components/common/RichTextEditor/utils';
1515
import { AuthoringFormContainer, AuthoringFormSection } from './AuthoringFormLayout';
16-
import { tryParse } from './utils';
1716
import { getEngagementTranslationByCode } from 'services/engagementService';
1817
import { useAuthoringPageHydration } from './useAuthoringPageHydration';
1918
import { AppConfig } from 'config';
19+
import { tryParse } from 'helper';
2020

2121
const AuthoringSummary = () => {
2222
const { setDefaultValues, fetcher, pageName }: AuthoringTemplateOutletContext = useOutletContext(); // Access the form functions and values from the authoring template.

web/src/components/engagement/admin/create/authoring/utils.ts

Lines changed: 0 additions & 13 deletions
This file was deleted.

web/src/components/landing/FilterBlock.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ import { CustomTextField, Select } from 'components/common/Input';
1616
import { When } from 'react-if';
1717
import { BodyText } from 'components/common/Typography/Body';
1818
import { LandingDataContext } from '.';
19-
import { tryParse } from 'engagements/admin/create/authoring/utils';
2019
import { getSearchParamObject, updateSearchParams } from './utils';
2120
import { EngagementDisplayStatus } from 'constants/engagementStatus';
21+
import { tryParse } from 'helper';
2222

2323
const FilterBlock = () => {
2424
const { searchParams, setSearchParams, clearFilters, setFiltersOpen } = useContext(LandingDataContext);

web/src/components/landing/landingLoader.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import { defaultLandingStatuses, defaultSearchFilters, validSortOrders } from '.
33
import { getMetadataFilters } from 'services/engagementMetadataService';
44
import { LandingLoaderData, SortOrder } from './types';
55
import { LoaderFunctionArgs } from 'react-router';
6-
import { tryParse } from 'engagements/admin/create/authoring/utils';
76
import { EngagementStatus } from 'constants/engagementStatus';
7+
import { tryParse } from 'helper';
88

99
const landingLoader = ({ request }: LoaderFunctionArgs): LandingLoaderData => {
1010
// Retrieve params

web/src/components/landing/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { tryParse } from 'engagements/admin/create/authoring/utils';
1+
import { tryParse } from 'helper';
22
import { SearchFilters } from './types';
33

44
export const updateSearchParams = (newFilters: SearchFilters, searchParams: URLSearchParams) => {

web/src/helper/index.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,3 +58,17 @@ export const levenshteinDistance = (string1: string, string2: string): number =>
5858
}
5959
return previousRow[string2.length];
6060
};
61+
62+
// Determines whether a string is JSON parseable and returns the JSON if it is.
63+
export const tryParse = (json: string | null | undefined) => {
64+
if (!json || typeof json !== 'string') {
65+
return false;
66+
}
67+
try {
68+
const object = JSON.parse(json);
69+
if (object && typeof object === 'object') {
70+
return object;
71+
}
72+
} catch {}
73+
return false;
74+
};

web/tests/unit/components/landingPage/LandingPage.test.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ jest.mock('react-router', () => ({
2727
...jest.requireActual('react-router'),
2828
useLoaderData: jest.fn(),
2929
useSearchParams: () => [new URLSearchParams(), jest.fn()],
30+
useRevalidator: () => ({
31+
revalidate: jest.fn(),
32+
state: 'idle',
33+
}),
3034
}));
3135

3236
jest.mock('hooks', () => ({
@@ -87,7 +91,7 @@ const populateLoaderData = () => {
8791
items: [openEngagement, closedEngagement],
8892
total: 2,
8993
}),
90-
filters: Promise.resolve([]),
94+
allMetaFilters: Promise.resolve([]),
9195
});
9296
};
9397

@@ -170,7 +174,7 @@ describe('Landing page tests', () => {
170174
items: [],
171175
total: 0,
172176
}),
173-
filters: Promise.resolve([]),
177+
allMetaFilters: Promise.resolve([]),
174178
});
175179

176180
renderLanding();

0 commit comments

Comments
 (0)