Skip to content

Commit

Permalink
test(eslint): enable no-unnecessary-type-assertion (#4842)
Browse files Browse the repository at this point in the history
* test(eslint): enable no-unnecessary-type-assertion

There's a lot of assertions in our code base that were once necessary, but that's no longer the case.

This rule requires typescript, so files that are ignored in typescript also need to be ignored for these rules

* these things are meant to be errors
  • Loading branch information
Haroenv committed Aug 20, 2021
1 parent 2332c21 commit 047acd0
Show file tree
Hide file tree
Showing 44 changed files with 396 additions and 413 deletions.
19 changes: 19 additions & 0 deletions .eslintrc.js
Expand Up @@ -62,6 +62,25 @@ module.exports = {
'@typescript-eslint/no-redeclare': ['error'],
},
},
{
files: ['*.ts', '*.tsx'],
// this is the same files as ignored in tsconfig.json
excludedFiles: [
"examples/**/*",
"es",
// these two files are temporarily excluded because
// they import files from node_modules/search-insights directly
// and it causes the type-checking to fail.
"src/middlewares/__tests__/createInsightsMiddleware.ts",
"test/mock/createInsightsClient.ts"
],
parserOptions: {
project: './tsconfig.json',
},
rules: {
'@typescript-eslint/no-unnecessary-type-assertion': 'error',
},
},
{
files: ['*.js'],
rules: {
Expand Down
7 changes: 4 additions & 3 deletions src/components/Panel/Panel.tsx
Expand Up @@ -40,14 +40,15 @@ function Panel<TWidget extends UnknownWidgetFactory>(
const bodyRef = useRef<HTMLElement | null>(null);

useEffect(() => {
if (!bodyRef.current) {
const node = bodyRef.current;
if (!node) {
return undefined;
}

bodyRef.current.appendChild(props.bodyElement);
node.appendChild(props.bodyElement);

return () => {
bodyRef!.current!.removeChild(props.bodyElement);
node.removeChild(props.bodyElement);
};
}, [bodyRef, props.bodyElement]);

Expand Down
2 changes: 1 addition & 1 deletion src/components/Slider/Rheostat.tsx
Expand Up @@ -303,7 +303,7 @@ class Rheostat extends Component<Props, State> {
if (!this.props.snapPoints!.length) return value;

return this.props.snapPoints!.reduce((snapTo, snap) =>
Math.abs(snapTo! - value) < Math.abs(snap - value) ? snapTo : snap
Math.abs(snapTo - value) < Math.abs(snap - value) ? snapTo : snap
);
}

Expand Down
2 changes: 1 addition & 1 deletion src/connectors/answers/connectAnswers.ts
Expand Up @@ -146,7 +146,7 @@ const connectAnswers: AnswersConnector = function connectAnswers(

init(initOptions) {
const { state, instantSearchInstance } = initOptions;
const answersIndex = instantSearchInstance.client!.initIndex!(
const answersIndex = instantSearchInstance.client.initIndex!(
state.index
);
if (!hasFindAnswersMethod(answersIndex)) {
Expand Down
Expand Up @@ -556,7 +556,7 @@ search.addWidgets([
test('should give back the object unmodified if the default value is selected', () => {
const [widget, helper] = getInitializedWidget();
const uiStateBefore = {};
const uiStateAfter = widget.getWidgetUiState!(uiStateBefore, {
const uiStateAfter = widget.getWidgetUiState(uiStateBefore, {
searchParameters: helper.state,
helper,
});
Expand All @@ -567,7 +567,7 @@ search.addWidgets([
const [widget, helper, refine] = getInitializedWidget();
refine('some query');
const uiStateBefore = {};
const uiStateAfter = widget.getWidgetUiState!(uiStateBefore, {
const uiStateAfter = widget.getWidgetUiState(uiStateBefore, {
searchParameters: helper.state,
helper,
});
Expand All @@ -579,14 +579,14 @@ search.addWidgets([
test('should give back the same instance if the value is already in the uiState', () => {
const [widget, helper, refine] = getInitializedWidget();
refine('query');
const uiStateBefore = widget.getWidgetUiState!(
const uiStateBefore = widget.getWidgetUiState(
{},
{
searchParameters: helper.state,
helper,
}
);
const uiStateAfter = widget.getWidgetUiState!(uiStateBefore, {
const uiStateAfter = widget.getWidgetUiState(uiStateBefore, {
searchParameters: helper.state,
helper,
});
Expand All @@ -604,7 +604,7 @@ search.addWidgets([
})
);

const actual = widget.getWidgetSearchParameters!(helper.state, {
const actual = widget.getWidgetSearchParameters(helper.state, {
uiState: {
query: 'Apple',
},
Expand All @@ -628,7 +628,7 @@ search.addWidgets([
})
);

const actual = widget.getWidgetSearchParameters!(helper.state, {
const actual = widget.getWidgetSearchParameters(helper.state, {
uiState: {},
});

Expand All @@ -652,7 +652,7 @@ search.addWidgets([
})
);

const actual = widget.getWidgetSearchParameters!(helper.state, {
const actual = widget.getWidgetSearchParameters(helper.state, {
uiState: {},
});

Expand All @@ -676,7 +676,7 @@ search.addWidgets([
})
);

const actual = widget.getWidgetSearchParameters!(helper.state, {
const actual = widget.getWidgetSearchParameters(helper.state, {
uiState: {},
});

Expand Down
4 changes: 2 additions & 2 deletions src/connectors/autocomplete/connectAutocomplete.ts
Expand Up @@ -176,7 +176,7 @@ search.addWidgets([
const sendEvent = createSendEventForHits({
instantSearchInstance,
index: scopedResult.results.index,
widgetType: this.$$type!,
widgetType: this.$$type,
});

return {
Expand All @@ -191,7 +191,7 @@ search.addWidgets([
return {
currentRefinement: helper.state.query || '',
indices,
refine: connectorState.refine!,
refine: connectorState.refine,
widgetParams,
};
},
Expand Down
38 changes: 19 additions & 19 deletions src/connectors/configure/__tests__/connectConfigure-test.ts
Expand Up @@ -88,7 +88,7 @@ See documentation: https://www.algolia.com/doc/api-reference/widgets/configure/j
});

expect(
widget.getWidgetSearchParameters!(new SearchParameters({}), {
widget.getWidgetSearchParameters(new SearchParameters({}), {
uiState: {},
})
).toEqual(
Expand All @@ -107,7 +107,7 @@ See documentation: https://www.algolia.com/doc/api-reference/widgets/configure/j
});

expect(
widget.getWidgetSearchParameters!(
widget.getWidgetSearchParameters(
new SearchParameters({
analytics: false,
}),
Expand All @@ -120,7 +120,7 @@ See documentation: https://www.algolia.com/doc/api-reference/widgets/configure/j
);

expect(
widget.getWidgetSearchParameters!(
widget.getWidgetSearchParameters(
new SearchParameters({
analytics: false,
clickAnalytics: true,
Expand All @@ -145,7 +145,7 @@ See documentation: https://www.algolia.com/doc/api-reference/widgets/configure/j
});

helper.setState(
widget.getWidgetSearchParameters!(
widget.getWidgetSearchParameters(
new SearchParameters({
// This facet is added outside of the widget params
// so it shouldn't be overridden when calling `refine`.
Expand All @@ -157,7 +157,7 @@ See documentation: https://www.algolia.com/doc/api-reference/widgets/configure/j
widget.init!(createInitOptions({ helper }));

expect(
widget.getWidgetSearchParameters!(new SearchParameters({}), {
widget.getWidgetSearchParameters(new SearchParameters({}), {
uiState: { configure: { analytics: true } },
})
).toEqual(
Expand All @@ -177,7 +177,7 @@ See documentation: https://www.algolia.com/doc/api-reference/widgets/configure/j
refine({ hitsPerPage: 3, facets: ['rating'] });

expect(
widget.getWidgetSearchParameters!(new SearchParameters({}), {
widget.getWidgetSearchParameters(new SearchParameters({}), {
uiState: { configure: { hitsPerPage: 3, facets: ['rating'] } },
})
).toEqual(
Expand All @@ -203,7 +203,7 @@ See documentation: https://www.algolia.com/doc/api-reference/widgets/configure/j
});

helper.setState(
widget.getWidgetSearchParameters!(
widget.getWidgetSearchParameters(
new SearchParameters({
clickAnalytics: true,
}),
Expand All @@ -213,7 +213,7 @@ See documentation: https://www.algolia.com/doc/api-reference/widgets/configure/j
widget.init!(createInitOptions({ helper }));

expect(
widget.getWidgetSearchParameters!(new SearchParameters({}), {
widget.getWidgetSearchParameters(new SearchParameters({}), {
uiState: { configure: { analytics: true } },
})
).toEqual(
Expand Down Expand Up @@ -374,7 +374,7 @@ See documentation: https://www.algolia.com/doc/api-reference/widgets/configure/j
});

expect(
widget.getWidgetUiState!({}, { helper, searchParameters: helper.state })
widget.getWidgetUiState({}, { helper, searchParameters: helper.state })
).toEqual({
configure: { analytics: true },
});
Expand All @@ -395,7 +395,7 @@ See documentation: https://www.algolia.com/doc/api-reference/widgets/configure/j
refine({ analytics: false });

expect(
widget.getWidgetUiState!({}, { helper, searchParameters: helper.state })
widget.getWidgetUiState({}, { helper, searchParameters: helper.state })
).toEqual({
configure: { analytics: false },
});
Expand All @@ -416,7 +416,7 @@ See documentation: https://www.algolia.com/doc/api-reference/widgets/configure/j
refine({ query: 'unsafe toys' });

expect(
widget.getWidgetUiState!({}, { helper, searchParameters: helper.state })
widget.getWidgetUiState({}, { helper, searchParameters: helper.state })
).toEqual({
configure: { query: 'unsafe toys' },
});
Expand All @@ -431,7 +431,7 @@ See documentation: https://www.algolia.com/doc/api-reference/widgets/configure/j
});

expect(
widget.getWidgetUiState!(
widget.getWidgetUiState(
{ configure: { queryType: 'prefixAll' } },
{ helper, searchParameters: helper.state }
)
Expand All @@ -449,7 +449,7 @@ See documentation: https://www.algolia.com/doc/api-reference/widgets/configure/j
});

expect(
widget.getWidgetUiState!(
widget.getWidgetUiState(
{ configure: { analytics: false } },
{ helper, searchParameters: helper.state }
)
Expand All @@ -468,7 +468,7 @@ See documentation: https://www.algolia.com/doc/api-reference/widgets/configure/j
},
});

const sp = widget.getWidgetSearchParameters!(new SearchParameters(), {
const sp = widget.getWidgetSearchParameters(new SearchParameters(), {
uiState: {},
});

Expand All @@ -479,7 +479,7 @@ See documentation: https://www.algolia.com/doc/api-reference/widgets/configure/j
const makeWidget = connectConfigure(noop);
const widget = makeWidget({ searchParameters: {} });

const sp = widget.getWidgetSearchParameters!(new SearchParameters(), {
const sp = widget.getWidgetSearchParameters(new SearchParameters(), {
uiState: {
configure: {
analytics: false,
Expand All @@ -498,7 +498,7 @@ See documentation: https://www.algolia.com/doc/api-reference/widgets/configure/j
},
});

const sp = widget.getWidgetSearchParameters!(new SearchParameters(), {
const sp = widget.getWidgetSearchParameters(new SearchParameters(), {
uiState: {
configure: {
analytics: false,
Expand All @@ -517,7 +517,7 @@ See documentation: https://www.algolia.com/doc/api-reference/widgets/configure/j
},
});

const sp = widget.getWidgetSearchParameters!(new SearchParameters(), {
const sp = widget.getWidgetSearchParameters(new SearchParameters(), {
uiState: {
configure: {
analytics: false,
Expand All @@ -544,7 +544,7 @@ See documentation: https://www.algolia.com/doc/api-reference/widgets/configure/j
},
});

const sp = widget.getWidgetSearchParameters!(
const sp = widget.getWidgetSearchParameters(
new SearchParameters({
disjunctiveFacets: ['categories'],
disjunctiveFacetsRefinements: {
Expand Down Expand Up @@ -581,7 +581,7 @@ See documentation: https://www.algolia.com/doc/api-reference/widgets/configure/j

refine({ analyticsTags: ['worst-site-now'] });

const sp = widget.getWidgetSearchParameters!(new SearchParameters(), {
const sp = widget.getWidgetSearchParameters(new SearchParameters(), {
uiState: {},
});

Expand Down
2 changes: 1 addition & 1 deletion src/connectors/dynamic-widgets/connectDynamicWidgets.ts
Expand Up @@ -131,7 +131,7 @@ const connectDynamicWidgets: DynamicWidgetsConnector =
toRemove.push(widget);
}
});
parent!.removeWidgets(toRemove);
parent.removeWidgets(toRemove);

unmountFn();
},
Expand Down
Expand Up @@ -74,7 +74,7 @@ describe('connectGeoSearch', () => {
})
);

const results = new SearchResults(helper!.state, [
const results = new SearchResults(helper.state, [
createSingleSearchResponse({
hits,
}),
Expand Down

0 comments on commit 047acd0

Please sign in to comment.