Skip to content

Commit d8e76b9

Browse files
authored
Fix TS errors in tests directory (#314)
Fix all TS errors in the `tests` folder. J=SLAP-2360 TEST=manual Go through all files in `tests` and see that there are no more errors.
1 parent 776086a commit d8e76b9

35 files changed

+352
-349
lines changed

THIRD-PARTY-NOTICES

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -406,7 +406,7 @@ Apache License
406406

407407
The following NPM package may be included in this product:
408408

409-
- @reduxjs/toolkit@1.8.5
409+
- @reduxjs/toolkit@1.8.6
410410

411411
This package contains the following license and notice below:
412412

package-lock.json

Lines changed: 37 additions & 38 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
"@babel/preset-typescript": "^7.14.5",
5353
"@percy/cli": "^1.8.0",
5454
"@percy/storybook": "^4.3.3",
55+
"@reduxjs/toolkit": "^1.8.6",
5556
"@storybook/addon-a11y": "^6.5.10",
5657
"@storybook/addon-actions": "^6.5.10",
5758
"@storybook/addon-coverage": "^0.0.2",

tests/__fixtures__/core/search-service.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* eslint-disable @typescript-eslint/no-unused-vars */
2-
import { SearchService, UniversalSearchRequest, UniversalSearchResponse, VerticalSearchRequest, VerticalSearchResponse } from '@yext/search-core';
2+
import { SearchService, Source, UniversalSearchRequest, UniversalSearchResponse, VerticalSearchRequest, VerticalSearchResponse } from '@yext/search-core';
33

44
/* A sample Universal Search response. */
55
const mockedUniversalResponse: UniversalSearchResponse = {
@@ -11,7 +11,14 @@ const mockedUniversalResponse: UniversalSearchResponse = {
1111
const mockedVerticalResponse: VerticalSearchResponse = {
1212
uuid: '123',
1313
queryId: 'query-id',
14-
verticalResults: null
14+
verticalResults: {
15+
appliedQueryFilters: [],
16+
queryDurationMillis: 500,
17+
verticalKey: 'vertical',
18+
results: [],
19+
resultsCount: 0,
20+
source: 'KNOWLEDGE_MANAGER' as Source
21+
}
1522
};
1623

1724
/**
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import { FiltersContextType } from '../../../src/components/Filters/FiltersContext';
2+
import { SelectableFieldValueFilter } from '../../../src/models/SelectableFieldValueFilter';
3+
import { FilterGroupContextType } from '../../../src/components/Filters/FilterGroupContext';
4+
import { Matcher } from '@yext/search-headless-react';
5+
6+
const selectableFilter: SelectableFieldValueFilter = {
7+
selected: true,
8+
fieldId: '123',
9+
matcher: Matcher.Equals,
10+
value: 'test'
11+
};
12+
13+
export const filterContextValue: FiltersContextType = {
14+
selectFilter: () => null,
15+
applyFilters: () => null,
16+
filters: []
17+
};
18+
19+
export const filterContextValueDisabled: FiltersContextType = {
20+
selectFilter: () => null,
21+
applyFilters: () => null,
22+
filters: [selectableFilter]
23+
};
24+
25+
export const filterGroupContextValue: FilterGroupContextType = {
26+
searchValue: '',
27+
fieldId: '123',
28+
setSearchValue: () => null,
29+
getCollapseProps: () => ({
30+
id: 'id',
31+
onTransitionEnd: () => null,
32+
style: {},
33+
'aria-hidden': 'false'
34+
}),
35+
getToggleProps: () => ({
36+
disabled: false,
37+
type: 'button',
38+
role: 'role',
39+
id: 'id',
40+
'aria-controls': 'element',
41+
'aria-expanded': 'true',
42+
tabIndex: 0,
43+
onClick: () => null
44+
}),
45+
isExpanded: true,
46+
isOptionsDisabled: false,
47+
setIsOptionsDisabled: () => null
48+
};

tests/__fixtures__/data/filters.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { DisplayableFacet, Matcher, SelectableStaticFilter } from '@yext/search-headless-react';
22
import { RemovableFilter } from '../../../src/components/AppliedFiltersDisplay';
3+
import { StaticFiltersProps } from '../../../src/components/StaticFilters';
34

45
function createRemovableFilter(value: string) {
56
return {
@@ -96,3 +97,25 @@ export const staticFilters: SelectableStaticFilter[] = [
9697
selected: false
9798
}
9899
];
100+
101+
export const staticFiltersProps: StaticFiltersProps = {
102+
fieldId: 'c_puppyPreference',
103+
title: 'Puppy Preference',
104+
filterOptions: [
105+
{
106+
value: 'Marty',
107+
displayName: 'MARTY!'
108+
},
109+
{
110+
value: 'Frodo',
111+
selectedByDefault: true
112+
},
113+
{
114+
value: 'Bleecker'
115+
},
116+
{
117+
value: 'Clifford',
118+
selectedByDefault: false
119+
}
120+
]
121+
};

tests/__fixtures__/state-manager.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export function generateMockedStateManager(state: State): StateManager {
1515
}
1616

1717
dispatchEvent(type: string, payload?: unknown): void {
18-
return null;
18+
return;
1919
}
2020

2121
addListener<T>(listener: StateListener<T>): Unsubscribe {

tests/__utils__/hierarchicalfacets.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export function createHierarchicalFacet(
99
.map(o => ({
1010
value: o.value,
1111
displayName: o.value,
12-
selected: o.selected,
12+
selected: o.selected ?? false,
1313
count: 82,
1414
matcher: Matcher.Equals
1515
}));
@@ -19,4 +19,4 @@ export function createHierarchicalFacet(
1919
displayName: 'Fruits',
2020
options: transformedOptions
2121
};
22-
}
22+
}

tests/__utils__/mocks.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ export function spyOnActions(): jest.Mocked<SearchActions> {
1818

1919
export type RecursivePartial<T> = {
2020
[P in keyof T]?:
21-
T[P] extends (infer U)[] ? RecursivePartial<U>[] :
22-
// eslint-disable-next-line @typescript-eslint/ban-types
23-
T[P] extends object ? RecursivePartial<T[P]> :
24-
T[P];
21+
T[P] extends undefined ? undefined :
22+
T[P] extends ((infer U)[] | undefined) ? RecursivePartial<U>[] :
23+
T[P] extends (object | undefined) ? RecursivePartial<T[P]> :
24+
T[P];
2525
};
2626

2727
export function mockAnswersState(
Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ComponentMeta } from '@storybook/react';
1+
import { ComponentMeta, Story } from '@storybook/react';
22
import { SearchHeadlessContext } from '@yext/search-headless-react';
33

44
import { AlternativeVerticals, AlternativeVerticalsProps } from '../../src/components/AlternativeVerticals';
@@ -24,33 +24,28 @@ const verticalConfigMap = {
2424
locations: { label: 'Locations' }
2525
};
2626

27-
export const Primary = (args: AlternativeVerticalsProps) => {
27+
export const Primary: Story<AlternativeVerticalsProps> = (args) => {
2828
return (
2929
<SearchHeadlessContext.Provider value={generateMockedHeadless(mockedHeadlessState)}>
3030
<AlternativeVerticals
31-
currentVerticalLabel='Jobs'
32-
verticalConfigMap={verticalConfigMap}
33-
displayAllOnNoResults={false}
3431
{...args}
3532
/>
3633
</SearchHeadlessContext.Provider>
3734
);
3835
};
36+
Primary.args = {
37+
currentVerticalLabel: 'Jobs',
38+
verticalConfigMap,
39+
displayAllOnNoResults: false
40+
};
3941

40-
export const DisplayAllOnNoResults = (args: AlternativeVerticalsProps) => {
41-
return (
42-
<SearchHeadlessContext.Provider value={generateMockedHeadless(mockedHeadlessState)}>
43-
<AlternativeVerticals
44-
currentVerticalLabel='Jobs'
45-
verticalConfigMap={verticalConfigMap}
46-
displayAllOnNoResults={true}
47-
{...args}
48-
/>
49-
</SearchHeadlessContext.Provider>
50-
);
42+
export const DisplayAllOnNoResults = Primary.bind({});
43+
DisplayAllOnNoResults.args = {
44+
...Primary.args,
45+
displayAllOnNoResults: true
5146
};
5247

53-
export const Loading = (args: AlternativeVerticalsProps) => {
48+
export const Loading: Story<AlternativeVerticalsProps> = (args) => {
5449
return (
5550
<SearchHeadlessContext.Provider value={generateMockedHeadless({
5651
...mockedHeadlessState,
@@ -59,11 +54,11 @@ export const Loading = (args: AlternativeVerticalsProps) => {
5954
}
6055
})}>
6156
<AlternativeVerticals
62-
currentVerticalLabel='Jobs'
63-
verticalConfigMap={verticalConfigMap}
64-
displayAllOnNoResults={true}
6557
{...args}
6658
/>
6759
</SearchHeadlessContext.Provider>
6860
);
6961
};
62+
Loading.args = {
63+
...DisplayAllOnNoResults.args
64+
};

0 commit comments

Comments
 (0)