Skip to content

Commit e6eeca3

Browse files
committed
refactor: group pr review
1 parent ec502a1 commit e6eeca3

35 files changed

+329
-329
lines changed

packages/snap-client/src/Client/apis/Abstract.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,15 @@ export class API {
3434
return this.configuration.mode;
3535
}
3636

37-
protected async request(context: RequestOpts, cacheKey?: string): Promise<Response> {
37+
protected async request<T>(context: RequestOpts, cacheKey?: string): Promise<T> {
3838
const { url, init } = this.createFetchParams(context);
3939

4040
if (cacheKey) {
4141
const cachedResponse = this.cache.get(`${context.path}/${cacheKey}`) || this.cache.get(`${context.path}/*`);
4242
if (cachedResponse) {
4343
this.retryCount = 0; // reset count and delay incase rate limit occurs again before a page refresh
4444
this.retryDelay = 1000;
45-
return cachedResponse;
45+
return cachedResponse as T;
4646
}
4747
}
4848
let response;

packages/snap-client/src/Client/apis/Legacy.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export class LegacyAPI extends API {
3131

3232
headerParameters['Content-Type'] = 'application/json';
3333

34-
const response = await this.request(
34+
const response = await this.request<MetaResponseModel>(
3535
{
3636
path: '/api/meta/meta.json',
3737
method: 'POST',
@@ -41,13 +41,13 @@ export class LegacyAPI extends API {
4141
JSON.stringify(requestParameters)
4242
);
4343

44-
return response as MetaResponseModel;
44+
return response;
4545
}
4646

4747
async getMeta(queryParameters: MetaRequestModel): Promise<MetaResponseModel> {
4848
const headerParameters: HTTPHeaders = {};
4949

50-
const response = await this.request(
50+
const response = await this.request<MetaResponseModel>(
5151
{
5252
path: '/api/meta/meta.json',
5353
method: 'GET',
@@ -57,7 +57,7 @@ export class LegacyAPI extends API {
5757
JSON.stringify(queryParameters)
5858
);
5959

60-
return response as MetaResponseModel;
60+
return response;
6161
}
6262

6363
async getSearch(queryParameters: any): Promise<any> {

packages/snap-client/src/Client/apis/Recommend.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ export class RecommendAPI extends API {
4040
async getProfile(queryParameters: ProfileRequestModel): Promise<ProfileResponseModel> {
4141
const headerParameters: HTTPHeaders = {};
4242

43-
const response = await this.request(
43+
const response = await this.request<ProfileResponseModel>(
4444
{
4545
path: '/api/personalized-recommendations/profile.json',
4646
method: 'GET',
@@ -50,7 +50,7 @@ export class RecommendAPI extends API {
5050
JSON.stringify(queryParameters)
5151
);
5252

53-
return response as unknown as ProfileResponseModel;
53+
return response;
5454
}
5555

5656
async batchRecommendations(parameters: RecommendRequestModel): Promise<RecommendResponseModel> {
@@ -168,7 +168,7 @@ export class RecommendAPI extends API {
168168
const siteId = requestParameters.siteId;
169169
const path = `/boost/${siteId}/recommend`;
170170

171-
const response = await this.request(
171+
const response = await this.request<RecommendResponseModel[]>(
172172
{
173173
path,
174174
method: 'POST',
@@ -178,7 +178,7 @@ export class RecommendAPI extends API {
178178
JSON.stringify(requestParameters)
179179
);
180180

181-
return response as unknown as RecommendResponseModel[];
181+
return response;
182182
}
183183
}
184184

packages/snap-client/src/Client/apis/Snap.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export class SnapAPI extends API {
1515
const headerParameters: HTTPHeaders = {};
1616
headerParameters['Content-Type'] = 'application/json';
1717

18-
const response = await this.request(
18+
const response = await this.request<MetaResponseModel>(
1919
{
2020
path: '/api/v1/meta',
2121
method: 'POST',
@@ -25,14 +25,14 @@ export class SnapAPI extends API {
2525
JSON.stringify(requestParameters)
2626
);
2727

28-
return response as MetaResponseModel;
28+
return response;
2929
}
3030

3131
async postSearch(requestParameters: SearchRequestModel): Promise<SearchResponseModel> {
3232
const headerParameters: HTTPHeaders = {};
3333
headerParameters['Content-Type'] = 'application/json';
3434

35-
const response = await this.request(
35+
const response = await this.request<SearchResponseModel>(
3636
{
3737
path: '/api/v1/search',
3838
method: 'POST',
@@ -42,14 +42,14 @@ export class SnapAPI extends API {
4242
JSON.stringify(requestParameters)
4343
);
4444

45-
return response as SearchResponseModel;
45+
return response;
4646
}
4747

4848
async postAutocomplete(requestParameters: AutocompleteRequestModel): Promise<AutocompleteResponseModel> {
4949
const headerParameters: HTTPHeaders = {};
5050
headerParameters['Content-Type'] = 'application/json';
5151

52-
const response = await this.request(
52+
const response = await this.request<AutocompleteResponseModel>(
5353
{
5454
path: '/api/v1/autocomplete',
5555
method: 'POST',
@@ -59,6 +59,6 @@ export class SnapAPI extends API {
5959
JSON.stringify(requestParameters)
6060
);
6161

62-
return response as AutocompleteResponseModel;
62+
return response;
6363
}
6464
}

packages/snap-client/src/Client/apis/Suggest.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ export class SuggestAPI extends API {
55
async getSuggest(queryParameters: SuggestRequestModel): Promise<SuggestResponseModel> {
66
const headerParameters: HTTPHeaders = {};
77

8-
const response = await this.request(
8+
const response = await this.request<SuggestResponseModel>(
99
{
1010
path: '/api/suggest/query',
1111
method: 'GET',
@@ -15,14 +15,14 @@ export class SuggestAPI extends API {
1515
JSON.stringify(queryParameters)
1616
);
1717

18-
return response as unknown as SuggestResponseModel;
18+
return response;
1919
}
2020

2121
async postSuggest(requestParameters: SuggestRequestModel): Promise<SuggestResponseModel> {
2222
const headerParameters: HTTPHeaders = {};
2323
headerParameters['Content-Type'] = 'application/json';
2424

25-
const response = await this.request(
25+
const response = await this.request<SuggestResponseModel>(
2626
{
2727
path: '/api/suggest/query',
2828
method: 'POST',
@@ -32,13 +32,13 @@ export class SuggestAPI extends API {
3232
JSON.stringify(requestParameters)
3333
);
3434

35-
return response as unknown as SuggestResponseModel;
35+
return response;
3636
}
3737

3838
async getTrending(queryParameters: TrendingRequestModel): Promise<TrendingResponseModel> {
3939
const headerParameters: HTTPHeaders = {};
4040

41-
const response = await this.request(
41+
const response = await this.request<TrendingResponseModel>(
4242
{
4343
path: '/api/suggest/trending',
4444
method: 'GET',
@@ -48,14 +48,14 @@ export class SuggestAPI extends API {
4848
JSON.stringify(queryParameters)
4949
);
5050

51-
return response as unknown as TrendingResponseModel;
51+
return response;
5252
}
5353

5454
async postTrending(requestParameters: TrendingRequestModel): Promise<TrendingResponseModel> {
5555
const headerParameters: HTTPHeaders = {};
5656
headerParameters['Content-Type'] = 'application/json';
5757

58-
const response = await this.request(
58+
const response = await this.request<TrendingResponseModel>(
5959
{
6060
path: '/api/suggest/trending',
6161
method: 'POST',
@@ -65,6 +65,6 @@ export class SuggestAPI extends API {
6565
JSON.stringify(requestParameters)
6666
);
6767

68-
return response as unknown as TrendingResponseModel;
68+
return response;
6969
}
7070
}

packages/snap-preact/components/src/components/Atoms/SearchHeader/SearchHeader.test.tsx

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import { h } from 'preact';
2-
import { render, waitFor } from '@testing-library/preact';
2+
import { render } from '@testing-library/preact';
33
import { SearchHeader } from './SearchHeader';
4-
import { Theme, ThemeProvider } from '../../../providers';
5-
import type { SearchResultStore } from '@searchspring/snap-store-mobx';
4+
import { ThemeProvider } from '../../../providers';
65
import { MockData } from '@searchspring/snap-shared';
76
import { SearchMerchandisingStore, SearchPaginationStore, SearchQueryStore } from '@searchspring/snap-store-mobx';
87
import { UrlManager, UrlTranslator } from '@searchspring/snap-url-manager';
@@ -22,14 +21,14 @@ describe('Search Header Component', () => {
2221
config: searchConfig,
2322
services,
2423
data: {
25-
search: data,
24+
search: data.search,
2625
meta: data.meta,
2726
},
2827
});
2928
const queryStore = new SearchQueryStore({
3029
services,
3130
data: {
32-
search: data,
31+
search: data.search,
3332
},
3433
});
3534

@@ -270,8 +269,8 @@ describe('Search Header Component', () => {
270269
it('custom lang options', async () => {
271270
//oq
272271
const oqData = new MockData().searchMeta('oq');
273-
const oqPaginationStore = new SearchPaginationStore({ config: searchConfig, services, data: { search: oqData, meta: oqData.meta } });
274-
const oqQueryStore = new SearchQueryStore({ services, data: { search: oqData } });
272+
const oqPaginationStore = new SearchPaginationStore({ config: searchConfig, services, data: { search: oqData.search, meta: oqData.meta } });
273+
const oqQueryStore = new SearchQueryStore({ services, data: { search: oqData.search } });
275274

276275
const oqValue = 'oq value';
277276
const oqAltText = 'oq alt';
@@ -310,9 +309,9 @@ describe('Search Header Component', () => {
310309
const emptyPaginationStore = new SearchPaginationStore({
311310
config: searchConfig,
312311
services,
313-
data: { search: noResultsdata, meta: noResultsdata.meta },
312+
data: { search: noResultsdata.search, meta: noResultsdata.meta },
314313
});
315-
const emptyQueryStore = new SearchQueryStore({ services, data: { search: noResultsdata } });
314+
const emptyQueryStore = new SearchQueryStore({ services, data: { search: noResultsdata.search } });
316315

317316
const emptyValue = 'empty value';
318317
const emptyAltText = 'empty alt';
@@ -348,8 +347,8 @@ describe('Search Header Component', () => {
348347

349348
//did you mean
350349
const dymData = new MockData().searchMeta('dym');
351-
const dymPaginationStore = new SearchPaginationStore({ config: searchConfig, services, data: { search: dymData, meta: dymData.meta } });
352-
const dymQueryStore = new SearchQueryStore({ services, data: { search: dymData } });
350+
const dymPaginationStore = new SearchPaginationStore({ config: searchConfig, services, data: { search: dymData.search, meta: dymData.meta } });
351+
const dymQueryStore = new SearchQueryStore({ services, data: { search: dymData.search } });
353352

354353
const dymValue = 'dym value';
355354
const dymAltText = 'dym alt';
@@ -391,14 +390,14 @@ describe('Search Header Component', () => {
391390
config: searchConfig,
392391
services,
393392
data: {
394-
search: noResultsdata,
393+
search: noResultsdata.search,
395394
meta: noResultsdata.meta,
396395
},
397396
});
398397
const emptyQueryStore = new SearchQueryStore({
399398
services,
400399
data: {
401-
search: noResultsdata,
400+
search: noResultsdata.search,
402401
},
403402
});
404403

@@ -450,14 +449,14 @@ describe('Search Header Component', () => {
450449
config: searchConfig,
451450
services,
452451
data: {
453-
search: oqData,
452+
search: oqData.search,
454453
meta: oqData.meta,
455454
},
456455
});
457456
const oqQueryStore = new SearchQueryStore({
458457
services,
459458
data: {
460-
search: oqData,
459+
search: oqData.search,
461460
},
462461
});
463462

@@ -509,14 +508,14 @@ describe('Search Header Component', () => {
509508
config: searchConfig,
510509
services,
511510
data: {
512-
search: dymData,
511+
search: dymData.search,
513512
meta: dymData.meta,
514513
},
515514
});
516515
const dymQueryStore = new SearchQueryStore({
517516
services,
518517
data: {
519-
search: dymData,
518+
search: dymData.search,
520519
},
521520
});
522521

@@ -570,19 +569,19 @@ describe('Search Header Component', () => {
570569
config: searchConfig,
571570
services,
572571
data: {
573-
search: landingData,
572+
search: landingData.search,
574573
meta: landingData.meta,
575574
},
576575
});
577576
const landingQueryStore = new SearchQueryStore({
578577
services,
579578
data: {
580-
search: landingData,
579+
search: landingData.search,
581580
},
582581
});
583582
const merchandisingStore = new SearchMerchandisingStore({
584583
data: {
585-
search: landingData,
584+
search: landingData.search,
586585
},
587586
});
588587

packages/snap-preact/components/src/components/Molecules/Filter/Filter.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ describe('Filter Component', () => {
4747
const filters = new SearchFilterStore({
4848
services,
4949
data: {
50-
search: mockData,
50+
search: mockData.search,
5151
meta: mockData.meta,
5252
},
5353
});

packages/snap-preact/components/src/components/Molecules/LoadMore/LoadMore.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ describe('LoadMore Component', () => {
2525
config: searchConfig,
2626
services,
2727
data: {
28-
search: data,
28+
search: data.search,
2929
meta: data.meta,
3030
},
3131
});

packages/snap-preact/components/src/components/Molecules/OverlayBadge/OverlayBadge.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,10 @@ export const OverlayBadge = observer((properties: OverlayBadgeProps): JSX.Elemen
7979
}
8080

8181
const meta = controller?.store?.meta;
82+
if (!meta) {
83+
controller?.log?.warn('Controller must have a meta store');
84+
return <Fragment>{children}</Fragment>;
85+
}
8286
const group = 'overlay';
8387
const grid = meta?.badges?.groups?.[group]?.grid;
8488
const badgeComponentMap = {

packages/snap-preact/components/src/components/Molecules/Pagination/Pagination.test.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ describe('Pagination Component', () => {
2525
config: searchConfig,
2626
services,
2727
data: {
28-
search: data,
28+
search: data.search,
2929
meta: data.meta,
3030
},
3131
});
@@ -87,7 +87,7 @@ describe('Lets test the Pagination Component optional props', () => {
8787
config: searchConfig,
8888
services,
8989
data: {
90-
search: data,
90+
search: data.search,
9191
meta: data.meta,
9292
},
9393
});
@@ -294,7 +294,7 @@ describe('Pagination theming works', () => {
294294
config: searchConfig,
295295
services,
296296
data: {
297-
search: data,
297+
search: data.search,
298298
meta: data.meta,
299299
},
300300
});

0 commit comments

Comments
 (0)