@griddo/ax 12.4.0 → 12.5.1
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/config/__tests__/ModulePathInMessagesPlugin.test.js +93 -0
- package/config/webpack/ModulePathInMessagesPlugin.js +47 -0
- package/config/webpack.config.js +10 -0
- package/package.json +2 -2
- package/src/__tests__/components/ConfigPanel/Form/Form.test.tsx +47 -57
- package/src/__tests__/components/ConfigPanel/Header/Header.test.tsx +46 -42
- package/src/__tests__/components/ElementsTooltip/ElementsTooltip.test.tsx +6 -17
- package/src/__tests__/components/EmptyState/EmptyState.test.tsx +9 -9
- package/src/__tests__/components/Fields/AsyncSelect/AsyncSelect.test.tsx +60 -50
- package/src/__tests__/components/Fields/ColorPicker/ColorPicker.test.tsx +66 -58
- package/src/__tests__/components/Fields/ComponentContainer/ComponentContainer.test.tsx +222 -425
- package/src/__tests__/components/Fields/FileField/FileField.test.tsx +13 -14
- package/src/__tests__/components/Fields/ImageField/ImageField.test.tsx +275 -259
- package/src/__tests__/components/Fields/IntegrationsField/IntegrationsField.test.tsx +50 -48
- package/src/__tests__/components/Fields/NoteField/NoteField.test.tsx +9 -8
- package/src/__tests__/components/Fields/NumberField/NumberField.test.tsx +8 -12
- package/src/__tests__/components/Fields/TextArea/TextArea.test.tsx +6 -2
- package/src/__tests__/components/Fields/ToggleField/ToggleField.test.tsx +15 -23
- package/src/__tests__/components/Fields/Tooltip/Tooltip.test.tsx +8 -2
- package/src/__tests__/components/Fields/VisualUniqueSelection/VisualUniqueSelection.test.tsx +29 -21
- package/src/__tests__/components/Fields/Wysiwyg/Wysiwyg.config.test.tsx +103 -0
- package/src/__tests__/components/FieldsBehavior/FieldsBehavior.test.tsx +7 -2
- package/src/__tests__/components/ResizePanel/ResizePanel.test.tsx +8 -6
- package/src/__tests__/components/SideModal/SideModal.test.tsx +150 -104
- package/src/__tests__/components/TableFilters/LiveFilter/LiveFilter.test.tsx +15 -29
- package/src/__tests__/components/TableFilters/StatusFilter/StatusFilter.test.tsx +61 -36
- package/src/__tests__/components/Tabs/Tabs.test.tsx +65 -61
- package/src/__tests__/components/Toast/Toast.test.tsx +19 -21
- package/src/__tests__/modules/FramePreview/FramePreview.test.tsx +16 -0
- package/src/__tests__/modules/Sites/SitesList/ListView/BulkHeader/BulkHeader.test.tsx +24 -19
- package/src/__tests__/modules/Sites/SitesList/SitesList.test.tsx +15 -6
- package/src/__tests__/modules/Users/Roles/BulkHeader/BulkHeader.test.tsx +69 -64
- package/src/__tests__/modules/Users/Roles/Roles.test.tsx +7 -4
- package/src/components/Fields/Wysiwyg/config.tsx +68 -17
- package/src/components/Fields/Wysiwyg/helpers.tsx +2 -0
- package/src/components/Fields/Wysiwyg/index.tsx +41 -10
- package/src/components/ResizePanel/index.tsx +7 -2
|
@@ -12,7 +12,8 @@ import { mock } from "vitest-mock-extended";
|
|
|
12
12
|
|
|
13
13
|
afterEach(cleanup);
|
|
14
14
|
|
|
15
|
-
const
|
|
15
|
+
const makeProps = (overrides: Partial<IAsyncSelectProps> = {}): IAsyncSelectProps =>
|
|
16
|
+
Object.assign(mock<IAsyncSelectProps>(), overrides);
|
|
16
17
|
|
|
17
18
|
const defaultSite = mock<ISite>();
|
|
18
19
|
defaultSite.id = 113;
|
|
@@ -22,11 +23,10 @@ const mockedAxios = axios as MockedFunction<typeof axios>;
|
|
|
22
23
|
|
|
23
24
|
describe("AsyncSelect component rendering", () => {
|
|
24
25
|
test("should render the component AsyncSelect", async () => {
|
|
25
|
-
defaultProps.name = "texto de prueba";
|
|
26
26
|
await act(async () => {
|
|
27
27
|
render(
|
|
28
28
|
<ThemeProvider theme={parseTheme(globalTheme)}>
|
|
29
|
-
<AsyncSelect {...
|
|
29
|
+
<AsyncSelect {...makeProps({ name: "texto de prueba" })} />
|
|
30
30
|
</ThemeProvider>,
|
|
31
31
|
);
|
|
32
32
|
});
|
|
@@ -36,15 +36,6 @@ describe("AsyncSelect component rendering", () => {
|
|
|
36
36
|
|
|
37
37
|
describe("AsyncSelect component events", () => {
|
|
38
38
|
test("should call the api and receive data in pages", async () => {
|
|
39
|
-
defaultProps.site = defaultSite;
|
|
40
|
-
defaultProps.entity = "pages";
|
|
41
|
-
defaultProps.options = {
|
|
42
|
-
excludeDetailPages: true,
|
|
43
|
-
};
|
|
44
|
-
defaultProps.lang = "en_GB";
|
|
45
|
-
defaultProps.selectedContent = { id: 1 };
|
|
46
|
-
defaultProps.value = [3622, 3621];
|
|
47
|
-
|
|
48
39
|
const data = {
|
|
49
40
|
data: [
|
|
50
41
|
{
|
|
@@ -83,7 +74,18 @@ describe("AsyncSelect component events", () => {
|
|
|
83
74
|
await act(async () => {
|
|
84
75
|
render(
|
|
85
76
|
<ThemeProvider theme={parseTheme(globalTheme)}>
|
|
86
|
-
<AsyncSelect
|
|
77
|
+
<AsyncSelect
|
|
78
|
+
{...makeProps({
|
|
79
|
+
site: defaultSite,
|
|
80
|
+
entity: "pages",
|
|
81
|
+
options: {
|
|
82
|
+
excludeDetailPages: true,
|
|
83
|
+
},
|
|
84
|
+
lang: "en_GB",
|
|
85
|
+
selectedContent: { id: 1 },
|
|
86
|
+
value: [3622, 3621],
|
|
87
|
+
})}
|
|
88
|
+
/>
|
|
87
89
|
</ThemeProvider>,
|
|
88
90
|
);
|
|
89
91
|
});
|
|
@@ -92,15 +94,6 @@ describe("AsyncSelect component events", () => {
|
|
|
92
94
|
});
|
|
93
95
|
|
|
94
96
|
test("should call the api and receive data in pages with no selectedContent", async () => {
|
|
95
|
-
defaultProps.site = defaultSite;
|
|
96
|
-
defaultProps.entity = "pages";
|
|
97
|
-
defaultProps.options = {
|
|
98
|
-
excludeDetailPages: true,
|
|
99
|
-
};
|
|
100
|
-
defaultProps.lang = "en_GB";
|
|
101
|
-
defaultProps.selectedContent = null;
|
|
102
|
-
defaultProps.value = 3622;
|
|
103
|
-
|
|
104
97
|
const data = {
|
|
105
98
|
data: [
|
|
106
99
|
{
|
|
@@ -139,7 +132,18 @@ describe("AsyncSelect component events", () => {
|
|
|
139
132
|
await act(async () => {
|
|
140
133
|
render(
|
|
141
134
|
<ThemeProvider theme={parseTheme(globalTheme)}>
|
|
142
|
-
<AsyncSelect
|
|
135
|
+
<AsyncSelect
|
|
136
|
+
{...makeProps({
|
|
137
|
+
site: defaultSite,
|
|
138
|
+
entity: "pages",
|
|
139
|
+
options: {
|
|
140
|
+
excludeDetailPages: true,
|
|
141
|
+
},
|
|
142
|
+
lang: "en_GB",
|
|
143
|
+
selectedContent: null,
|
|
144
|
+
value: 3622,
|
|
145
|
+
})}
|
|
146
|
+
/>
|
|
143
147
|
</ThemeProvider>,
|
|
144
148
|
);
|
|
145
149
|
});
|
|
@@ -148,14 +152,6 @@ describe("AsyncSelect component events", () => {
|
|
|
148
152
|
});
|
|
149
153
|
|
|
150
154
|
test("should call the api and receive data in categories", async () => {
|
|
151
|
-
defaultProps.site = defaultSite;
|
|
152
|
-
defaultProps.entity = "categories";
|
|
153
|
-
defaultProps.options = {
|
|
154
|
-
excludeDetailPages: true,
|
|
155
|
-
};
|
|
156
|
-
defaultProps.lang = "en_GB";
|
|
157
|
-
defaultProps.value = 3622;
|
|
158
|
-
|
|
159
155
|
const data = {
|
|
160
156
|
data: [
|
|
161
157
|
{
|
|
@@ -194,7 +190,17 @@ describe("AsyncSelect component events", () => {
|
|
|
194
190
|
await act(async () => {
|
|
195
191
|
render(
|
|
196
192
|
<ThemeProvider theme={parseTheme(globalTheme)}>
|
|
197
|
-
<AsyncSelect
|
|
193
|
+
<AsyncSelect
|
|
194
|
+
{...makeProps({
|
|
195
|
+
site: defaultSite,
|
|
196
|
+
entity: "categories",
|
|
197
|
+
options: {
|
|
198
|
+
excludeDetailPages: true,
|
|
199
|
+
},
|
|
200
|
+
lang: "en_GB",
|
|
201
|
+
value: 3622,
|
|
202
|
+
})}
|
|
203
|
+
/>
|
|
198
204
|
</ThemeProvider>,
|
|
199
205
|
);
|
|
200
206
|
});
|
|
@@ -203,13 +209,6 @@ describe("AsyncSelect component events", () => {
|
|
|
203
209
|
});
|
|
204
210
|
|
|
205
211
|
test("should call the api and not receiving data", async () => {
|
|
206
|
-
defaultProps.site = defaultSite;
|
|
207
|
-
defaultProps.entity = "categories";
|
|
208
|
-
defaultProps.options = {
|
|
209
|
-
excludeDetailPages: true,
|
|
210
|
-
};
|
|
211
|
-
defaultProps.lang = "en_GB";
|
|
212
|
-
|
|
213
212
|
const data = {
|
|
214
213
|
data: [],
|
|
215
214
|
status: 500,
|
|
@@ -223,7 +222,16 @@ describe("AsyncSelect component events", () => {
|
|
|
223
222
|
await act(async () => {
|
|
224
223
|
render(
|
|
225
224
|
<ThemeProvider theme={parseTheme(globalTheme)}>
|
|
226
|
-
<AsyncSelect
|
|
225
|
+
<AsyncSelect
|
|
226
|
+
{...makeProps({
|
|
227
|
+
site: defaultSite,
|
|
228
|
+
entity: "categories",
|
|
229
|
+
options: {
|
|
230
|
+
excludeDetailPages: true,
|
|
231
|
+
},
|
|
232
|
+
lang: "en_GB",
|
|
233
|
+
})}
|
|
234
|
+
/>
|
|
227
235
|
</ThemeProvider>,
|
|
228
236
|
);
|
|
229
237
|
});
|
|
@@ -232,15 +240,6 @@ describe("AsyncSelect component events", () => {
|
|
|
232
240
|
});
|
|
233
241
|
|
|
234
242
|
test("should call the api with source", async () => {
|
|
235
|
-
defaultProps.site = defaultSite;
|
|
236
|
-
defaultProps.entity = "categories";
|
|
237
|
-
defaultProps.source = "source";
|
|
238
|
-
defaultProps.options = {
|
|
239
|
-
excludeDetailPages: true,
|
|
240
|
-
};
|
|
241
|
-
defaultProps.lang = "en_GB";
|
|
242
|
-
defaultProps.value = 3787;
|
|
243
|
-
|
|
244
243
|
const data = {
|
|
245
244
|
data: [
|
|
246
245
|
{
|
|
@@ -279,7 +278,18 @@ describe("AsyncSelect component events", () => {
|
|
|
279
278
|
await act(async () => {
|
|
280
279
|
render(
|
|
281
280
|
<ThemeProvider theme={parseTheme(globalTheme)}>
|
|
282
|
-
<AsyncSelect
|
|
281
|
+
<AsyncSelect
|
|
282
|
+
{...makeProps({
|
|
283
|
+
site: defaultSite,
|
|
284
|
+
entity: "categories",
|
|
285
|
+
source: "source",
|
|
286
|
+
options: {
|
|
287
|
+
excludeDetailPages: true,
|
|
288
|
+
},
|
|
289
|
+
lang: "en_GB",
|
|
290
|
+
value: 3787,
|
|
291
|
+
})}
|
|
292
|
+
/>
|
|
283
293
|
</ThemeProvider>,
|
|
284
294
|
);
|
|
285
295
|
});
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { MockedFunction } from "vitest";
|
|
2
1
|
import React from "react";
|
|
3
2
|
import "@testing-library/jest-dom";
|
|
4
3
|
import ColorPicker, { IProps } from "@ax/components/Fields/ColorPicker";
|
|
@@ -10,28 +9,26 @@ import { mock } from "vitest-mock-extended";
|
|
|
10
9
|
|
|
11
10
|
afterEach(cleanup);
|
|
12
11
|
|
|
13
|
-
|
|
12
|
+
// `onChange` es obligatoria y el componente la invoca. El proxy de `mock<T>()`
|
|
13
|
+
// solo materializa una prop al accederla y el spread de JSX copia solo las
|
|
14
|
+
// propias, así que sin ponerla aquí no llegaría al componente.
|
|
15
|
+
const makeProps = (overrides: Partial<IProps> = {}): IProps =>
|
|
16
|
+
Object.assign(mock<IProps>(), { onChange: vi.fn() }, overrides);
|
|
14
17
|
|
|
15
18
|
describe("ColorPicker component rendering", () => {
|
|
16
19
|
test("should render the component ColorPicker", () => {
|
|
17
|
-
defaultProps.value = "#000000";
|
|
18
|
-
defaultProps.theme = parseTheme(globalTheme);
|
|
19
|
-
|
|
20
20
|
render(
|
|
21
21
|
<ThemeProvider theme={parseTheme(globalTheme)}>
|
|
22
|
-
<ColorPicker {...
|
|
22
|
+
<ColorPicker {...makeProps({ value: "#000000", theme: parseTheme(globalTheme) })} />
|
|
23
23
|
</ThemeProvider>,
|
|
24
24
|
);
|
|
25
25
|
expect(screen.getByTestId("color-picker-wrapper")).toBeTruthy();
|
|
26
26
|
});
|
|
27
27
|
|
|
28
28
|
test("should render the Picker", () => {
|
|
29
|
-
defaultProps.value = "#000000";
|
|
30
|
-
defaultProps.theme = parseTheme(globalTheme);
|
|
31
|
-
defaultProps.error = true;
|
|
32
29
|
render(
|
|
33
30
|
<ThemeProvider theme={parseTheme(globalTheme)}>
|
|
34
|
-
<ColorPicker {...
|
|
31
|
+
<ColorPicker {...makeProps({ value: "#000000", theme: parseTheme(globalTheme), error: true })} />
|
|
35
32
|
</ThemeProvider>,
|
|
36
33
|
);
|
|
37
34
|
const inputActionComponent = screen.getByTestId("icon-action-component");
|
|
@@ -43,15 +40,19 @@ describe("ColorPicker component rendering", () => {
|
|
|
43
40
|
|
|
44
41
|
describe("ColorPicker events", () => {
|
|
45
42
|
test("should trigger the onChange", () => {
|
|
46
|
-
|
|
47
|
-
defaultProps.theme = parseTheme(globalTheme);
|
|
48
|
-
defaultProps.colors = ["#000000", "#d9e3f0", "#f47373", "#697689"];
|
|
49
|
-
defaultProps.isThemePalette = false;
|
|
50
|
-
const onChangeMock = defaultProps.onChange as MockedFunction<(newColor: string) => void>;
|
|
43
|
+
const onChangeMock = vi.fn();
|
|
51
44
|
|
|
52
45
|
render(
|
|
53
46
|
<ThemeProvider theme={parseTheme(globalTheme)}>
|
|
54
|
-
<ColorPicker
|
|
47
|
+
<ColorPicker
|
|
48
|
+
{...makeProps({
|
|
49
|
+
onChange: onChangeMock,
|
|
50
|
+
value: "#000000",
|
|
51
|
+
theme: parseTheme(globalTheme),
|
|
52
|
+
colors: ["#000000", "#d9e3f0", "#f47373", "#697689"],
|
|
53
|
+
isThemePalette: false,
|
|
54
|
+
})}
|
|
55
|
+
/>
|
|
55
56
|
</ThemeProvider>,
|
|
56
57
|
);
|
|
57
58
|
const inputComponent = screen.getByTestId("input-picker-wrapper");
|
|
@@ -65,15 +66,17 @@ describe("ColorPicker events", () => {
|
|
|
65
66
|
});
|
|
66
67
|
|
|
67
68
|
test("should trigger the onChange", () => {
|
|
68
|
-
|
|
69
|
-
defaultProps.theme = parseTheme(globalTheme);
|
|
70
|
-
const handleValidationMock = defaultProps.handleValidation as MockedFunction<
|
|
71
|
-
(value: string, validators: Record<string, unknown>) => void
|
|
72
|
-
>;
|
|
73
|
-
defaultProps.error = true;
|
|
69
|
+
const handleValidationMock = vi.fn();
|
|
74
70
|
render(
|
|
75
71
|
<ThemeProvider theme={parseTheme(globalTheme)}>
|
|
76
|
-
<ColorPicker
|
|
72
|
+
<ColorPicker
|
|
73
|
+
{...makeProps({
|
|
74
|
+
handleValidation: handleValidationMock,
|
|
75
|
+
value: "#000000",
|
|
76
|
+
theme: parseTheme(globalTheme),
|
|
77
|
+
error: true,
|
|
78
|
+
})}
|
|
79
|
+
/>
|
|
77
80
|
</ThemeProvider>,
|
|
78
81
|
);
|
|
79
82
|
const inputComponent = screen.getByTestId("input-picker-wrapper");
|
|
@@ -83,13 +86,12 @@ describe("ColorPicker events", () => {
|
|
|
83
86
|
});
|
|
84
87
|
|
|
85
88
|
test("should trigger the onChange of the Picker", async () => {
|
|
86
|
-
|
|
87
|
-
defaultProps.theme = parseTheme(globalTheme);
|
|
88
|
-
defaultProps.error = true;
|
|
89
|
-
const onChangeMock = defaultProps.onChange as MockedFunction<(newColor: string) => void>;
|
|
89
|
+
const onChangeMock = vi.fn();
|
|
90
90
|
render(
|
|
91
91
|
<ThemeProvider theme={parseTheme(globalTheme)}>
|
|
92
|
-
<ColorPicker
|
|
92
|
+
<ColorPicker
|
|
93
|
+
{...makeProps({ onChange: onChangeMock, value: "#000000", theme: parseTheme(globalTheme), error: true })}
|
|
94
|
+
/>
|
|
93
95
|
</ThemeProvider>,
|
|
94
96
|
);
|
|
95
97
|
|
|
@@ -103,14 +105,18 @@ describe("ColorPicker events", () => {
|
|
|
103
105
|
});
|
|
104
106
|
|
|
105
107
|
test("should trigger the onChange of the Picker with color", async () => {
|
|
106
|
-
|
|
107
|
-
defaultProps.theme = parseTheme(globalTheme);
|
|
108
|
-
defaultProps.error = true;
|
|
109
|
-
defaultProps.colors = ["#fff", "#000"];
|
|
110
|
-
const onChangeMock = defaultProps.onChange as MockedFunction<(newColor: string) => void>;
|
|
108
|
+
const onChangeMock = vi.fn();
|
|
111
109
|
render(
|
|
112
110
|
<ThemeProvider theme={parseTheme(globalTheme)}>
|
|
113
|
-
<ColorPicker
|
|
111
|
+
<ColorPicker
|
|
112
|
+
{...makeProps({
|
|
113
|
+
onChange: onChangeMock,
|
|
114
|
+
value: "#000000",
|
|
115
|
+
theme: parseTheme(globalTheme),
|
|
116
|
+
error: true,
|
|
117
|
+
colors: ["#fff", "#000"],
|
|
118
|
+
})}
|
|
119
|
+
/>
|
|
114
120
|
</ThemeProvider>,
|
|
115
121
|
);
|
|
116
122
|
|
|
@@ -124,17 +130,19 @@ describe("ColorPicker events", () => {
|
|
|
124
130
|
});
|
|
125
131
|
|
|
126
132
|
test("should not pass colors to picker", async () => {
|
|
127
|
-
defaultProps.value = "#000000";
|
|
128
|
-
defaultProps.theme = "default";
|
|
129
|
-
defaultProps.error = true;
|
|
130
|
-
defaultProps.colors = [
|
|
131
|
-
{ color: "#f0f0f0", theme: "default" },
|
|
132
|
-
{ color: "#fff", theme: "cms-default" },
|
|
133
|
-
];
|
|
134
|
-
|
|
135
133
|
render(
|
|
136
134
|
<ThemeProvider theme={parseTheme(globalTheme)}>
|
|
137
|
-
<ColorPicker
|
|
135
|
+
<ColorPicker
|
|
136
|
+
{...makeProps({
|
|
137
|
+
value: "#000000",
|
|
138
|
+
theme: "default",
|
|
139
|
+
error: true,
|
|
140
|
+
colors: [
|
|
141
|
+
{ color: "#f0f0f0", theme: "default" },
|
|
142
|
+
{ color: "#fff", theme: "cms-default" },
|
|
143
|
+
],
|
|
144
|
+
})}
|
|
145
|
+
/>
|
|
138
146
|
</ThemeProvider>,
|
|
139
147
|
);
|
|
140
148
|
|
|
@@ -147,17 +155,19 @@ describe("ColorPicker events", () => {
|
|
|
147
155
|
});
|
|
148
156
|
|
|
149
157
|
test("should pass colors to picker", async () => {
|
|
150
|
-
defaultProps.value = "#000000";
|
|
151
|
-
defaultProps.theme = "default";
|
|
152
|
-
defaultProps.error = true;
|
|
153
|
-
defaultProps.colors = [
|
|
154
|
-
{ options: ["#f0f0f0"], theme: "default" },
|
|
155
|
-
{ color: "#fff", theme: "cms-default" },
|
|
156
|
-
];
|
|
157
|
-
|
|
158
158
|
render(
|
|
159
159
|
<ThemeProvider theme={parseTheme(globalTheme)}>
|
|
160
|
-
<ColorPicker
|
|
160
|
+
<ColorPicker
|
|
161
|
+
{...makeProps({
|
|
162
|
+
value: "#000000",
|
|
163
|
+
theme: "default",
|
|
164
|
+
error: true,
|
|
165
|
+
colors: [
|
|
166
|
+
{ options: ["#f0f0f0"], theme: "default" },
|
|
167
|
+
{ color: "#fff", theme: "cms-default" },
|
|
168
|
+
],
|
|
169
|
+
})}
|
|
170
|
+
/>
|
|
161
171
|
</ThemeProvider>,
|
|
162
172
|
);
|
|
163
173
|
|
|
@@ -170,15 +180,13 @@ describe("ColorPicker events", () => {
|
|
|
170
180
|
});
|
|
171
181
|
|
|
172
182
|
test("should trigger the handleOnBlur", async () => {
|
|
173
|
-
|
|
174
|
-
defaultProps.theme = parseTheme(globalTheme);
|
|
175
|
-
const handleValidationMock = defaultProps.handleValidation as MockedFunction<
|
|
176
|
-
(value: string, validators: Record<string, unknown>) => void
|
|
177
|
-
>;
|
|
183
|
+
const handleValidationMock = vi.fn();
|
|
178
184
|
|
|
179
185
|
render(
|
|
180
186
|
<ThemeProvider theme={parseTheme(globalTheme)}>
|
|
181
|
-
<ColorPicker
|
|
187
|
+
<ColorPicker
|
|
188
|
+
{...makeProps({ handleValidation: handleValidationMock, value: "#000000", theme: parseTheme(globalTheme) })}
|
|
189
|
+
/>
|
|
182
190
|
</ThemeProvider>,
|
|
183
191
|
);
|
|
184
192
|
const inputComponent = screen.getByTestId("input-picker-wrapper");
|