@truedat/core 8.11.1 → 8.11.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@truedat/core",
3
- "version": "8.11.1",
3
+ "version": "8.11.2",
4
4
  "description": "Truedat Web Core",
5
5
  "sideEffects": [
6
6
  "**/*.css",
@@ -57,7 +57,7 @@
57
57
  "@testing-library/jest-dom": "^6.6.3",
58
58
  "@testing-library/react": "^16.3.0",
59
59
  "@testing-library/user-event": "^14.6.1",
60
- "@truedat/test": "8.11.0",
60
+ "@truedat/test": "8.11.2",
61
61
  "identity-obj-proxy": "^3.0.0",
62
62
  "jest": "^29.7.0",
63
63
  "redux-saga-test-plan": "^4.0.6"
@@ -98,5 +98,5 @@
98
98
  "swr": "^2.3.3",
99
99
  "turndown": "^7.2.2"
100
100
  },
101
- "gitHead": "c8c61ac1ab65f2fcda5412fe37591f784a71a5c1"
101
+ "gitHead": "5c0ce3c555de4c9e89021b4d0ab785ed27a87305"
102
102
  }
@@ -1,6 +1,6 @@
1
1
  import { render } from "@truedat/test/render";
2
- import GlossaryMenu from "../GlossaryMenu";
3
2
  import { fetchTemplates } from "@truedat/core/routines";
3
+ import GlossaryMenu from "../GlossaryMenu";
4
4
 
5
5
  jest.mock("../../hooks", () => ({
6
6
  useActiveRoutes: jest.fn(() => true),
@@ -1,7 +1,7 @@
1
1
  import { render, waitForLoad } from "@truedat/test/render";
2
2
  import { CATALOG_VIEW_CONFIGS_QUERY } from "@truedat/core/api/queries";
3
- import SideMenu from "../SideMenu";
4
3
  import { fetchTemplates } from "@truedat/core/routines";
4
+ import SideMenu from "../SideMenu";
5
5
 
6
6
  jest.mock("@truedat/core/hooks", () => ({
7
7
  useActiveRoutes: jest.fn(() => true),
@@ -64,6 +64,9 @@ export const SearchContextProvider = (props) => {
64
64
  const [count, setCount] = useState(0);
65
65
 
66
66
  const [onSearchChange, setOnSearchChange] = useState();
67
+ const [refreshCounter, refreshToken] = useState(0);
68
+
69
+ const refreshSearch = useCallback(() => refreshToken((c) => c + 1), []);
67
70
 
68
71
  const debouncedTriggerSearch = useCallback(
69
72
  _.debounce(debounceQueryTime)((filterParam) => {
@@ -270,6 +273,7 @@ export const SearchContextProvider = (props) => {
270
273
  page,
271
274
  size,
272
275
  enrichSearchPayload,
276
+ refreshCounter,
273
277
  ]);
274
278
 
275
279
  const mapDomainFilterKey = (key) => {
@@ -410,6 +414,7 @@ export const SearchContextProvider = (props) => {
410
414
  searchFiltersPropsMapping,
411
415
 
412
416
  setOnSearchChange,
417
+ refreshSearch,
413
418
  };
414
419
 
415
420
  return <SearchContext value={context}>{children}</SearchContext>;
@@ -508,4 +508,52 @@ describe("<SearchContextProvider />", () => {
508
508
 
509
509
  jest.useRealTimers();
510
510
  });
511
+
512
+ it("re-executes the search when refreshSearch is called", async () => {
513
+ jest.useFakeTimers();
514
+ const user = userEvent.setup({
515
+ delay: null,
516
+ advanceTimers: jest.advanceTimersByTime,
517
+ });
518
+ const triggerSearchSpy = jest.fn().mockReturnValue({
519
+ then: (callback) =>
520
+ callback({
521
+ data,
522
+ headers: {},
523
+ }),
524
+ });
525
+ const useSearchLocal = () => ({ trigger: triggerSearchSpy });
526
+
527
+ const RefreshConsumer = () => {
528
+ const { refreshSearch } = useSearchContext();
529
+ return <button onClick={() => refreshSearch()}>refresh</button>;
530
+ };
531
+
532
+ const rendered = render(
533
+ <SearchContextProvider {...searchProps} useSearch={useSearchLocal}>
534
+ <RefreshConsumer />
535
+ </SearchContextProvider>,
536
+ renderOpts,
537
+ );
538
+
539
+ jest.runAllTimers();
540
+
541
+ expect(triggerSearchSpy).toHaveBeenCalledTimes(1);
542
+ const firstCallArgs = triggerSearchSpy.mock.calls[0][0];
543
+
544
+ await user.click(rendered.getByText(/refresh/i));
545
+
546
+ jest.runAllTimers();
547
+
548
+ expect(triggerSearchSpy).toHaveBeenCalledTimes(2);
549
+ expect(triggerSearchSpy).toHaveBeenLastCalledWith(
550
+ expect.objectContaining({
551
+ must: firstCallArgs.must,
552
+ page: firstCallArgs.page,
553
+ size: firstCallArgs.size,
554
+ }),
555
+ );
556
+
557
+ jest.useRealTimers();
558
+ });
511
559
  });