Skip to content

Commit 2437577

Browse files
authored
Merge pull request #166 from companieshouse/feature/match-alpha-search-model-to-api
Refactor to match search model specs
2 parents df56375 + fb5f085 commit 2437577

File tree

3 files changed

+60
-56
lines changed

3 files changed

+60
-56
lines changed
Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,28 @@
11
export interface CompaniesResource {
2-
searchType: string;
3-
topHit: string;
4-
results: Result[];
2+
etag: string;
3+
top_hit: TopHit;
4+
items: Items[];
5+
kind: string;
56
}
6-
7-
export interface Result {
8-
ID: string;
9-
company_type: string;
10-
items: Items;
11-
links: Links;
12-
}
13-
147
export interface Items {
8+
company_type: string;
159
company_number: string;
1610
company_status: string;
17-
corporate_name: string;
18-
record_type: string;
11+
company_name: string;
1912
ordered_alpha_key: string;
2013
ordered_alpha_key_with_id: string;
14+
kind: string;
15+
links: Links;
2116
}
2217

2318
export interface Links {
2419
self: string;
2520
}
21+
22+
export interface TopHit {
23+
company_number: string;
24+
company_status: string;
25+
company_name: string;
26+
ordered_alpha_key_with_id: string;
27+
kind: string;
28+
}

src/services/search/dissolved-search/service.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,15 @@ export default class DissolvedSearchService {
3636
}
3737

3838
if (startIndex && searchType === "previousNameDissolved") {
39-
dissolvedSearchURL += PREVIOUS_NAME_QUERY + START_INDEX_QUERY;
39+
dissolvedSearchURL += PREVIOUS_NAME_QUERY + START_INDEX_QUERY + startIndex;
4040
}
4141

4242
if (!startIndex && searchType === "bestMatch") {
4343
dissolvedSearchURL += BEST_MATCH_QUERY;
4444
}
4545

4646
if (startIndex && searchType === "bestMatch") {
47-
dissolvedSearchURL += BEST_MATCH_QUERY + START_INDEX_QUERY;
47+
dissolvedSearchURL += BEST_MATCH_QUERY + START_INDEX_QUERY + startIndex;
4848
}
4949

5050
const resp = await this.client.httpGet(dissolvedSearchURL, additionalHeaders);

test/services/search/alphabetical-search/service.spec.ts

Lines changed: 42 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,29 @@ const expect = chai.expect;
1010
const requestClient = new RequestClient({ baseUrl: "URL-NOT-USED", oauthToken: "TOKEN-NOT-USED" });
1111

1212
const mockResponseBody : CompaniesResource = ({
13-
searchType: "",
14-
topHit: "TEST COMPANY",
15-
results: [
13+
etag: "etag",
14+
top_hit: {
15+
company_name: "test company",
16+
company_number: "0000789",
17+
company_status: "active",
18+
kind: "kind",
19+
ordered_alpha_key_with_id: "testcompany:0000789"
20+
},
21+
items: [
1622
{
17-
ID: "FC022000",
1823
company_type: "oversea-company",
19-
items: {
20-
company_number: "FC022000",
21-
company_status: "active",
22-
corporate_name: "corporate name",
23-
record_type: "record type",
24-
ordered_alpha_key: "ordered alpha key",
25-
ordered_alpha_key_with_id: "COMPANY:00000000"
26-
},
24+
company_number: "FC022000",
25+
company_status: "active",
26+
company_name: "corporate name",
27+
ordered_alpha_key: "ordered alpha key",
28+
ordered_alpha_key_with_id: "COMPANY:00000000",
2729
links: {
2830
self: "/company/FC022000"
29-
}
31+
},
32+
kind: "kind"
3033
}
31-
]
34+
],
35+
kind: "kind"
3236
});
3337

3438
const mockRequestId = "fdskfhsdoifhsffsif";
@@ -74,15 +78,14 @@ describe("create a alphabetical search GET", () => {
7478
const data: Resource<CompaniesResource> = await search.getCompanies(testCompanyName, mockRequestId, null, null, null);
7579

7680
expect(data.httpStatusCode).to.equal(200);
77-
expect(data.resource.topHit).to.equal(mockResponseBody.topHit);
78-
expect(data.resource.results[0].ID).to.equal(mockResponseBody.results[0].ID);
79-
expect(data.resource.results[0].company_type).to.equal(mockResponseBody.results[0].company_type)
80-
expect(data.resource.results[0].items.company_number).to.equal(mockResponseBody.results[0].items.company_number);
81-
expect(data.resource.results[0].items.company_status).to.equal(mockResponseBody.results[0].items.company_status);
82-
expect(data.resource.results[0].items.corporate_name).to.equal(mockResponseBody.results[0].items.corporate_name);
83-
expect(data.resource.results[0].items.record_type).to.equal(mockResponseBody.results[0].items.record_type);
84-
expect(data.resource.results[0].items.ordered_alpha_key).to.equal(mockResponseBody.results[0].items.ordered_alpha_key);
85-
expect(data.resource.results[0].links).to.equal(mockResponseBody.results[0].links);
81+
expect(data.resource.top_hit).to.equal(mockResponseBody.top_hit);
82+
expect(data.resource.items[0].company_type).to.equal(mockResponseBody.items[0].company_type)
83+
expect(data.resource.items[0].company_number).to.equal(mockResponseBody.items[0].company_number);
84+
expect(data.resource.items[0].company_status).to.equal(mockResponseBody.items[0].company_status);
85+
expect(data.resource.items[0].company_name).to.equal(mockResponseBody.items[0].company_name);
86+
expect(data.resource.items[0].kind).to.equal(mockResponseBody.items[0].kind);
87+
expect(data.resource.items[0].ordered_alpha_key).to.equal(mockResponseBody.items[0].ordered_alpha_key);
88+
expect(data.resource.items[0].links).to.equal(mockResponseBody.items[0].links);
8689
});
8790

