@truedat/qx 8.10.2 → 8.10.4

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.
Files changed (61) hide show
  1. package/package.json +3 -3
  2. package/src/components/QxRoutes.js +8 -7
  3. package/src/components/__tests__/QxRoutes.spec.js +2 -1
  4. package/src/components/__tests__/__fixtures__/helper.js +13 -0
  5. package/src/components/__tests__/__snapshots__/QxRoutes.spec.js.snap +1 -1
  6. package/src/components/common/ClauseViewer.js +52 -8
  7. package/src/components/common/DescriptionInput.js +9 -34
  8. package/src/components/common/TypeSelector.js +20 -10
  9. package/src/components/common/__tests__/ClauseViewer.spec.js +150 -0
  10. package/src/components/common/__tests__/DescriptionInput.spec.js +2 -5
  11. package/src/components/common/__tests__/__snapshots__/DescriptionInput.spec.js.snap +7 -10
  12. package/src/components/common/expressions/Clauses.js +22 -17
  13. package/src/components/common/expressions/Condition.js +201 -102
  14. package/src/components/common/expressions/Expression.js +17 -23
  15. package/src/components/common/expressions/FunctionSelector.js +3 -3
  16. package/src/components/common/expressions/ShapeSelector.js +1 -1
  17. package/src/components/common/expressions/__tests__/Clauses.spec.js +1 -1
  18. package/src/components/common/expressions/__tests__/Condition.spec.js +83 -26
  19. package/src/components/common/expressions/__tests__/ParamSelector.spec.js +1 -1
  20. package/src/components/common/expressions/__tests__/__snapshots__/Clauses.spec.js.snap +18 -22
  21. package/src/components/common/expressions/__tests__/__snapshots__/Condition.spec.js.snap +215 -216
  22. package/src/components/common/expressions/__tests__/__snapshots__/ConstantSelector.spec.js.snap +6 -10
  23. package/src/components/common/expressions/__tests__/__snapshots__/Expression.spec.js.snap +630 -654
  24. package/src/components/common/expressions/__tests__/__snapshots__/FunctionArgs.spec.js.snap +193 -201
  25. package/src/components/common/expressions/__tests__/__snapshots__/FunctionSelector.spec.js.snap +450 -466
  26. package/src/components/common/expressions/__tests__/__snapshots__/ShapeSelector.spec.js.snap +34 -34
  27. package/src/components/common/expressions/constantInputs/AnySelector.js +1 -0
  28. package/src/components/common/expressions/constantInputs/__tests__/__snapshots__/AnySelector.spec.js.snap +15 -15
  29. package/src/components/dataViews/__tests__/__snapshots__/AdvancedDataViewEditor.spec.js.snap +378 -406
  30. package/src/components/dataViews/__tests__/__snapshots__/DataViewSummary.spec.js.snap +6 -6
  31. package/src/components/dataViews/__tests__/__snapshots__/Queryable.spec.js.snap +489 -577
  32. package/src/components/dataViews/__tests__/__snapshots__/Queryables.spec.js.snap +400 -476
  33. package/src/components/dataViews/advancedForm/Queryable.js +56 -64
  34. package/src/components/dataViews/advancedForm/Queryables.js +11 -2
  35. package/src/components/dataViews/queryableProperties/Join.js +16 -6
  36. package/src/components/dataViews/queryableProperties/__tests__/__snapshots__/Join.spec.js.snap +0 -28
  37. package/src/components/dataViews/queryableProperties/__tests__/__snapshots__/Select.spec.js.snap +270 -282
  38. package/src/components/dataViews/queryableProperties/__tests__/__snapshots__/SelectField.spec.js.snap +172 -180
  39. package/src/components/dataViews/simpleForm/DatasetForm.js +4 -0
  40. package/src/components/dataViews/simpleForm/FormQueryable.js +49 -53
  41. package/src/components/dataViews/summary/Where.js +3 -2
  42. package/src/components/functions/FunctionEdit.js +92 -0
  43. package/src/components/functions/FunctionEditor.js +32 -10
  44. package/src/components/functions/FunctionParams.js +54 -61
  45. package/src/components/functions/FunctionsList.js +213 -0
  46. package/src/components/functions/__tests__/FunctionEdit.spec.js +168 -0
  47. package/src/components/functions/__tests__/FunctionParams.spec.js +1 -8
  48. package/src/components/functions/__tests__/FunctionsList.spec.js +62 -0
  49. package/src/components/functions/__tests__/__snapshots__/FunctionEditor.spec.js.snap +553 -469
  50. package/src/components/functions/__tests__/__snapshots__/FunctionParams.spec.js.snap +139 -161
  51. package/src/components/functions/__tests__/__snapshots__/FunctionsList.spec.js.snap +588 -0
  52. package/src/components/qualityControls/__tests__/NewQualityControl.spec.js +4 -0
  53. package/src/components/qualityControls/__tests__/QualityControlEditor.spec.js +8 -1
  54. package/src/components/qualityControls/__tests__/__snapshots__/EditQualityControl.spec.js.snap +109 -118
  55. package/src/components/qualityControls/__tests__/__snapshots__/NewDraftQualityControl.spec.js.snap +109 -118
  56. package/src/components/qualityControls/__tests__/__snapshots__/QualityControlEditor.spec.js.snap +471 -468
  57. package/src/hooks/useFunctions.js +6 -0
  58. package/src/styles/Expression.less +39 -6
  59. package/src/components/functions/Functions.js +0 -143
  60. package/src/components/functions/__tests__/Functions.spec.js +0 -56
  61. package/src/components/functions/__tests__/__snapshots__/Functions.spec.js.snap +0 -85
