diff --git a/server/form-pages/apply/assess-placement-risks-and-needs/prison-information/acctAlerts.test.ts b/server/form-pages/apply/assess-placement-risks-and-needs/prison-information/acctAlerts.test.ts index fc2eb57c6..919b63bc2 100644 --- a/server/form-pages/apply/assess-placement-risks-and-needs/prison-information/acctAlerts.test.ts +++ b/server/form-pages/apply/assess-placement-risks-and-needs/prison-information/acctAlerts.test.ts @@ -5,6 +5,7 @@ import { acctAlertFactory, applicationFactory, personFactory } from '../../../.. import { itShouldHaveNextValue, itShouldHavePreviousValue } from '../../../shared-examples' import { PageBodyPersonAcctAlert, mapAcctAlertsForPageBody } from '../../../utils' import AcctAlerts, { acctAlertResponse } from './acctAlerts' +import { SanitisedError } from '../../../../sanitisedError' jest.mock('../../../../services/personService') jest.mock('../../../utils') @@ -78,6 +79,24 @@ describe('AcctAlerts', () => { expect(getAcctAlertsMock).toHaveBeenCalledWith(callConfig, application.person.crn) expect(mapAcctAlertsForPageBody).toHaveBeenCalledWith(apiAcctAlerts) }) + + it('sets the number of acctAlerts to 0 if none are found', async () => { + const err = { data: { status: 404 } } + const getAcctAlertsMock = jest.fn().mockImplementation(() => { + throw err + }) + + const personService = createMock({ + getAcctAlerts: getAcctAlertsMock, + }) + + const page = await AcctAlerts.initialize({}, application, callConfig, { personService }) + + expect(page.body).toEqual({ acctAlerts }) + + expect(getAcctAlertsMock).toHaveBeenCalledWith(callConfig, application.person.crn) + expect(mapAcctAlertsForPageBody).toHaveBeenCalledWith([]) + }) }) itShouldHavePreviousValue(new AcctAlerts({}, application), 'adjudications') diff --git a/server/form-pages/apply/assess-placement-risks-and-needs/prison-information/acctAlerts.ts b/server/form-pages/apply/assess-placement-risks-and-needs/prison-information/acctAlerts.ts index f37c71ef0..504bd4b1d 100644 --- a/server/form-pages/apply/assess-placement-risks-and-needs/prison-information/acctAlerts.ts +++ b/server/form-pages/apply/assess-placement-risks-and-needs/prison-information/acctAlerts.ts @@ -41,7 +41,16 @@ export default class AcctAlerts implements TasklistPage { callConfig: CallConfig, dataServices: DataServices, ) { - const acctAlerts = await dataServices.personService.getAcctAlerts(callConfig, application.person.crn) + let acctAlerts: PersonAcctAlert[] = [] + + try { + acctAlerts = await dataServices.personService.getAcctAlerts(callConfig, application.person.crn) + } catch (e) { + if (e?.data?.status !== 404) { + throw e + } + } + const page = new AcctAlerts({ acctAlerts: mapAcctAlertsForPageBody(acctAlerts) }, application) page.importDate = DateFormats.dateObjToIsoDate(new Date()) diff --git a/server/form-pages/apply/assess-placement-risks-and-needs/prison-information/adjudications.test.ts b/server/form-pages/apply/assess-placement-risks-and-needs/prison-information/adjudications.test.ts index 4c09bc54a..61cacbd87 100644 --- a/server/form-pages/apply/assess-placement-risks-and-needs/prison-information/adjudications.test.ts +++ b/server/form-pages/apply/assess-placement-risks-and-needs/prison-information/adjudications.test.ts @@ -5,6 +5,7 @@ import { adjudicationFactory, applicationFactory, personFactory } from '../../.. import { itShouldHaveNextValue, itShouldHavePreviousValue } from '../../../shared-examples' import { PageBodyAdjudication, mapAdjudicationsForPageBody } from '../../../utils' import Adjudications, { adjudicationResponse } from './adjudications' +import { SanitisedError } from '../../../../sanitisedError' jest.mock('../../../../services/personService') jest.mock('../../../utils') @@ -66,6 +67,24 @@ describe('Adjudications', () => { expect(getAdjudicationsMock).toHaveBeenCalledWith(callConfig, application.person.crn) expect(mapAdjudicationsForPageBody).toHaveBeenCalledWith(apiAdjudications) }) + + it('sets the number of adjudications to 0 if none are found', async () => { + const err = { data: { status: 404 } } + const getAdjudicationsMock = jest.fn().mockImplementation(() => { + throw err + }) + + const personService = createMock({ + getAdjudications: getAdjudicationsMock, + }) + + const page = await Adjudications.initialize({}, application, callConfig, { personService }) + + expect(page.body).toEqual({ adjudications }) + + expect(getAdjudicationsMock).toHaveBeenCalledWith(callConfig, application.person.crn) + expect(mapAdjudicationsForPageBody).toHaveBeenCalledWith([]) + }) }) itShouldHavePreviousValue(new Adjudications({}, application), 'dashboard') diff --git a/server/form-pages/apply/assess-placement-risks-and-needs/prison-information/adjudications.ts b/server/form-pages/apply/assess-placement-risks-and-needs/prison-information/adjudications.ts index c3bc7a797..0b233189b 100644 --- a/server/form-pages/apply/assess-placement-risks-and-needs/prison-information/adjudications.ts +++ b/server/form-pages/apply/assess-placement-risks-and-needs/prison-information/adjudications.ts @@ -43,7 +43,15 @@ export default class Adjudications implements TasklistPage { callConfig: CallConfig, dataServices: DataServices, ) { - const adjudications = await dataServices.personService.getAdjudications(callConfig, application.person.crn) + let adjudications: Adjudication[] = [] + + try { + adjudications = await dataServices.personService.getAdjudications(callConfig, application.person.crn) + } catch (e) { + if (e?.data?.status !== 404) { + throw e + } + } const page = new Adjudications({ adjudications: mapAdjudicationsForPageBody(adjudications) }, application)