Example #1
0
    ErrorHandling.apply(async (req: express.Request, res: express.Response) => {
      const form: Form<Employment> = req.body

      if (form.hasErrors()) {
        res.render(page.associatedView, { form: form })
      } else {
        const draft: Draft<ResponseDraft> = res.locals.responseDraft
        const user: User = res.locals.user

        draft.document.statementOfMeans.employment = form.model
        if (form.model.declared) {
          draft.document.statementOfMeans.unemployment = undefined
        } else {
          draft.document.statementOfMeans.employers = draft.document.statementOfMeans.selfEmployment = undefined
        }
        await new DraftService().save(draft, user.bearerToken)

        const { externalId } = req.params
        if (form.model.declared === false) {
          res.redirect(StatementOfMeansPaths.unemployedPage.evaluateUri({ externalId: externalId }))
        } else {
          if (form.model.employed) {
            res.redirect(StatementOfMeansPaths.employersPage.evaluateUri({ externalId: externalId }))
          } else {
            res.redirect(StatementOfMeansPaths.selfEmploymentPage.evaluateUri({ externalId: externalId }))
          }
        }
      }
    })
import 'test/routes/expectations'
import { StatementOfMeansPaths } from 'response/paths'
import * as idamServiceMock from 'test/http-mocks/idam'
import * as draftStoreServiceMock from 'test/http-mocks/draft-store'
import * as claimStoreServiceMock from 'test/http-mocks/claim-store'
import { attachDefaultHooks } from 'test/routes/hooks'
import { checkAuthorizationGuards } from 'test/common/checks/authorization-check'
import { checkAlreadySubmittedGuard } from 'test/common/checks/already-submitted-check'
import { checkCountyCourtJudgmentRequestedGuard } from 'test/common/checks/ccj-requested-check'
import { app } from 'main/app'
import { checkNotDefendantInCaseGuard } from 'test/common/checks/not-defendant-in-case-check'
import { UnemploymentType } from 'response/form/models/statement-of-means/unemploymentType'

const externalId: string = claimStoreServiceMock.sampleClaimObj.externalId
const cookieName: string = config.get<string>('session.cookieName')
const pagePath: string = StatementOfMeansPaths.unemployedPage.evaluateUri({ externalId: externalId })
const nextPagePath: string = StatementOfMeansPaths.courtOrdersPage.evaluateUri({ externalId: externalId })

describe('Defendant response: Statement of means: unemployment page', () => {

  attachDefaultHooks(app)

  describe('on GET', () => {

    const method = 'get'
    checkAuthorizationGuards(app, method, pagePath)
    checkNotDefendantInCaseGuard(app, method, pagePath)

    context('when user authorised', () => {

      beforeEach(() => {
Example #3
0
 .expect(res => expect(res).to.be.redirect
   .toLocation(StatementOfMeansPaths.unemployedPage.evaluateUri(
     { externalId: claimStoreServiceMock.sampleClaimObj.externalId })
   )