@griddo/ax 12.4.0 → 12.5.0

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 (35) hide show
  1. package/config/webpack.config.js +5 -0
  2. package/package.json +2 -2
  3. package/src/__tests__/components/ConfigPanel/Form/Form.test.tsx +47 -57
  4. package/src/__tests__/components/ConfigPanel/Header/Header.test.tsx +46 -42
  5. package/src/__tests__/components/ElementsTooltip/ElementsTooltip.test.tsx +6 -17
  6. package/src/__tests__/components/EmptyState/EmptyState.test.tsx +9 -9
  7. package/src/__tests__/components/Fields/AsyncSelect/AsyncSelect.test.tsx +60 -50
  8. package/src/__tests__/components/Fields/ColorPicker/ColorPicker.test.tsx +66 -58
  9. package/src/__tests__/components/Fields/ComponentContainer/ComponentContainer.test.tsx +222 -425
  10. package/src/__tests__/components/Fields/FileField/FileField.test.tsx +13 -14
  11. package/src/__tests__/components/Fields/ImageField/ImageField.test.tsx +275 -259
  12. package/src/__tests__/components/Fields/IntegrationsField/IntegrationsField.test.tsx +50 -48
  13. package/src/__tests__/components/Fields/NoteField/NoteField.test.tsx +9 -8
  14. package/src/__tests__/components/Fields/NumberField/NumberField.test.tsx +8 -12
  15. package/src/__tests__/components/Fields/TextArea/TextArea.test.tsx +6 -2
  16. package/src/__tests__/components/Fields/ToggleField/ToggleField.test.tsx +15 -23
  17. package/src/__tests__/components/Fields/Tooltip/Tooltip.test.tsx +8 -2
  18. package/src/__tests__/components/Fields/VisualUniqueSelection/VisualUniqueSelection.test.tsx +29 -21
  19. package/src/__tests__/components/Fields/Wysiwyg/Wysiwyg.config.test.tsx +103 -0
  20. package/src/__tests__/components/FieldsBehavior/FieldsBehavior.test.tsx +7 -2
  21. package/src/__tests__/components/ResizePanel/ResizePanel.test.tsx +8 -6
  22. package/src/__tests__/components/SideModal/SideModal.test.tsx +150 -104
  23. package/src/__tests__/components/TableFilters/LiveFilter/LiveFilter.test.tsx +15 -29
  24. package/src/__tests__/components/TableFilters/StatusFilter/StatusFilter.test.tsx +61 -36
  25. package/src/__tests__/components/Tabs/Tabs.test.tsx +65 -61
  26. package/src/__tests__/components/Toast/Toast.test.tsx +19 -21
  27. package/src/__tests__/modules/FramePreview/FramePreview.test.tsx +16 -0
  28. package/src/__tests__/modules/Sites/SitesList/ListView/BulkHeader/BulkHeader.test.tsx +24 -19
  29. package/src/__tests__/modules/Sites/SitesList/SitesList.test.tsx +15 -6
  30. package/src/__tests__/modules/Users/Roles/BulkHeader/BulkHeader.test.tsx +69 -64
  31. package/src/__tests__/modules/Users/Roles/Roles.test.tsx +7 -4
  32. package/src/components/Fields/Wysiwyg/config.tsx +68 -17
  33. package/src/components/Fields/Wysiwyg/helpers.tsx +2 -0
  34. package/src/components/Fields/Wysiwyg/index.tsx +41 -10
  35. package/src/components/ResizePanel/index.tsx +7 -2
