用react-instantsearch-hooks-web测试类型感知



在过去的几个星期里,我成功地在我的nextjs应用程序中实现了typesense。我已经用react测试库/jest写了很多测试。

如果我运行我的测试,我不想调用真正的类型感知后端,我想手动模拟响应,所以我能够改变返回的数据。

我如何模拟/监视typesense来阻止对搜索后端的呼出?(我在另一台服务器上设置了一个docker)我如何定义对象我想回来电话吗?

我的设置:

  • nextjs page 'Home'
  • 内部,我在子组件周围构建了一个包装器,我在其中装入了'InstantSearch'组件和一个TypesenseInstantSearchAdapter

页面:

function Home(props: Props) {
...basic setup;
return (
<InstantSearchWrapper index={SEARCH_INDEX.ITEMS} searchApiKey={user?.searchApiKey}>
... Components I want to mount
</InstantSearchWrapper>
);
}

InstantSearchWrapper:

export function InstantSearchWrapper(props: InstantSearchWrapperProps) {
...setup TypesenseInstantSearchAdapter;
return (
<InstantSearch indexName={index} searchClient={adapter.searchClient}>
<Configure hitsPerPage={hitsPerPage} facetFilters={memoizedFacetFilters()} index={index} />
{props.children}
</InstantSearch>
);
}

由于Typesense -instantsearch-adapter使用的是使用axios的Typesense -js,所以你可以使用axios-mock-adapter来模拟对Typesense的请求。

typesense-js测试套件有一些例子:https://github.com/typesense/typesense-js/blob/master/test/Typesense/Collections.spec.js

最新更新