Skip to content

Commit e3db51f

Browse files
authored
Merge pull request #769 from companieshouse/feature/lp-237-review-general-partner
lp-237 : limited-partnership service
2 parents c133adb + ea73358 commit e3db51f

File tree

4 files changed

+66
-16
lines changed

4 files changed

+66
-16
lines changed

src/services/limited-partnerships/service.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,18 @@ export default class LimitedPartnershipsService {
116116
};
117117
}
118118

119+
public async getGeneralPartners (
120+
transactionId: string
121+
): Promise<Resource<GeneralPartner[]> | ApiErrorResponse> {
122+
const URL = `/transactions/${transactionId}/limited-partnership/general-partners`;
123+
const response: HttpResponse = await this.client.httpGet(URL, { transactionId });
124+
125+
return {
126+
httpStatusCode: response.status,
127+
resource: response.body
128+
};
129+
}
130+
119131
public async patchGeneralPartner (
120132
transactionId: string,
121133
generalPartnerId: string,

src/services/limited-partnerships/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ export interface LimitedPartnership {
3030
}
3131

3232
export interface GeneralPartner {
33+
id?: string;
3334
data?: {
3435
date_effective_from?: string;
3536
date_of_birth?: string;

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

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ export const LIMITED_PARTNERSHIP_OBJECT_MOCK: LimitedPartnership = {
4848
};
4949

5050
export const GENERAL_PARTNER_OBJECT_MOCK: GeneralPartner = {
51+
id: "123456",
5152
data: {
5253
date_effective_from: "2005-02-04",
5354
date_of_birth: "2000-05-01",
@@ -95,7 +96,7 @@ export const GENERAL_PARTNER_OBJECT_MOCK: GeneralPartner = {
9596
postal_code: "SC15 1N2"
9697
}
9798
}
98-
}
99+
};
99100

100101
// This structure is used when POSTing Incorporation data
101102
export const INCORPORATION_OBJECT_MOCK: Incorporation = {
@@ -106,20 +107,22 @@ export const INCORPORATION_OBJECT_MOCK: Incorporation = {
106107

107108
// These structures represent responses from GETing Incorporation data:
108109

109-
export const LIMITED_PARTNERSHIP_INCORPORATION_OBJECT_MOCK: LimitedPartnershipIncorporation = {
110-
etag: "",
111-
kind: ""
112-
};
110+
export const LIMITED_PARTNERSHIP_INCORPORATION_OBJECT_MOCK: LimitedPartnershipIncorporation =
111+
{
112+
etag: "",
113+
kind: ""
114+
};
113115

114-
export const LIMITED_PARTNERSHIP_INCORPORATION_OBJECT_MOCK_WITH_SUB: LimitedPartnershipIncorporation = {
115-
etag: "",
116-
kind: "",
117-
sub_resources: {
118-
general_partners: [],
119-
limited_partners: [],
120-
partnership: LIMITED_PARTNERSHIP_OBJECT_MOCK
121-
}
122-
};
116+
export const LIMITED_PARTNERSHIP_INCORPORATION_OBJECT_MOCK_WITH_SUB: LimitedPartnershipIncorporation =
117+
{
118+
etag: "",
119+
kind: "",
120+
sub_resources: {
121+
general_partners: [],
122+
limited_partners: [],
123+
partnership: LIMITED_PARTNERSHIP_OBJECT_MOCK
124+
}
125+
};
123126

124127
export const TRANSACTION_ID = "12345";
125128
export const SUBMISSION_ID = "09876";
@@ -161,8 +164,11 @@ export const mockGetLimitedPartnershipIncorporationResponse = {
161164
};
162165

163166
export const mockGetLimitedPartnershipIncorporationResponseWithSub = {
164-
200: { status: 200, body: LIMITED_PARTNERSHIP_INCORPORATION_OBJECT_MOCK_WITH_SUB }
165-
}
167+
200: {
168+
status: 200,
169+
body: LIMITED_PARTNERSHIP_INCORPORATION_OBJECT_MOCK_WITH_SUB
170+
}
171+
};
166172

167173
export const mockPostGeneralPartnerResponse = {
168174
201: { status: 201, body: mockLimitedPartnershipCreatedResource },
@@ -176,6 +182,12 @@ export const mockGetGeneralPartnerResponse = {
176182
401: { status: 401, body: { error: UNAUTHORISED } }
177183
};
178184

185+
export const mockGetGeneralPartnersResponse = {
186+
200: { status: 200, body: [GENERAL_PARTNER_OBJECT_MOCK] },
187+
404: { status: 404, body: { error: NOT_FOUND } },
188+
401: { status: 401, body: { error: UNAUTHORISED } }
189+
};
190+
179191
export const mockPatchGeneralPartnerResponse = {
180192
200: { status: 200 },
181193
400: { status: 400, body: { error: BAD_REQUEST } },

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

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -578,6 +578,31 @@ describe("LimitedPartnershipsService", () => {
578578
});
579579
})
580580

581+
describe("getGeneralPartners", () => {
582+
it("should return a status 200 and the generalPartner object", async () => {
583+
const mockRequest = sinon
584+
.stub(mockValues.requestClient, "httpGet")
585+
.resolves(mockValues.mockGetGeneralPartnersResponse[200]);
586+
587+
const service = new LimitedPartnershipsService(
588+
mockValues.requestClient
589+
);
590+
591+
const response = await service.getGeneralPartners(
592+
mockValues.TRANSACTION_ID
593+
) as Resource<GeneralPartner>;
594+
595+
expect(mockRequest).to.have.been.calledOnce;
596+
expect(
597+
mockRequest.calledWith(
598+
"/transactions/12345/limited-partnership/general-partners"
599+
)
600+
).to.be.true;
601+
expect(response.httpStatusCode).to.equal(200);
602+
expect(response?.resource).to.eql([mockValues.GENERAL_PARTNER_OBJECT_MOCK]);
603+
});
604+
})
605+
581606
describe("patchGeneralPartner", () => {
582607
it("should return 200 patchGeneralPartner method", async () => {
583608
const mockRequest = sinon

0 commit comments

Comments
 (0)