From 62a4c50caf3ab2e09c63fab1ab2dee44c1232093 Mon Sep 17 00:00:00 2001 From: Shreyas Devalapurkar Date: Thu, 22 Apr 2021 12:35:36 -0700 Subject: [PATCH 1/3] wip --- api/src/constants/codes.ts | 6 ++++ api/src/models/project-create.ts | 2 ++ api/src/models/project-update.ts | 7 ++++ api/src/models/project-view.ts | 5 +++ api/src/paths/codes.ts | 14 ++++++++ api/src/paths/project.ts | 11 +++++-- api/src/paths/project/{projectId}/update.ts | 2 +- .../queries/project/project-create-queries.ts | 6 +++- .../queries/project/project-update-queries.ts | 1 + .../queries/project/project-view-queries.ts | 1 + api/src/utils/code-utils.ts | 6 ++-- .../features/projects/CreateProjectPage.tsx | 5 +++ .../projects/components/ProjectPermitForm.tsx | 33 ++++++++++++++++++- .../view/components/ProjectPermits.tsx | 19 +++++++++-- app/src/interfaces/useCodesApi.interface.ts | 1 + app/src/interfaces/useProjectApi.interface.ts | 1 + app/src/test-helpers/code-helpers.ts | 1 + 17 files changed, 112 insertions(+), 9 deletions(-) diff --git a/api/src/constants/codes.ts b/api/src/constants/codes.ts index 89a119d0ce..e06b6cacc7 100644 --- a/api/src/constants/codes.ts +++ b/api/src/constants/codes.ts @@ -1,3 +1,9 @@ +export const permit_type = [ + { id: 1, name: 'Park Use Permit' }, + { id: 2, name: 'Wildlife Permit - General' }, + { id: 3, name: 'Scientific Fish Collection Permit' } +]; + export const coordinator_agency = [ { id: 1, name: 'A Rocha Canada' }, { id: 2, name: 'Aarde Environmental Ltd.' }, diff --git a/api/src/models/project-create.ts b/api/src/models/project-create.ts index 0c6b8f51df..d7eb990126 100644 --- a/api/src/models/project-create.ts +++ b/api/src/models/project-create.ts @@ -61,6 +61,7 @@ export class PostCoordinatorData { export interface IPostPermit { permit_number: string; + permit_type: string; sampling_conducted: boolean; } @@ -81,6 +82,7 @@ export class PostPermitData { obj.permits.map((item: any) => { return { permit_number: item.permit_number, + permit_type: item.permit_type, sampling_conducted: (item.sampling_conducted === 'true' && true) || false }; })) || diff --git a/api/src/models/project-update.ts b/api/src/models/project-update.ts index 38e0e9b8c9..38896ff29b 100644 --- a/api/src/models/project-update.ts +++ b/api/src/models/project-update.ts @@ -300,6 +300,7 @@ export class PutFundingSource { export interface IPutPermit { permit_number: string; + permit_type: string; sampling_conducted: boolean; } @@ -324,6 +325,7 @@ export class PutPermitData { obj.permits.map((item: any) => { return { permit_number: item.permit_number, + permit_type: item.permit_type, sampling_conducted: (item.sampling_conducted === 'true' && true) || false }; })) || @@ -333,6 +335,7 @@ export class PutPermitData { interface IGetPermit { permit_number: string; + permit_type: number; sampling_conducted: string; } @@ -355,8 +358,12 @@ export class GetPermitData { this.permits = (permitData?.length && permitData.map((item: any) => { + console.log('%%%%%%%%%%%%%%%%%%%%%'); + console.log(item.type); + console.log(Number(item.type)); return { permit_number: item.number, + permit_type: Number(item.type), sampling_conducted: item.sampling_conducted ? 'true' : 'false' }; })) || diff --git a/api/src/models/project-view.ts b/api/src/models/project-view.ts index bd196e4602..36fef29a83 100644 --- a/api/src/models/project-view.ts +++ b/api/src/models/project-view.ts @@ -1,4 +1,5 @@ import { Feature } from 'geojson'; +import { permit_type } from '../constants/codes'; import { getLogger } from '../utils/logger'; const defaultLog = getLogger('models/project-view'); @@ -34,6 +35,7 @@ export class GetProjectData { export interface IGetPermit { permit_number: string; + permit_type: string; sampling_conducted: boolean; } @@ -56,8 +58,11 @@ export class GetPermitData { this.permits = (permitData?.length && permitData.map((item: any) => { + console.log(permit_type); + console.log(item.type); return { permit_number: item.number, + permit_type: permit_type.find((p) => p.id == item.type)?.name || '', sampling_conducted: item.sampling_conducted }; })) || diff --git a/api/src/paths/codes.ts b/api/src/paths/codes.ts index 5e361af326..558f000dda 100644 --- a/api/src/paths/codes.ts +++ b/api/src/paths/codes.ts @@ -128,6 +128,20 @@ GET.apiDoc = { } } }, + permit_type: { + type: 'array', + items: { + type: 'object', + properties: { + id: { + type: 'number' + }, + name: { + type: 'string' + } + } + } + }, region: { type: 'array', items: { diff --git a/api/src/paths/project.ts b/api/src/paths/project.ts index 5992732bbd..adca98bb51 100644 --- a/api/src/paths/project.ts +++ b/api/src/paths/project.ts @@ -180,7 +180,13 @@ function createProject(): RequestHandler { promises.push( Promise.all( sanitizedProjectPostData.permit.permits.map((permit: IPostPermit) => - insertPermitNumber(permit.permit_number, projectId, permit.sampling_conducted, connection) + insertPermitNumber( + permit.permit_number, + permit.permit_type, + projectId, + permit.sampling_conducted, + connection + ) ) ) ); @@ -360,11 +366,12 @@ export const insertStakeholderPartnership = async ( export const insertPermitNumber = async ( permit_number: string, + permit_type: string, project_id: number, sampling_conducted: boolean, connection: IDBConnection ): Promise => { - const sqlStatement = postProjectPermitSQL(permit_number, project_id, sampling_conducted); + const sqlStatement = postProjectPermitSQL(permit_number, permit_type, project_id, sampling_conducted); if (!sqlStatement) { throw new HTTP400('Failed to build SQL insert statement'); diff --git a/api/src/paths/project/{projectId}/update.ts b/api/src/paths/project/{projectId}/update.ts index c0ffb74873..5208f07ab1 100644 --- a/api/src/paths/project/{projectId}/update.ts +++ b/api/src/paths/project/{projectId}/update.ts @@ -615,7 +615,7 @@ export const updateProjectPermitData = async ( const insertPermitPromises = putPermitData?.permits?.map((permit: IPutPermit) => - insertPermitNumber(permit.permit_number, projectId, permit.sampling_conducted, connection) + insertPermitNumber(permit.permit_number, permit.permit_type, projectId, permit.sampling_conducted, connection) ) || []; await Promise.all(insertPermitPromises); diff --git a/api/src/queries/project/project-create-queries.ts b/api/src/queries/project/project-create-queries.ts index ffa15fa7aa..a07adc9989 100644 --- a/api/src/queries/project/project-create-queries.ts +++ b/api/src/queries/project/project-create-queries.ts @@ -341,6 +341,7 @@ export const postProjectIndigenousNationSQL = (indigenousNationId: number, proje */ export const postProjectPermitSQL = ( permit_number: string, + permit_type: string, projectId: number, sampling_conducted: boolean ): SQLStatement | null => { @@ -348,11 +349,12 @@ export const postProjectPermitSQL = ( label: 'postProjectPermitSQL', message: 'params', permit_number, + permit_type, sampling_conducted, projectId }); - if (!permit_number || !projectId) { + if (!permit_number || !permit_type || !projectId) { return null; } @@ -360,10 +362,12 @@ export const postProjectPermitSQL = ( INSERT INTO project_permit ( p_id, number, + type, sampling_conducted ) VALUES ( ${projectId}, ${permit_number}, + ${permit_type}, ${sampling_conducted} ) RETURNING diff --git a/api/src/queries/project/project-update-queries.ts b/api/src/queries/project/project-update-queries.ts index 09a44ba687..0a75899a21 100644 --- a/api/src/queries/project/project-update-queries.ts +++ b/api/src/queries/project/project-update-queries.ts @@ -113,6 +113,7 @@ export const getPermitsByProjectSQL = (projectId: number): SQLStatement | null = const sqlStatement = SQL` SELECT number, + type, sampling_conducted FROM project_permit diff --git a/api/src/queries/project/project-view-queries.ts b/api/src/queries/project/project-view-queries.ts index 57382aa77e..262a21efcd 100644 --- a/api/src/queries/project/project-view-queries.ts +++ b/api/src/queries/project/project-view-queries.ts @@ -202,6 +202,7 @@ export const getProjectPermitsSQL = (projectId: number): SQLStatement | null => const sqlStatement = SQL` SELECT number, + type, sampling_conducted FROM project_permit diff --git a/api/src/utils/code-utils.ts b/api/src/utils/code-utils.ts index d684cb48aa..1bd330845a 100644 --- a/api/src/utils/code-utils.ts +++ b/api/src/utils/code-utils.ts @@ -12,7 +12,7 @@ import { getProjectTypeSQL } from '../queries/codes/code-queries'; import { getLogger } from '../utils/logger'; -import { coordinator_agency, region, species } from '../constants/codes'; +import { coordinator_agency, region, species, permit_type } from '../constants/codes'; const defaultLog = getLogger('queries/code-queries'); @@ -27,6 +27,7 @@ export interface IAllCodeSets { coordinator_agency: object; region: object; species: object; + permit_type: object; iucn_conservation_action_level_1_classification: object; iucn_conservation_action_level_2_subclassification: object; iucn_conservation_action_level_3_subclassification: object; @@ -94,6 +95,7 @@ export async function getAllCodeSets(connection: IDBConnection): Promise { setNumberOfSteps(NUM_PARTIAL_PROJECT_STEPS); } }} + permit_type={ + codes?.permit_type?.map((item) => { + return { value: item.id, label: item.name }; + }) || [] + } /> ), stepValues: initialProjectFieldData.permit, diff --git a/app/src/features/projects/components/ProjectPermitForm.tsx b/app/src/features/projects/components/ProjectPermitForm.tsx index f4c7b0cf4a..3655eec93f 100644 --- a/app/src/features/projects/components/ProjectPermitForm.tsx +++ b/app/src/features/projects/components/ProjectPermitForm.tsx @@ -11,12 +11,14 @@ import TextField from '@material-ui/core/TextField'; import Typography from '@material-ui/core/Typography'; import { mdiTrashCanOutline } from '@mdi/js'; import Icon from '@mdi/react'; +import { IMultiAutocompleteFieldOption } from 'components/fields/MultiAutocompleteFieldVariableSize'; import { FieldArray, useFormikContext } from 'formik'; import React, { useEffect } from 'react'; import yup from 'utils/YupSchema'; export interface IProjectPermitFormArrayItem { permit_number: string; + permit_type: string; sampling_conducted: string; } @@ -26,6 +28,7 @@ export interface IProjectPermitForm { export const ProjectPermitFormArrayItemInitialValues: IProjectPermitFormArrayItem = { permit_number: '', + permit_type: '', sampling_conducted: 'true' }; @@ -39,6 +42,7 @@ export const ProjectPermitFormYupSchema = yup.object().shape({ .of( yup.object().shape({ permit_number: yup.string().max(100, 'Cannot exceed 100 characters').required('Required'), + permit_type: yup.string().required('Required'), sampling_conducted: yup.string().required('Required') }) ) @@ -51,6 +55,7 @@ export const ProjectPermitEditFormYupSchema = yup.object().shape({ .of( yup.object().shape({ permit_number: yup.string().max(100, 'Cannot exceed 100 characters').required('Required'), + permit_type: yup.string().required('Required'), sampling_conducted: yup.string().required('Required') }) ) @@ -60,6 +65,7 @@ export const ProjectPermitEditFormYupSchema = yup.object().shape({ }); export interface IProjectPermitFormProps { + permit_type: IMultiAutocompleteFieldOption[]; /** * Emits every time a form value changes. */ @@ -75,6 +81,7 @@ const ProjectPermitForm: React.FC = (props) => { const { values, handleChange, handleSubmit, getFieldMeta, errors } = useFormikContext(); useEffect(() => { + console.log(values); props?.onValuesChange?.(values); }, [values, props]); @@ -87,11 +94,12 @@ const ProjectPermitForm: React.FC = (props) => { {values.permits?.map((permit, index) => { const permitNumberMeta = getFieldMeta(`permits.[${index}].permit_number`); + const permitTypeMeta = getFieldMeta(`permits.[${index}].permit_type`); const samplingConductedMeta = getFieldMeta(`permits.[${index}].sampling_conducted`); return ( - + = (props) => { helperText={permitNumberMeta.error} /> + + + Permit Type + + {permitTypeMeta.error} + + Sampling Conducted diff --git a/app/src/features/projects/view/components/ProjectPermits.tsx b/app/src/features/projects/view/components/ProjectPermits.tsx index d61309f979..2f76914c51 100644 --- a/app/src/features/projects/view/components/ProjectPermits.tsx +++ b/app/src/features/projects/view/components/ProjectPermits.tsx @@ -50,7 +50,8 @@ export interface IProjectPermitsProps { */ const ProjectPermits: React.FC = (props) => { const { - projectForViewData: { permit, id } + projectForViewData: { permit, id }, + codes } = props; const biohubApi = useBiohubApi(); @@ -118,13 +119,23 @@ const ProjectPermits: React.FC = (props) => { const hasPermits = permit.permits && permit.permits.length > 0; + console.log(permit.permits); + return ( <> , + element: ( + { + return { value: item.id, label: item.name }; + }) || [] + } + /> + ), initialValues: permitFormData?.permits?.length ? permitFormData : { permits: [ProjectPermitFormArrayItemInitialValues] }, @@ -155,6 +166,7 @@ const ProjectPermits: React.FC = (props) => { Permit Number + Permit Type Sampling Conducted @@ -164,6 +176,9 @@ const ProjectPermits: React.FC = (props) => { {item.permit_number} + + {item.permit_type} + {item.sampling_conducted ? 'Yes' : 'No'} diff --git a/app/src/interfaces/useCodesApi.interface.ts b/app/src/interfaces/useCodesApi.interface.ts index 68b7aba93b..c063418dcd 100644 --- a/app/src/interfaces/useCodesApi.interface.ts +++ b/app/src/interfaces/useCodesApi.interface.ts @@ -32,6 +32,7 @@ export interface IGetAllCodeSetsResponse { project_type: CodeSet; region: CodeSet; species: CodeSet; + permit_type: CodeSet; iucn_conservation_action_level_1_classification: CodeSet; iucn_conservation_action_level_2_subclassification: CodeSet<{ id: number; iucn1_id: number; name: string }>; iucn_conservation_action_level_3_subclassification: CodeSet<{ id: number; iucn2_id: number; name: string }>; diff --git a/app/src/interfaces/useProjectApi.interface.ts b/app/src/interfaces/useProjectApi.interface.ts index 5da4e20c6a..50edb0d31f 100644 --- a/app/src/interfaces/useProjectApi.interface.ts +++ b/app/src/interfaces/useProjectApi.interface.ts @@ -140,6 +140,7 @@ export interface IGetProjectForUpdateResponseDetails { interface IGetProjectForUpdateResponsePermitArrayItem { permit_number: string; + permit_type: string; sampling_conducted: string; } diff --git a/app/src/test-helpers/code-helpers.ts b/app/src/test-helpers/code-helpers.ts index affe41a70f..3439acbb23 100644 --- a/app/src/test-helpers/code-helpers.ts +++ b/app/src/test-helpers/code-helpers.ts @@ -11,6 +11,7 @@ export const codes: IGetAllCodeSetsResponse = { project_type: [{ id: 1, name: 'Project type' }], region: [{ id: 1, name: 'Region code' }], species: [{ id: 1, name: 'Species code' }], + permit_type: [{ id: 1, name: 'Permit type' }], iucn_conservation_action_level_1_classification: [{ id: 1, name: 'IUCN class' }], iucn_conservation_action_level_2_subclassification: [{ id: 1, iucn1_id: 1, name: 'IUCN subclass 1' }], iucn_conservation_action_level_3_subclassification: [{ id: 1, iucn2_id: 1, name: 'IUCN subclass 2' }] From 130fadb08af126a99cc9030a1d76f2189015d74e Mon Sep 17 00:00:00 2001 From: Shreyas Devalapurkar Date: Thu, 22 Apr 2021 13:35:58 -0700 Subject: [PATCH 2/3] fix --- api/src/constants/codes.ts | 6 ----- api/src/models/project-update.ts | 7 ++---- api/src/models/project-view.ts | 5 +---- api/src/paths/codes.ts | 14 ------------ api/src/utils/code-utils.ts | 6 ++--- .../features/projects/CreateProjectPage.tsx | 5 ----- .../projects/components/ProjectPermitForm.tsx | 22 +++++++++---------- .../view/components/ProjectPermits.tsx | 15 ++----------- app/src/interfaces/useCodesApi.interface.ts | 1 - app/src/test-helpers/code-helpers.ts | 1 - 10 files changed, 18 insertions(+), 64 deletions(-) diff --git a/api/src/constants/codes.ts b/api/src/constants/codes.ts index e06b6cacc7..89a119d0ce 100644 --- a/api/src/constants/codes.ts +++ b/api/src/constants/codes.ts @@ -1,9 +1,3 @@ -export const permit_type = [ - { id: 1, name: 'Park Use Permit' }, - { id: 2, name: 'Wildlife Permit - General' }, - { id: 3, name: 'Scientific Fish Collection Permit' } -]; - export const coordinator_agency = [ { id: 1, name: 'A Rocha Canada' }, { id: 2, name: 'Aarde Environmental Ltd.' }, diff --git a/api/src/models/project-update.ts b/api/src/models/project-update.ts index 38896ff29b..af54e4edd5 100644 --- a/api/src/models/project-update.ts +++ b/api/src/models/project-update.ts @@ -335,7 +335,7 @@ export class PutPermitData { interface IGetPermit { permit_number: string; - permit_type: number; + permit_type: string; sampling_conducted: string; } @@ -358,12 +358,9 @@ export class GetPermitData { this.permits = (permitData?.length && permitData.map((item: any) => { - console.log('%%%%%%%%%%%%%%%%%%%%%'); - console.log(item.type); - console.log(Number(item.type)); return { permit_number: item.number, - permit_type: Number(item.type), + permit_type: item.type, sampling_conducted: item.sampling_conducted ? 'true' : 'false' }; })) || diff --git a/api/src/models/project-view.ts b/api/src/models/project-view.ts index 36fef29a83..dc737ac1b1 100644 --- a/api/src/models/project-view.ts +++ b/api/src/models/project-view.ts @@ -1,5 +1,4 @@ import { Feature } from 'geojson'; -import { permit_type } from '../constants/codes'; import { getLogger } from '../utils/logger'; const defaultLog = getLogger('models/project-view'); @@ -58,11 +57,9 @@ export class GetPermitData { this.permits = (permitData?.length && permitData.map((item: any) => { - console.log(permit_type); - console.log(item.type); return { permit_number: item.number, - permit_type: permit_type.find((p) => p.id == item.type)?.name || '', + permit_type: item.type, sampling_conducted: item.sampling_conducted }; })) || diff --git a/api/src/paths/codes.ts b/api/src/paths/codes.ts index 558f000dda..5e361af326 100644 --- a/api/src/paths/codes.ts +++ b/api/src/paths/codes.ts @@ -128,20 +128,6 @@ GET.apiDoc = { } } }, - permit_type: { - type: 'array', - items: { - type: 'object', - properties: { - id: { - type: 'number' - }, - name: { - type: 'string' - } - } - } - }, region: { type: 'array', items: { diff --git a/api/src/utils/code-utils.ts b/api/src/utils/code-utils.ts index 1bd330845a..d684cb48aa 100644 --- a/api/src/utils/code-utils.ts +++ b/api/src/utils/code-utils.ts @@ -12,7 +12,7 @@ import { getProjectTypeSQL } from '../queries/codes/code-queries'; import { getLogger } from '../utils/logger'; -import { coordinator_agency, region, species, permit_type } from '../constants/codes'; +import { coordinator_agency, region, species } from '../constants/codes'; const defaultLog = getLogger('queries/code-queries'); @@ -27,7 +27,6 @@ export interface IAllCodeSets { coordinator_agency: object; region: object; species: object; - permit_type: object; iucn_conservation_action_level_1_classification: object; iucn_conservation_action_level_2_subclassification: object; iucn_conservation_action_level_3_subclassification: object; @@ -95,7 +94,6 @@ export async function getAllCodeSets(connection: IDBConnection): Promise { setNumberOfSteps(NUM_PARTIAL_PROJECT_STEPS); } }} - permit_type={ - codes?.permit_type?.map((item) => { - return { value: item.id, label: item.name }; - }) || [] - } /> ), stepValues: initialProjectFieldData.permit, diff --git a/app/src/features/projects/components/ProjectPermitForm.tsx b/app/src/features/projects/components/ProjectPermitForm.tsx index 3655eec93f..4c94a254e9 100644 --- a/app/src/features/projects/components/ProjectPermitForm.tsx +++ b/app/src/features/projects/components/ProjectPermitForm.tsx @@ -11,7 +11,6 @@ import TextField from '@material-ui/core/TextField'; import Typography from '@material-ui/core/Typography'; import { mdiTrashCanOutline } from '@mdi/js'; import Icon from '@mdi/react'; -import { IMultiAutocompleteFieldOption } from 'components/fields/MultiAutocompleteFieldVariableSize'; import { FieldArray, useFormikContext } from 'formik'; import React, { useEffect } from 'react'; import yup from 'utils/YupSchema'; @@ -65,7 +64,6 @@ export const ProjectPermitEditFormYupSchema = yup.object().shape({ }); export interface IProjectPermitFormProps { - permit_type: IMultiAutocompleteFieldOption[]; /** * Emits every time a form value changes. */ @@ -81,7 +79,6 @@ const ProjectPermitForm: React.FC = (props) => { const { values, handleChange, handleSubmit, getFieldMeta, errors } = useFormikContext(); useEffect(() => { - console.log(values); props?.onValuesChange?.(values); }, [values, props]); @@ -115,23 +112,26 @@ const ProjectPermitForm: React.FC = (props) => { - Permit Type + Permit Type {permitTypeMeta.error} diff --git a/app/src/features/projects/view/components/ProjectPermits.tsx b/app/src/features/projects/view/components/ProjectPermits.tsx index 2f76914c51..3f179cffd7 100644 --- a/app/src/features/projects/view/components/ProjectPermits.tsx +++ b/app/src/features/projects/view/components/ProjectPermits.tsx @@ -50,8 +50,7 @@ export interface IProjectPermitsProps { */ const ProjectPermits: React.FC = (props) => { const { - projectForViewData: { permit, id }, - codes + projectForViewData: { permit, id } } = props; const biohubApi = useBiohubApi(); @@ -119,23 +118,13 @@ const ProjectPermits: React.FC = (props) => { const hasPermits = permit.permits && permit.permits.length > 0; - console.log(permit.permits); - return ( <> { - return { value: item.id, label: item.name }; - }) || [] - } - /> - ), + element: , initialValues: permitFormData?.permits?.length ? permitFormData : { permits: [ProjectPermitFormArrayItemInitialValues] }, diff --git a/app/src/interfaces/useCodesApi.interface.ts b/app/src/interfaces/useCodesApi.interface.ts index c063418dcd..68b7aba93b 100644 --- a/app/src/interfaces/useCodesApi.interface.ts +++ b/app/src/interfaces/useCodesApi.interface.ts @@ -32,7 +32,6 @@ export interface IGetAllCodeSetsResponse { project_type: CodeSet; region: CodeSet; species: CodeSet; - permit_type: CodeSet; iucn_conservation_action_level_1_classification: CodeSet; iucn_conservation_action_level_2_subclassification: CodeSet<{ id: number; iucn1_id: number; name: string }>; iucn_conservation_action_level_3_subclassification: CodeSet<{ id: number; iucn2_id: number; name: string }>; diff --git a/app/src/test-helpers/code-helpers.ts b/app/src/test-helpers/code-helpers.ts index 3439acbb23..affe41a70f 100644 --- a/app/src/test-helpers/code-helpers.ts +++ b/app/src/test-helpers/code-helpers.ts @@ -11,7 +11,6 @@ export const codes: IGetAllCodeSetsResponse = { project_type: [{ id: 1, name: 'Project type' }], region: [{ id: 1, name: 'Region code' }], species: [{ id: 1, name: 'Species code' }], - permit_type: [{ id: 1, name: 'Permit type' }], iucn_conservation_action_level_1_classification: [{ id: 1, name: 'IUCN class' }], iucn_conservation_action_level_2_subclassification: [{ id: 1, iucn1_id: 1, name: 'IUCN subclass 1' }], iucn_conservation_action_level_3_subclassification: [{ id: 1, iucn2_id: 1, name: 'IUCN subclass 2' }] From 0146681bd8a50c92be373dee7e5b436a1e7db9cf Mon Sep 17 00:00:00 2001 From: Shreyas Devalapurkar Date: Thu, 22 Apr 2021 13:51:44 -0700 Subject: [PATCH 3/3] update tests and final cleanup --- api/src/models/project-create.test.ts | 4 + api/src/models/project-update.test.ts | 8 + api/src/models/project-view.test.ts | 4 + .../project/project-create-queries.test.ts | 12 +- .../CreateProjectPage.test.tsx.snap | 74 ++- .../components/ProjectPermitForm.test.tsx | 14 +- .../ProjectPermitForm.test.tsx.snap | 424 ++++++++++++++++-- .../ProjectDetails.test.tsx.snap | 13 + .../view/components/ProjectPermits.test.tsx | 7 +- .../ProjectPermits.test.tsx.snap | 26 ++ app/src/interfaces/useProjectApi.interface.ts | 1 + app/src/test-helpers/project-helpers.ts | 1 + 12 files changed, 544 insertions(+), 44 deletions(-) diff --git a/api/src/models/project-create.test.ts b/api/src/models/project-create.test.ts index 4980631c1d..a24f73d174 100644 --- a/api/src/models/project-create.test.ts +++ b/api/src/models/project-create.test.ts @@ -324,6 +324,7 @@ describe('PostPermitData', () => { permits: [ { permit_number: '1', + permit_type: 'permit type', sampling_conducted: 'true' } ] @@ -337,6 +338,7 @@ describe('PostPermitData', () => { expect(projectPermitData.permits).to.eql([ { permit_number: '1', + permit_type: 'permit type', sampling_conducted: true } ]); @@ -350,6 +352,7 @@ describe('PostPermitData', () => { permits: [ { permit_number: '1', + permit_type: 'permit type', sampling_conducted: 'false' } ] @@ -363,6 +366,7 @@ describe('PostPermitData', () => { expect(projectPermitData.permits).to.eql([ { permit_number: '1', + permit_type: 'permit type', sampling_conducted: false } ]); diff --git a/api/src/models/project-update.test.ts b/api/src/models/project-update.test.ts index b0881587d6..b217c975fc 100644 --- a/api/src/models/project-update.test.ts +++ b/api/src/models/project-update.test.ts @@ -467,6 +467,7 @@ describe('GetPermitData', () => { const permits = [ { number: '1', + type: 'permit type', sampling_conducted: true } ]; @@ -479,6 +480,7 @@ describe('GetPermitData', () => { expect(projectPermitData.permits).to.eql([ { permit_number: '1', + permit_type: 'permit type', sampling_conducted: 'true' } ]); @@ -491,6 +493,7 @@ describe('GetPermitData', () => { const permits = [ { number: '1', + type: 'permit type', sampling_conducted: false } ]; @@ -503,6 +506,7 @@ describe('GetPermitData', () => { expect(projectPermitData.permits).to.eql([ { permit_number: '1', + permit_type: 'permit type', sampling_conducted: 'false' } ]); @@ -558,6 +562,7 @@ describe('PutPermitData', () => { permits: [ { permit_number: '1', + permit_type: 'permit type', sampling_conducted: 'true' } ] @@ -571,6 +576,7 @@ describe('PutPermitData', () => { expect(projectPermitData.permits).to.eql([ { permit_number: '1', + permit_type: 'permit type', sampling_conducted: true } ]); @@ -584,6 +590,7 @@ describe('PutPermitData', () => { permits: [ { permit_number: '1', + permit_type: 'permit type', sampling_conducted: 'false' } ] @@ -597,6 +604,7 @@ describe('PutPermitData', () => { expect(projectPermitData.permits).to.eql([ { permit_number: '1', + permit_type: 'permit type', sampling_conducted: false } ]); diff --git a/api/src/models/project-view.test.ts b/api/src/models/project-view.test.ts index 5ea4be35ca..0f3de01b4f 100644 --- a/api/src/models/project-view.test.ts +++ b/api/src/models/project-view.test.ts @@ -511,6 +511,7 @@ describe('GetPermitData', () => { const permits = [ { number: '1', + type: 'permit type', sampling_conducted: true } ]; @@ -523,6 +524,7 @@ describe('GetPermitData', () => { expect(projectPermitData.permits).to.eql([ { permit_number: '1', + permit_type: 'permit type', sampling_conducted: true } ]); @@ -535,6 +537,7 @@ describe('GetPermitData', () => { const permits = [ { number: '1', + type: 'permit type', sampling_conducted: false } ]; @@ -547,6 +550,7 @@ describe('GetPermitData', () => { expect(projectPermitData.permits).to.eql([ { permit_number: '1', + permit_type: 'permit type', sampling_conducted: false } ]); diff --git a/api/src/queries/project/project-create-queries.test.ts b/api/src/queries/project/project-create-queries.test.ts index 0b89f99136..5f8ea72438 100644 --- a/api/src/queries/project/project-create-queries.test.ts +++ b/api/src/queries/project/project-create-queries.test.ts @@ -308,13 +308,19 @@ describe('postProjectClimateChangeInitiativeSQL', () => { describe('postProjectPermitSQL', () => { describe('with invalid parameters', () => { it('returns null when no permit number', () => { - const response = postProjectPermitSQL((null as unknown) as string, 1, true); + const response = postProjectPermitSQL((null as unknown) as string, 'type', 1, true); + + expect(response).to.be.null; + }); + + it('returns null when no permit type', () => { + const response = postProjectPermitSQL('123', (null as unknown) as string, 1, true); expect(response).to.be.null; }); it('returns null when no project id', () => { - const response = postProjectPermitSQL('123', (null as unknown) as number, true); + const response = postProjectPermitSQL('123', 'type', (null as unknown) as number, true); expect(response).to.be.null; }); @@ -322,7 +328,7 @@ describe('postProjectPermitSQL', () => { describe('with valid parameters', () => { it('returns a SQLStatement when all fields are passed in as expected', () => { - const response = postProjectPermitSQL('123', 123, true); + const response = postProjectPermitSQL('123', 'type', 123, true); expect(response).to.not.be.null; expect(response?.values).to.deep.include('123'); diff --git a/app/src/features/projects/__snapshots__/CreateProjectPage.test.tsx.snap b/app/src/features/projects/__snapshots__/CreateProjectPage.test.tsx.snap index e2fbc88791..86e9578cc2 100644 --- a/app/src/features/projects/__snapshots__/CreateProjectPage.test.tsx.snap +++ b/app/src/features/projects/__snapshots__/CreateProjectPage.test.tsx.snap @@ -280,6 +280,78 @@ exports[`CreateProjectPage removes the extra project steps if all permits are ma
+
+ +
+
+ + ​ + +
+ + + +
+

+

+
+