it('should return false when no response type or defendantDetails is set', () => {
      const draft: ResponseDraft = new ResponseDraft()
      draft.response = undefined
      draft.defendantDetails.partyDetails = undefined

      expect(draft.isResponseFullyAdmitted()).to.be.eq(false)
    })
    it('should return true when response is full admission with already paid and amount claimed', () => {
      const draft: ResponseDraft = new ResponseDraft()
      draft.response = new Response(ResponseType.DEFENCE)
      draft.rejectAllOfClaim = new RejectAllOfClaim(RejectAllOfClaimOption.ALREADY_PAID, new HowMuchHaveYouPaid(100))

      expect(draft.isResponseRejectedFullyBecausePaidWhatOwed()).to.be.equals(true)
    })
    it('should return true when more time was requested', () => {
      const draft: ResponseDraft = new ResponseDraft()
      draft.moreTimeNeeded = new MoreTimeNeeded(MoreTimeNeededOption.YES)

      expect(draft.moreTimeNeeded.option).to.be.eq(MoreTimeNeededOption.YES)
      expect(draft.isMoreTimeRequested()).to.be.eq(true)
    })
    it('should return false when full rejection option is undefined', () => {
      const draft: ResponseDraft = new ResponseDraft()
      draft.response = new Response(ResponseType.DEFENCE)
      draft.rejectAllOfClaim = undefined

      expect(draft.isResponseRejectedFullyWithDispute()).to.be.equals(false)
    })
    it('should return true when response is rejected with dispute', () => {
      const draft: ResponseDraft = new ResponseDraft()
      draft.response = new Response(ResponseType.DEFENCE)
      draft.rejectAllOfClaim = new RejectAllOfClaim(RejectAllOfClaimOption.DISPUTE)

      expect(draft.isResponseRejectedFullyWithDispute()).to.be.equals(true)
    })
    it('should return true when response is a full admission', () => {
      const draft: ResponseDraft = new ResponseDraft()
      draft.response = new Response(ResponseType.FULL_ADMISSION)
      draft.defendantDetails.partyDetails = new PartyDetails()
      draft.defendantDetails.partyDetails.type = PartyType.INDIVIDUAL.value

      expect(draft.isResponseFullyAdmitted()).to.be.eq(true)
    })
      it('response type is fully admitted', () => {
        const draft: ResponseDraft = new ResponseDraft()
        draft.response = {
          type: ResponseType.FULL_ADMISSION
        }

        expect(draft.isResponsePartiallyAdmitted()).to.be.eq(false)
      })
    it('should return true when response is full admission and payment option is instalments', () => {
      const draft: ResponseDraft = new ResponseDraft()
      draft.response = new Response(ResponseType.FULL_ADMISSION)
      draft.fullAdmission = new FullAdmission()
      draft.fullAdmission.paymentIntention = new PaymentIntention()
      draft.fullAdmission.paymentIntention.paymentOption = new PaymentOption(PaymentType.INSTALMENTS)

      expect(draft.isResponseFullyAdmitted()).to.be.eq(true)
    })
      PaymentType.except(PaymentType.INSTALMENTS).forEach(paymentType => {
        const draft: ResponseDraft = new ResponseDraft()
        draft.response = new Response(ResponseType.FULL_ADMISSION)
        draft.fullAdmission = new FullAdmission()
        draft.fullAdmission.paymentIntention = new PaymentIntention()
        draft.fullAdmission.paymentIntention.paymentOption = new PaymentOption(paymentType)

        expect(draft.isResponseFullyAdmittedWithInstalments()).to.be.eq(false)
      })
const setHowMuchDoYouOweAmount = (req: express.Request, res: express.Response, next: express.NextFunction) => {
  const draft: ResponseDraft = res.locals.responseDraft.document

  if (draft.isResponsePartiallyAdmitted() && draft.partialAdmission.howMuchDoYouOwe) {
    res.locals.amount = draft.partialAdmission.howMuchDoYouOwe.amount || 0
  }

  next()
}