@@ -47,9 +47,6 @@ describe("<FunctionParams />", () => {
47
47
 
48
48
  const nameInput = () =>
49
49
  rendered.queryByPlaceholderText("functions.form.name");
50
- const descriptionInputLabel = () =>
51
- rendered.getByText("functions.form.add_description");
52
-
53
50
  const descriptionInput = () =>
54
51
  rendered.getByPlaceholderText("functions.form.description");
55
52
  const typeSelector = () => rendered.getByRole("listbox");
@@ -58,18 +55,14 @@ describe("<FunctionParams />", () => {
58
55
 
59
56
  await waitFor(() => expect(nameInput()).toBeInTheDocument());
60
57
  await waitFor(() => expect(typeSelector()).toBeInTheDocument());
61
- await waitFor(() => expect(descriptionInputLabel()).toBeInTheDocument());
58
+ await waitFor(() => expect(descriptionInput()).toBeInTheDocument());
62
59
 
63
60
  await user.click(typeSelector());
64
- await waitFor(() => expect(descriptionInputLabel()).toBeInTheDocument());
65
61
 
66
62
  await user.click(stringOption());
67
63
 
68
64
  await user.type(nameInput(), testArgName);
69
65
 
70
- await user.click(descriptionInputLabel());
71
- await waitFor(() => expect(descriptionInput()).toBeInTheDocument());
72
-
73
66
  await user.type(descriptionInput(), testArgDescription);
74
67
 
75
68
  expect(watcher).toHaveBeenLastCalledWith({
@@ -0,0 +1,62 @@
1
+ import { render, waitForLoad } from "@truedat/test/render";
2
+ import { messages } from "@truedat/qx/components/__tests__/__fixtures__/helper";
3
+ import FunctionsList from "../FunctionsList";
4
+
5
+ const makeFunctions = (count) =>
6
+ Array.from({ length: count }, (_, i) => ({
7
+ id: i + 1,
8
+ name: `func_${i + 1}`,
9
+ type: "boolean",
10
+ class: i % 2 === 0 ? "aggregator" : null,
11
+ description: `Description ${i + 1}`,
12
+ params: [],
13
+ expression: {
14
+ shape: "constant",
15
+ value: { type: "boolean", value: "true" },
16
+ },
17
+ }));
18
+
19
+ jest.mock("@truedat/qx/hooks/useFunctions", () => {
20
+ const originalModule = jest.requireActual("@truedat/qx/hooks/useFunctions");
21
+
22
+ return {
23
+ __esModule: true,
24
+ ...originalModule,
25
+ useFunctions: jest.fn(() => ({
26
+ data: { data: makeFunctions(15) },
27
+ loading: false,
28
+ })),
29
+ };
30
+ });
31
+
32
+ const renderOpts = { messages };
33
+
34
+ describe("<FunctionsList />", () => {
35
+ it("matches the latest snapshot", async () => {
36
+ const rendered = render(<FunctionsList />, renderOpts);
37
+ await waitForLoad(rendered);
38
+ expect(rendered.container).toMatchSnapshot();
39
+ });
40
+
41
+ it("shows only PAGE_SIZE functions per page", async () => {
42
+ const rendered = render(<FunctionsList />, renderOpts);
43
+ await waitForLoad(rendered);
44
+ const rows = rendered.getAllByRole("row");
45
+ // 10 data rows + 1 header row
46
+ expect(rows).toHaveLength(11);
47
+ });
48
+
49
+ it("displays the function count", async () => {
50
+ const rendered = render(<FunctionsList />, renderOpts);
51
+ await waitForLoad(rendered);
52
+ expect(rendered.getByText(/15 functions/i)).toBeTruthy();
53
+ });
54
+
55
+ it("renders an empty state when no functions", async () => {
56
+ const { useFunctions } = require("@truedat/qx/hooks/useFunctions");
57
+ useFunctions.mockReturnValueOnce({ data: { data: [] }, loading: false });
58
+ const rendered = render(<FunctionsList />, renderOpts);
59
+ await waitForLoad(rendered);
60
+ expect(rendered.getByText(/No functions found/i)).toBeTruthy();
61
+ });
62
+ });