@@ -466,6 +466,9 @@ module.exports = function (webpackEnv) {
466
466
  importLoaders: 1,
467
467
  sourceMap: isEnvProduction ? shouldUseSourceMap : isEnvDevelopment,
468
468
  modules: {
469
+ // Both keys below are a contract with client projects, not an
470
+ // internal build detail: packages/griddo-ax/docs/adr/0001-contrato-de-css-modules-con-los-clientes.md
471
+ //
469
472
  // css-loader v6 defaults `esModule: true`, so `import * as styles`
470
473
  // only sees locals as named exports when `namedExport` is on.
471
474
  // griddo-components relies on `import * as styles` heavily.
@@ -509,6 +512,8 @@ module.exports = function (webpackEnv) {
509
512
  importLoaders: 3,
510
513
  sourceMap: isEnvProduction ? shouldUseSourceMap : isEnvDevelopment,
511
514
  modules: {
515
+ // Same client-facing contract as the CSS modules block above
516
+ // (ADR 0001): keep both keys in sync with it.
512
517
  namedExport: true,
513
518
  exportLocalsConvention: "asIs",
514
519
  getLocalIdent: getCSSModuleLocalIdent,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@griddo/ax",
3
3
  "description": "Griddo Author Experience",
4
- "version": "12.4.0",
4
+ "version": "12.5.0",
5
5
  "authors": [
6
6
  "Álvaro Sánchez' <alvaro.sanches@secuoyas.com>",
7
7
  "Diego M. Béjar <diego.bejar@secuoyas.com>",
@@ -199,5 +199,5 @@
199
199
  "publishConfig": {
200
200
  "access": "public"
201
201
  },
202
- "gitHead": "e78fd612e55753bf9a04aa1e4020b582be9026af"
202
+ "gitHead": "02d4a5b3c3d3f4a4339db6746b6d6572139e51e5"
203
203
  }
@@ -1,4 +1,3 @@
1
- import type { MockedFunction } from "vitest";
2
1
  import * as React from "react";
3
2
 
4
3
  import { ThemeProvider } from "styled-components";
@@ -113,49 +112,49 @@ const initialStore = {
113
112
  };
114
113
  const store = mockStore(initialStore);
115
114
 
116
- const defaultProps = mock<IFormProps>();
117
-
118
- defaultProps.schema = {
119
- title: "Header",
120
- component: "Header",
121
- type: "header",
122
- configTabs: [
115
+ // Props por test. Los tres `const ...Mock = defaultProps.x as MockedFunction<>`
116
+ // que había aquí no se usaban en ningún assert: solo servían, sin querer, para
117
+ // materializar esas props en el proxy de `mock<T>()` y que el spread de JSX las
118
+ // llevara al componente. Ahora van declaradas en la factoría.
119
+ const makeProps = (overrides: Partial<IFormProps> = {}): IFormProps =>
120
+ Object.assign(
121
+ mock<IFormProps>(),
123
122
  {
124
- title: "content",
125
- fields: [
126
- {
127
- title: "Name",
128
- key: "title",
129
- type: "TextField",
130
- mandatory: true,
131
- },
132
- ],
123
+ schema: {
124
+ title: "Header",
125
+ component: "Header",
126
+ type: "header",
127
+ configTabs: [
128
+ {
129
+ title: "content",
130
+ fields: [
131
+ {
132
+ title: "Name",
133
+ key: "title",
134
+ type: "TextField",
135
+ mandatory: true,
136
+ },
137
+ ],
138
+ },
139
+ ],
140
+ schemaType: "module",
141
+ },
142
+ selectedTab: "content",
143
+ isPage: false,
144
+ isGlobal: false,
145
+ theme: "default-theme",
146
+ setSelectedContent: vi.fn(),
147
+ setSelectedTab: vi.fn(),
148
+ setHistoryPush: vi.fn(),
133
149
  },
134
- ],
135
- schemaType: "module",
136
- };
137
- const restorePageNavigationActionMock = vi.fn();
138
- defaultProps.actions = {
139
- restorePageNavigationAction: restorePageNavigationActionMock,
140
- };
141
- const setSelectedContentMock = defaultProps.setSelectedContent as MockedFunction<(editorID: number) => void>;
142
- const setSelectedTabMocked = defaultProps.setSelectedTab as MockedFunction<(tab: string) => void>;
143
- const setHistoryPushMocked = defaultProps.setHistoryPush as MockedFunction<
144
- (path: string, isEditor: boolean) => void
145
- >;
146
- defaultProps.selectedTab = "content";
147
- defaultProps.isPage = false;
148
- defaultProps.isGlobal = false;
149
- defaultProps.theme = "default-theme";
150
+ overrides,
151
+ );
150
152
 
151
153
  describe("Form component rendering", () => {
152
154
  it("should render the component", () => {
153
- defaultProps.isPage = true;
154
- defaultProps.isGlobal = true;
155
-
156
155
  render(
157
156
  <ThemeProvider theme={parseTheme(globalTheme)}>
158
- <Form {...defaultProps} />
157
+ <Form {...makeProps({ isPage: true, isGlobal: true })} />
159
158
  </ThemeProvider>,
160
159
  { store },
161
160
  );
@@ -163,13 +162,9 @@ describe("Form component rendering", () => {
163
162
  });
164
163
 
165
164
  it("should render the component with no header warning text", () => {
166
- defaultProps.isPage = false;
167
- defaultProps.isGlobal = false;
168
- defaultProps.header = 0;
169
-
170
165
  render(
171
166
  <ThemeProvider theme={parseTheme(globalTheme)}>
172
- <Form {...defaultProps} />
167
+ <Form {...makeProps({ header: 0 })} />
173
168
  </ThemeProvider>,
174
169
  { store },
175
170
  );
@@ -178,11 +173,11 @@ describe("Form component rendering", () => {
178
173
  });
179
174
 
180
175
  it("should call the function to restore the header", () => {
181
- defaultProps.header = 0;
176
+ const restorePageNavigationAction = vi.fn();
182
177
 
183
178
  render(
184
179
  <ThemeProvider theme={parseTheme(globalTheme)}>
185
- <Form {...defaultProps} />
180
+ <Form {...makeProps({ header: 0, actions: { restorePageNavigationAction } })} />
186
181
  </ThemeProvider>,
187
182
  { store },
188
183
  );
@@ -190,16 +185,14 @@ describe("Form component rendering", () => {
190
185
  expect(screen.getByText(/This page doesn\'t have a header. Click/i)).toBeInTheDocument();
191
186
  const headerLink = screen.getByTestId("header-link");
192
187
  fireEvent.click(headerLink);
193
- expect(restorePageNavigationActionMock).toBeCalled();
194
- expect(restorePageNavigationActionMock).toBeCalledWith("header");
188
+ expect(restorePageNavigationAction).toBeCalled();
189
+ expect(restorePageNavigationAction).toBeCalledWith("header");
195
190
  });
196
191
 
197
192
  it("should render the component with no footer warning text", () => {
198
- defaultProps.footer = 0;
199
-
200
193
  render(
201
194
  <ThemeProvider theme={parseTheme(globalTheme)}>
202
- <Form {...defaultProps} />
195
+ <Form {...makeProps({ header: 0, footer: 0 })} />
203
196
  </ThemeProvider>,
204
197
  { store },
205
198
  );
@@ -208,11 +201,11 @@ describe("Form component rendering", () => {
208
201
  });
209
202
 
210
203
  it("should call the function to restore the header", () => {
211
- defaultProps.header = 0;
204
+ const restorePageNavigationAction = vi.fn();
212
205
 
213
206
  render(
214
207
  <ThemeProvider theme={parseTheme(globalTheme)}>
215
- <Form {...defaultProps} />
208
+ <Form {...makeProps({ header: 0, footer: 0, actions: { restorePageNavigationAction } })} />
216
209
  </ThemeProvider>,
217
210
  { store },
218
211
  );
@@ -220,17 +213,14 @@ describe("Form component rendering", () => {
220
213
  expect(screen.getByText(/This page doesn\'t have a header. Click/i)).toBeInTheDocument();
221
214
  const footerLink = screen.getByTestId("footer-link");
222
215
  fireEvent.click(footerLink);
223
- expect(restorePageNavigationActionMock).toBeCalled();
224
- expect(restorePageNavigationActionMock).toBeCalledWith("footer");
216
+ expect(restorePageNavigationAction).toBeCalled();
217
+ expect(restorePageNavigationAction).toBeCalledWith("footer");
225
218
  });
226
219
 
227
220
  it("should render the tabs", () => {
228
- defaultProps.isPage = true;
229
- defaultProps.isGlobal = true;
230
-
231
221
  render(
232
222
  <ThemeProvider theme={parseTheme(globalTheme)}>
233
- <Form {...defaultProps} />
223
+ <Form {...makeProps({ isPage: true, isGlobal: true, header: 0, footer: 0 })} />
234
224
  </ThemeProvider>,
235
225
  { store },
236
226
  );
@@ -1,4 +1,3 @@
1
- import type { MockedFunction } from "vitest";
2
1
  import * as React from "react";
3
2
 
4
3
  import { ThemeProvider } from "styled-components";
@@ -73,52 +72,57 @@ const initialStore = {
73
72
 
74
73
  const store = mockStore(initialStore);
75
74
 
76
- const defaultProps = mock<IHeaderProps>();
77
- defaultProps.actions = {
78
- duplicateModuleAction: vi.fn(),
79
- deleteModuleAction: vi.fn(),
80
- copyModuleAction: vi.fn(),
81
- };
82
- const setSelectedContentMock = defaultProps.setSelectedContent as MockedFunction<(editorID: number) => void>;
83
-
84
- defaultProps.schema = {
85
- title: "Header",
86
- component: "Header",
87
- type: "header",
88
- configTabs: [
75
+ const makeProps = (overrides: Partial<IHeaderProps> = {}): IHeaderProps =>
76
+ Object.assign(
77
+ mock<IHeaderProps>(),
89
78
  {
90
- title: "content",
91
- fields: [
79
+ actions: {
80
+ duplicateModuleAction: vi.fn(),
81
+ deleteModuleAction: vi.fn(),
82
+ copyModuleAction: vi.fn(),
83
+ },
84
+ schema: {
85
+ title: "Header",
86
+ component: "Header",
87
+ type: "header",
88
+ configTabs: [
89
+ {
90
+ title: "content",
91
+ fields: [
92
+ {
93
+ title: "Name",
94
+ key: "title",
95
+ type: "TextField",
96
+ mandatory: true,
97
+ },
98
+ ],
99
+ },
100
+ ],
101
+ schemaType: "module",
102
+ },
103
+ breadcrumb: [
92
104
  {
93
- title: "Name",
94
- key: "title",
95
- type: "TextField",
96
- mandatory: true,
105
+ editorID: 0,
106
+ component: "TextField",
107
+ displayName: "Texto",
97
108
  },
98
109
  ],
110
+ activatedModules: ["TextField"],
111
+ headerRef: { current: { offsetHeight: 63, offsetTop: 24 } } as React.RefObject<HTMLDivElement>,
112
+ // El proxy de `mock<T>()` solo materializa una prop cuando se accede a
113
+ // ella, y el spread de JSX únicamente copia las propias: los callbacks
114
+ // que el componente invoca tienen que estar puestos aquí.
115
+ setSelectedContent: vi.fn(),
116
+ setHeaderHeight: vi.fn(),
99
117
  },
100
- ],
101
- schemaType: "module",
102
- };
103
-
104
- defaultProps.breadcrumb = [
105
- {
106
- editorID: 0,
107
- component: "TextField",
108
- displayName: "Texto",
109
- },
110
- ];
111
-
112
- defaultProps.activatedModules = ["TextField"];
113
-
114
- defaultProps.headerRef = { current: { offsetHeight: 63, offsetTop: 24 } } as React.RefObject<HTMLDivElement>;
115
- const setHeaderHeightMock = defaultProps.setHeaderHeight as MockedFunction<(height: number) => void>;
118
+ overrides,
119
+ );
116
120
 
117
121
  describe("Header component rendering", () => {
118
122
  it("should render component", () => {
119
123
  render(
120
124
  <ThemeProvider theme={parseTheme(globalTheme)}>
121
- <Header {...defaultProps} />
125
+ <Header {...makeProps()} />
122
126
  </ThemeProvider>,
123
127
  { store },
124
128
  );
@@ -129,11 +133,9 @@ describe("Header component rendering", () => {
129
133
  });
130
134
 
131
135
  it("should render the actions menu when clicking the more info button", () => {
132
- defaultProps.selectedParent = [];
133
-
134
136
  render(
135
137
  <ThemeProvider theme={parseTheme(globalTheme)}>
136
- <Header {...defaultProps} />
138
+ <Header {...makeProps({ selectedParent: [] })} />
137
139
  </ThemeProvider>,
138
140
  { store },
139
141
  );
@@ -145,9 +147,11 @@ describe("Header component rendering", () => {
145
147
  });
146
148
 
147
149
  it("should trigger the duplicate action", () => {
150
+ const setSelectedContent = vi.fn();
151
+
148
152
  render(
149
153
  <ThemeProvider theme={parseTheme(globalTheme)}>
150
- <Header {...defaultProps} />
154
+ <Header {...makeProps({ selectedParent: [], setSelectedContent })} />
151
155
  </ThemeProvider>,
152
156
  { store },
153
157
  );
@@ -157,6 +161,6 @@ describe("Header component rendering", () => {
157
161
  const listItem = screen.getAllByTestId("action-menu-item");
158
162
  expect(listItem).toHaveLength(3);
159
163
  fireEvent.click(listItem[0]);
160
- expect(setSelectedContentMock).toBeCalled();
164
+ expect(setSelectedContent).toBeCalled();
161
165
  });
162
166
  });
@@ -11,13 +11,14 @@ import globalTheme from "@ax/themes/theme.json";
11
11
 
12
12
  afterEach(cleanup);
13
13
 
14
- const defaultProps = mock<IElementsTooltipProps>();
14
+ const makeProps = (overrides: Partial<IElementsTooltipProps> = {}): IElementsTooltipProps =>
15
+ Object.assign(mock<IElementsTooltipProps>(), overrides);
15
16
 
16
17
  describe("Tooltip component rendering", () => {
17
18
  it("should not render the component", () => {
18
19
  render(
19
20
  <ThemeProvider theme={parseTheme(globalTheme)}>
20
- <ElementsTooltip {...defaultProps} />
21
+ <ElementsTooltip {...makeProps()} />
21
22
  </ThemeProvider>,
22
23
  );
23
24
 
@@ -27,13 +28,9 @@ describe("Tooltip component rendering", () => {
27
28
  });
28
29
 
29
30
  it("should render the component with one element visible", async () => {
30
- defaultProps.elements = ["uno", "dos", "tres"];
31
- defaultProps.colors = { uno: "#fff" };
32
- defaultProps.rounded = true;
33
-
34
31
  render(
35
32
  <ThemeProvider theme={parseTheme(globalTheme)}>
36
- <ElementsTooltip {...defaultProps} />
33
+ <ElementsTooltip {...makeProps({ elements: ["uno", "dos", "tres"], colors: { uno: "#fff" }, rounded: true })} />
37
34
  </ThemeProvider>,
38
35
  );
39
36
 
@@ -59,13 +56,9 @@ describe("Tooltip component rendering", () => {
59
56
  });
60
57
 
61
58
  it("should render the component with three elements visibles", () => {
62
- defaultProps.elements = ["uno", "dos", "tres"];
63
- defaultProps.defaultElements = 3;
64
- defaultProps.maxChar = 1;
65
-
66
59
  render(
67
60
  <ThemeProvider theme={parseTheme(globalTheme)}>
68
- <ElementsTooltip {...defaultProps} />
61
+ <ElementsTooltip {...makeProps({ elements: ["uno", "dos", "tres"], defaultElements: 3, maxChar: 1 })} />
69
62
  </ThemeProvider>,
70
63
  );
71
64
 
@@ -79,13 +72,9 @@ describe("Tooltip component rendering", () => {
79
72
  });
80
73
 
81
74
  it("should render the component with one row", async () => {
82
- defaultProps.elements = ["uno", "dos", "tres"];
83
- defaultProps.defaultElements = 1;
84
- defaultProps.elementsPerRow = 3;
85
-
86
75
  render(
87
76
  <ThemeProvider theme={parseTheme(globalTheme)}>
88
- <ElementsTooltip {...defaultProps} />
77
+ <ElementsTooltip {...makeProps({ elements: ["uno", "dos", "tres"], defaultElements: 1, elementsPerRow: 3 })} />
89
78
  </ThemeProvider>,
90
79
  );
91
80
 
@@ -12,13 +12,17 @@ import globalTheme from "@ax/themes/theme.json";
12
12
 
13
13
  afterEach(cleanup);
14
14
 
15
- const defaultProps = mock<IEmptyStateProps>();
15
+ // Props nuevos en cada test: antes se compartía un solo objeto mutable y el
16
+ // primer test, que comprueba el estado por defecto, fallaba en cuanto los
17
+ // siguientes le habían puesto title, message o button.
18
+ const makeProps = (overrides: Partial<IEmptyStateProps> = {}): IEmptyStateProps =>
19
+ Object.assign(mock<IEmptyStateProps>(), overrides);
16
20
 
17
21
  describe("EmptyState component rendering", () => {
18
22
  it("should render the component", () => {
19
23
  render(
20
24
  <ThemeProvider theme={parseTheme(globalTheme)}>
21
- <EmptyState {...defaultProps} />
25
+ <EmptyState {...makeProps()} />
22
26
  </ThemeProvider>,
23
27
  );
24
28
 
@@ -28,10 +32,9 @@ describe("EmptyState component rendering", () => {
28
32
  });
29
33
 
30
34
  it("should render the component with title", () => {
31
- defaultProps.title = "The title";
32
35
  render(
33
36
  <ThemeProvider theme={parseTheme(globalTheme)}>
34
- <EmptyState {...defaultProps} />
37
+ <EmptyState {...makeProps({ title: "The title" })} />
35
38
  </ThemeProvider>,
36
39
  );
37
40
 
@@ -41,10 +44,9 @@ describe("EmptyState component rendering", () => {
41
44
  });
42
45
 
43
46
  it("should render the component with message", () => {
44
- defaultProps.message = "A message";
45
47
  render(
46
48
  <ThemeProvider theme={parseTheme(globalTheme)}>
47
- <EmptyState {...defaultProps} />
49
+ <EmptyState {...makeProps({ message: "A message" })} />
48
50
  </ThemeProvider>,
49
51
  );
50
52
 
@@ -57,12 +59,10 @@ describe("EmptyState component rendering", () => {
57
59
  describe("EmptyState component events", () => {
58
60
  it("should trigger the onClick", () => {
59
61
  const actionFunc = vi.fn();
60
- defaultProps.button = "A button";
61
- defaultProps.action = actionFunc;
62
62
 
63
63
  render(
64
64
  <ThemeProvider theme={parseTheme(globalTheme)}>
65
- <EmptyState {...defaultProps} />
65
+ <EmptyState {...makeProps({ button: "A button", action: actionFunc })} />
66
66
  </ThemeProvider>,
67
67
  );
68
68
 
@@ -12,7 +12,8 @@ import { mock } from "vitest-mock-extended";
12
12
 
13
13
  afterEach(cleanup);
14
14
 
15
- const defaultProps = mock<IAsyncSelectProps>();
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 {...defaultProps} />
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 {...defaultProps} />
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 {...defaultProps} />
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 {...defaultProps} />
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 {...defaultProps} />
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 {...defaultProps} />
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
  });