Skip to content

Commit 3d0750c

Browse files
authored
Merge pull request #763 from companieshouse/feature/lp-595-general-partner
lp-595 : LimitedPartnershipService - patchGeneralPartner
2 parents b68752f + daa9856 commit 3d0750c

File tree

3 files changed

+71
-0
lines changed

3 files changed

+71
-0
lines changed

src/services/limited-partnerships/service.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,4 +115,18 @@ export default class LimitedPartnershipsService {
115115
resource: { ...response.body }
116116
};
117117
}
118+
119+
public async patchGeneralPartner (
120+
transactionId: string,
121+
generalPartnerId: string,
122+
body: GeneralPartner["data"]
123+
): Promise<Resource<void> | ApiErrorResponse> {
124+
const URL = `/transactions/${transactionId}/limited-partnership/general-partner/${generalPartnerId}`;
125+
const response: HttpResponse = await this.client.httpPatch(URL, body);
126+
127+
return {
128+
httpStatusCode: response.status,
129+
resource: { ...response.body }
130+
};
131+
}
118132
}

test/services/limited-partnerships/limited.partnerships.mock.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ export const LIMITED_PARTNERSHIP_INCORPORATION_OBJECT_MOCK_WITH_SUB: LimitedPart
122122

123123
export const TRANSACTION_ID = "12345";
124124
export const SUBMISSION_ID = "09876";
125+
export const GENERAL_PARTNER_ID = "00112233";
125126
export const LIMITED_PARTNERSHIP_ID = "00112233";
126127
export const FILE_RESOURCE_ID = "a1b2c3";
127128
export const UNAUTHORISED = "Unauthorised";
@@ -173,3 +174,9 @@ export const mockGetGeneralPartnerResponse = {
173174
404: { status: 404, body: { error: NOT_FOUND } },
174175
401: { status: 401, body: { error: UNAUTHORISED } }
175176
};
177+
178+
export const mockPatchGeneralPartnerResponse = {
179+
200: { status: 200 },
180+
400: { status: 400, body: { error: BAD_REQUEST } },
181+
401: { status: 401, body: { error: UNAUTHORISED } }
182+
};

test/services/limited-partnerships/limited.partnerships.spec.ts

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -577,4 +577,54 @@ describe("LimitedPartnershipsService", () => {
577577
expect(response.resource.error).to.equal(mockValues.NOT_FOUND);
578578
});
579579
})
580+
581+
describe("patchGeneralPartner", () => {
582+
it("should return 200 patchGeneralPartner method", async () => {
583+
const mockRequest = sinon
584+
.stub(mockValues.requestClient, "httpPatch")
585+
.resolves(mockValues.mockPatchGeneralPartnerResponse[200]);
586+
const service = new LimitedPartnershipsService(
587+
mockValues.requestClient
588+
);
589+
const response = (await service.patchGeneralPartner(
590+
mockValues.TRANSACTION_ID,
591+
mockValues.GENERAL_PARTNER_ID,
592+
mockValues.GENERAL_PARTNER_OBJECT_MOCK.data
593+
)) as Resource<void>;
594+
595+
expect(mockRequest).to.have.been.calledOnce;
596+
expect(
597+
mockRequest.calledWith(
598+
"/transactions/12345/limited-partnership/general-partner/00112233",
599+
mockValues.GENERAL_PARTNER_OBJECT_MOCK.data
600+
)
601+
).to.be.true;
602+
603+
expect(response.httpStatusCode).to.equal(200);
604+
});
605+
606+
it("should return error 400 (Bad Request)", async () => {
607+
const mockRequest = sinon
608+
.stub(mockValues.requestClient, "httpPatch")
609+
.resolves(mockValues.mockPatchGeneralPartnerResponse[400]);
610+
const service = new LimitedPartnershipsService(
611+
mockValues.requestClient
612+
);
613+
const response = (await service.patchGeneralPartner(
614+
mockValues.TRANSACTION_ID,
615+
mockValues.GENERAL_PARTNER_ID,
616+
{}
617+
)) as Resource<LimitedPartnershipResourceCreated>;
618+
619+
expect(mockRequest).to.have.been.calledOnce;
620+
expect(
621+
mockRequest.calledWith(
622+
"/transactions/12345/limited-partnership/general-partner/00112233",
623+
{}
624+
)
625+
).to.be.true;
626+
627+
expect(response.httpStatusCode).to.equal(400);
628+
});
629+
})
580630
});

0 commit comments

Comments
 (0)