@truedat/core 8.10.6 → 8.10.8

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.10.6",
3
+ "version": "8.10.8",
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.10.6",
60
+ "@truedat/test": "8.10.8",
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": "62c2090512da9f1456724c7263c446c4a4115a7f"
101
+ "gitHead": "9b804ee6faf939b955894cba0ed43495781152c8"
102
102
  }
@@ -61,7 +61,7 @@ export const ModalSaveFilter = () => {
61
61
  },
62
62
  };
63
63
  saveFilters(requestData).then(() => {
64
- mutateUserFilters(userFiltersType);
64
+ mutateUserFilters(userFiltersType, userFilterScope);
65
65
  });
66
66
  };
67
67
 
@@ -326,6 +326,8 @@ export const SearchContextProvider = (props) => {
326
326
  const handleSortSelection = (columnName) => {
327
327
  if (!columnName) return;
328
328
 
329
+ setPage(1);
330
+
329
331
  if (sortColumn !== columnName) {
330
332
  setSortColumn(columnName);
331
333
  setSortDirection("ascending");
@@ -339,6 +341,7 @@ export const SearchContextProvider = (props) => {
339
341
  };
340
342
 
341
343
  const setQueryAndScoreSort = (query) => {
344
+ setPage(1);
342
345
  setSortColumn(query == "" ? initialSortColumn : "_score");
343
346
  setSortDirection(query == "" ? initialSortDirection : "descending");
344
347
  setQuery(query);
@@ -1,9 +1,19 @@
1
1
  import userEvent from "@testing-library/user-event";
2
- import { render } from "@truedat/test/render";
2
+ import { render, waitForLoad } from "@truedat/test/render";
3
3
  import messages from "@truedat/core/messages";
4
4
  import SearchContext from "@truedat/core/search/SearchContext";
5
5
  import ModalSaveFilter from "../ModalSaveFilter";
6
6
 
7
+ const mockMutateUserFilters = jest.fn();
8
+ const mockTrigger = jest.fn();
9
+
10
+ jest.mock("../../hooks/useUserFilters", () => ({
11
+ mutateUserFilters: mockMutateUserFilters,
12
+ useUserFilters: jest.fn(),
13
+ useUserFiltersCreate: () => ({ trigger: mockTrigger }),
14
+ useUserFiltersDelete: jest.fn(),
15
+ }));
16
+
7
17
  const renderOpts = {
8
18
  messages: {
9
19
  en: {
@@ -24,6 +34,11 @@ describe("<ModalSaveFilter /> admin", () => {
24
34
  userFilterScope: "filters_scope",
25
35
  };
26
36
 
37
+ beforeEach(() => {
38
+ mockMutateUserFilters.mockClear();
39
+ mockTrigger.mockReset();
40
+ });
41
+
27
42
  it("matches the latest snapshot", () => {
28
43
  const { container } = render(
29
44
  <SearchContext value={searchProps}>
@@ -44,4 +59,17 @@ describe("<ModalSaveFilter /> admin", () => {
44
59
  userEvent.click(await findByText(/save/i));
45
60
  expect(container).toMatchSnapshot();
46
61
  });
62
+
63
+ it("passes userFilterScope to mutateUserFilters so the GET cache is invalidated", () => {
64
+ const fs = require("fs");
65
+ const path = require("path");
66
+ const source = fs.readFileSync(
67
+ path.join(__dirname, "..", "ModalSaveFilter.js"),
68
+ "utf8",
69
+ );
70
+
71
+ expect(source).toMatch(
72
+ /mutateUserFilters\(\s*userFiltersType\s*,\s*userFilterScope\s*\)/,
73
+ );
74
+ });
47
75
  });
@@ -71,12 +71,14 @@ describe("<SearchContextProvider />", () => {
71
71
  handleSortSelection,
72
72
  removeFilter,
73
73
  removeHiddenFilter,
74
+ selectPage,
74
75
  sortColumn,
75
76
  sortDirection,
76
77
  toggleFilterValue,
77
78
  toggleHiddenFilterValue,
78
79
  setQuery,
79
80
  query,
81
+ page,
80
82
  setOnSearchChange,
81
83
  } = useSearchContext();
82
84
 
@@ -128,9 +130,13 @@ describe("<SearchContextProvider />", () => {
128
130
  </button>
129
131
  <button onClick={() => setQuery("abc")}>set-query</button>
130
132
  <button onClick={() => setQuery("")}>clean-query</button>
133
+ <button onClick={() => selectPage({ activePage: 3 })}>
134
+ go-to-page-3
135
+ </button>
131
136
  <div>{`sort-column:${sortColumn}`}</div>
132
137
  <div>{`sort-direction:${sortDirection}`}</div>
133
138
  <div>{`query:${query}`}</div>
139
+ <div>{`page:${page}`}</div>
134
140
  <div>{`available:${JSON.stringify(availableFilters)}`}</div>
135
141
  <div>{`active:${JSON.stringify(allActiveFilters)}`}</div>
136
142
  <div>{`hidden:${JSON.stringify(hiddenFilters)}`}</div>
@@ -481,6 +487,25 @@ describe("<SearchContextProvider />", () => {
481
487
  expect(rendered.getByText(/^query:$/i)).toBeInTheDocument(),
482
488
  );
483
489
  await waitFor(() => expect(onSearchChangeSpy).toHaveBeenCalled());
490
+
491
+ await user.click(rendered.getByText(/go-to-page-3/i));
492
+ await waitFor(() =>
493
+ expect(rendered.getByText(/page:3/i)).toBeInTheDocument(),
494
+ );
495
+ await user.click(rendered.getByText(/set-query/i));
496
+ await waitFor(() =>
497
+ expect(rendered.getByText(/page:1/i)).toBeInTheDocument(),
498
+ );
499
+
500
+ await user.click(rendered.getByText(/go-to-page-3/i));
501
+ await waitFor(() =>
502
+ expect(rendered.getByText(/page:3/i)).toBeInTheDocument(),
503
+ );
504
+ await user.click(rendered.getByText(/sort-status/i));
505
+ await waitFor(() =>
506
+ expect(rendered.getByText(/page:1/i)).toBeInTheDocument(),
507
+ );
508
+
484
509
  jest.useRealTimers();
485
510
  });
486
511
  });