8891
it("returns alphabetical search results correctly when searching previous results", async () => {
@@ -96,15 +99,14 @@ describe("create a alphabetical search GET", () => {
9699
const data: Resource<CompaniesResource> = await search.getCompanies(testCompanyName, mockRequestId, searchBefore, null, size);
97100

98101
expect(data.httpStatusCode).to.equal(200);
99-
expect(data.resource.topHit).to.equal(mockResponseBody.topHit);
100-
expect(data.resource.results[0].ID).to.equal(mockResponseBody.results[0].ID);
101-
expect(data.resource.results[0].company_type).to.equal(mockResponseBody.results[0].company_type)
102-
expect(data.resource.results[0].items.company_number).to.equal(mockResponseBody.results[0].items.company_number);
103-
expect(data.resource.results[0].items.company_status).to.equal(mockResponseBody.results[0].items.company_status);
104-
expect(data.resource.results[0].items.corporate_name).to.equal(mockResponseBody.results[0].items.corporate_name);
105-
expect(data.resource.results[0].items.record_type).to.equal(mockResponseBody.results[0].items.record_type);
106-
expect(data.resource.results[0].items.ordered_alpha_key).to.equal(mockResponseBody.results[0].items.ordered_alpha_key);
107-
expect(data.resource.results[0].links).to.equal(mockResponseBody.results[0].links);
102+
expect(data.resource.top_hit).to.equal(mockResponseBody.top_hit);
103+
expect(data.resource.items[0].company_type).to.equal(mockResponseBody.items[0].company_type)
104+
expect(data.resource.items[0].company_number).to.equal(mockResponseBody.items[0].company_number);
105+
expect(data.resource.items[0].company_status).to.equal(mockResponseBody.items[0].company_status);
106+
expect(data.resource.items[0].company_name).to.equal(mockResponseBody.items[0].company_name);
107+
expect(data.resource.items[0].kind).to.equal(mockResponseBody.items[0].kind);
108+
expect(data.resource.items[0].ordered_alpha_key).to.equal(mockResponseBody.items[0].ordered_alpha_key);
109+
expect(data.resource.items[0].links).to.equal(mockResponseBody.items[0].links);
108110
});
109111

110112
it("returns alphabetical search results correctly when searching next results", async () => {
@@ -118,14 +120,13 @@ describe("create a alphabetical search GET", () => {
118120
const data: Resource<CompaniesResource> = await search.getCompanies(testCompanyName, mockRequestId, null, searchAfter, size);
119121

120122
expect(data.httpStatusCode).to.equal(200);
121-
expect(data.resource.topHit).to.equal(mockResponseBody.topHit);
122-
expect(data.resource.results[0].ID).to.equal(mockResponseBody.results[0].ID);
123-
expect(data.resource.results[0].company_type).to.equal(mockResponseBody.results[0].company_type)
124-
expect(data.resource.results[0].items.company_number).to.equal(mockResponseBody.results[0].items.company_number);
125-
expect(data.resource.results[0].items.company_status).to.equal(mockResponseBody.results[0].items.company_status);
126-
expect(data.resource.results[0].items.corporate_name).to.equal(mockResponseBody.results[0].items.corporate_name);
127-
expect(data.resource.results[0].items.record_type).to.equal(mockResponseBody.results[0].items.record_type);
128-
expect(data.resource.results[0].items.ordered_alpha_key).to.equal(mockResponseBody.results[0].items.ordered_alpha_key);
129-
expect(data.resource.results[0].links).to.equal(mockResponseBody.results[0].links);
123+
expect(data.resource.top_hit).to.equal(mockResponseBody.top_hit);
124+
expect(data.resource.items[0].company_type).to.equal(mockResponseBody.items[0].company_type)
125+
expect(data.resource.items[0].company_number).to.equal(mockResponseBody.items[0].company_number);
126+
expect(data.resource.items[0].company_status).to.equal(mockResponseBody.items[0].company_status);
127+
expect(data.resource.items[0].company_name).to.equal(mockResponseBody.items[0].company_name);
128+
expect(data.resource.items[0].kind).to.equal(mockResponseBody.items[0].kind);
129+
expect(data.resource.items[0].ordered_alpha_key).to.equal(mockResponseBody.items[0].ordered_alpha_key);
130+
expect(data.resource.items[0].links).to.equal(mockResponseBody.items[0].links);
130131
});
131132
});

0 commit comments

Comments
 (0)