@griddo/ax 10.1.96 → 10.2.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 (201) hide show
  1. package/package.json +3 -2
  2. package/src/__mocks__/axios/Roles.ts +10 -0
  3. package/src/__mocks__/axios/UserList.ts +545 -0
  4. package/src/__mocks__/store/GenericStore.ts +25 -0
  5. package/src/__mocks__/store/Roles.ts +1050 -0
  6. package/src/__mocks__/store/SitesList.ts +7 -1
  7. package/src/__mocks__/store/UserList.ts +482 -0
  8. package/src/__mocks__/store/UsersCreate.ts +298 -0
  9. package/src/__tests__/components/Avatar/Avatar.test.tsx +49 -48
  10. package/src/__tests__/components/ConfigPanel/ConfigPanel.test.tsx +2 -0
  11. package/src/__tests__/components/ConfigPanel/Form/Form.test.tsx +2 -0
  12. package/src/__tests__/components/ConfigPanel/GlobalPageForm/GlobalPageForm.test.tsx +25 -0
  13. package/src/__tests__/components/Fields/Button/Button.test.tsx +2 -2
  14. package/src/__tests__/components/Fields/ImageField/ImageField.test.tsx +2 -0
  15. package/src/__tests__/components/Fields/IntegrationsField/IntegrationsField.test.tsx +44 -2
  16. package/src/__tests__/components/Fields/Tooltip/Tooltip.test.tsx +0 -1
  17. package/src/__tests__/components/Gallery/Gallery.test.tsx +4 -0
  18. package/src/__tests__/components/Gallery/GalleryPanel/DetailPanel/DetailPanel.test.tsx +14 -0
  19. package/src/__tests__/components/Gallery/GalleryPanel/GalleryPanel.test.tsx +2 -1
  20. package/src/__tests__/components/Lists/Lists.test.tsx +3 -3
  21. package/src/__tests__/components/Login/Login.test.tsx +1 -1
  22. package/src/__tests__/components/TableFilters/DateFilter/DateFilter.test.tsx +1 -1
  23. package/src/__tests__/components/TableFilters/NameFilter/NameFilter.test.tsx +1 -1
  24. package/src/__tests__/components/TableFilters/RoleFilter/RoleFilter.test.tsx +165 -0
  25. package/src/__tests__/components/TableFilters/StatusFilter/StatusFilter.test.tsx +2 -2
  26. package/src/__tests__/components/TableFilters/UsersFilter/UsersFilter.test.tsx +153 -0
  27. package/src/__tests__/components/Tabs/Tabs.test.tsx +1 -1
  28. package/src/__tests__/modules/Settings/Integrations/Integrations.test.tsx +6 -0
  29. package/src/__tests__/modules/Sites/Sites.test.tsx +2 -1
  30. package/src/__tests__/modules/Sites/SitesList/ListView/BulkHeader/BulkHeader.test.tsx +14 -5
  31. package/src/__tests__/modules/Sites/SitesList/SitesList.test.tsx +6 -4
  32. package/src/__tests__/modules/Users/Roles/BulkHeader/BulkHeader.test.tsx +158 -0
  33. package/src/__tests__/modules/Users/Roles/Roles.test.tsx +619 -0
  34. package/src/__tests__/modules/Users/UserCreate/SiteItem/RolesModal/RoleItem/RoleItem.test.tsx +107 -0
  35. package/src/__tests__/modules/Users/UserCreate/SiteItem/RolesModal/RolesModal.test.tsx +159 -0
  36. package/src/__tests__/modules/Users/UserCreate/SiteItem/SiteItem.test.tsx +175 -0
  37. package/src/__tests__/modules/Users/UserCreate/UserCreate.test.tsx +320 -0
  38. package/src/__tests__/modules/Users/UserList/UserItem/UserItem.test.tsx +417 -0
  39. package/src/__tests__/modules/Users/UserList/UserList.test.tsx +310 -0
  40. package/src/api/index.tsx +2 -0
  41. package/src/api/roles.tsx +77 -0
  42. package/src/api/users.tsx +22 -2
  43. package/src/components/ActionMenu/index.tsx +12 -6
  44. package/src/components/Avatar/index.tsx +5 -3
  45. package/src/components/Avatar/style.tsx +8 -9
  46. package/src/components/BulkSelectionOptions/index.tsx +19 -12
  47. package/src/components/BulkSelectionOptions/style.tsx +6 -11
  48. package/src/components/ConfigPanel/Form/index.tsx +24 -1
  49. package/src/components/ConfigPanel/GlobalPageForm/index.tsx +17 -4
  50. package/src/components/ElementsTooltip/index.tsx +1 -1
  51. package/src/components/Fields/IntegrationsField/index.tsx +5 -6
  52. package/src/components/Fields/RadioField/index.tsx +1 -1
  53. package/src/components/Fields/ReferenceField/AutoPanel/index.tsx +3 -3
  54. package/src/components/Fields/ReferenceField/ItemList/index.tsx +1 -1
  55. package/src/components/Fields/ReferenceField/ManualPanel/index.tsx +3 -3
  56. package/src/components/Fields/TagsField/index.tsx +4 -2
  57. package/src/components/Fields/TextField/index.tsx +3 -0
  58. package/src/components/Fields/UrlField/index.tsx +5 -5
  59. package/src/components/Gallery/GalleryPanel/DetailPanel/index.tsx +42 -15
  60. package/src/components/Gallery/GalleryPanel/GalleryDragAndDrop/index.tsx +1 -1
  61. package/src/components/Gallery/GalleryPanel/index.tsx +20 -5
  62. package/src/components/Gallery/index.tsx +12 -6
  63. package/src/components/Icon/index.tsx +9 -1
  64. package/src/components/MainWrapper/AppBar/atoms.tsx +2 -2
  65. package/src/components/MainWrapper/AppBar/index.tsx +12 -10
  66. package/src/components/MainWrapper/AppBar/style.tsx +2 -1
  67. package/src/components/Modal/style.tsx +2 -2
  68. package/src/components/Nav/index.tsx +12 -2
  69. package/src/components/PageFinder/index.tsx +2 -2
  70. package/src/components/SearchField/index.tsx +3 -8
  71. package/src/components/TableFilters/PermissionsFilter/index.tsx +50 -0
  72. package/src/{modules/Users/UserList/HeaderMenus/Name → components/TableFilters/PermissionsFilter}/style.tsx +6 -2
  73. package/src/components/TableFilters/RoleFilter/index.tsx +61 -0
  74. package/src/components/TableFilters/RoleFilter/style.tsx +28 -0
  75. package/src/components/TableFilters/UsersFilter/index.tsx +55 -0
  76. package/src/components/TableFilters/UsersFilter/style.tsx +31 -0
  77. package/src/components/TableFilters/index.tsx +6 -0
  78. package/src/components/TableList/TableItem/style.tsx +2 -2
  79. package/src/components/TableList/style.tsx +1 -1
  80. package/src/components/index.tsx +7 -1
  81. package/src/containers/App/actions.tsx +3 -3
  82. package/src/containers/PageEditor/actions.tsx +14 -20
  83. package/src/containers/Redirects/actions.tsx +1 -0
  84. package/src/containers/Sites/actions.tsx +22 -14
  85. package/src/containers/Sites/interfaces.tsx +3 -3
  86. package/src/containers/Sites/reducer.tsx +1 -1
  87. package/src/containers/StructuredData/actions.tsx +15 -3
  88. package/src/containers/Users/actions.tsx +160 -26
  89. package/src/containers/Users/constants.tsx +8 -10
  90. package/src/containers/Users/interfaces.tsx +25 -3
  91. package/src/containers/Users/reducer.tsx +24 -15
  92. package/src/guards/index.tsx +2 -1
  93. package/src/guards/restricted/index.tsx +21 -0
  94. package/src/hooks/index.tsx +3 -0
  95. package/src/hooks/users.tsx +38 -0
  96. package/src/modules/App/Routing/NavMenu/NavItem/index.tsx +10 -5
  97. package/src/modules/App/Routing/NavMenu/index.tsx +16 -7
  98. package/src/modules/App/Routing/PrivateRoute/index.tsx +13 -5
  99. package/src/modules/App/Routing/index.tsx +17 -6
  100. package/src/modules/Categories/CategoriesList/BulkHeader/TableHeader/style.tsx +1 -0
  101. package/src/modules/Categories/CategoriesList/BulkHeader/index.tsx +2 -10
  102. package/src/modules/Categories/CategoriesList/CategoryItem/index.tsx +27 -12
  103. package/src/modules/Categories/CategoriesList/CategoryItem/style.tsx +4 -2
  104. package/src/modules/Categories/CategoriesList/index.tsx +27 -8
  105. package/src/modules/Content/BulkHeader/index.tsx +7 -3
  106. package/src/modules/Content/PageImporter/index.tsx +1 -1
  107. package/src/modules/Content/PageItem/index.tsx +45 -31
  108. package/src/modules/Content/PageItem/style.tsx +2 -1
  109. package/src/modules/Content/index.tsx +22 -13
  110. package/src/modules/FramePreview/index.tsx +2 -2
  111. package/src/modules/GlobalEditor/index.tsx +68 -53
  112. package/src/modules/GlobalSettings/index.tsx +2 -0
  113. package/src/modules/Navigation/Defaults/BulkHeader/index.tsx +2 -10
  114. package/src/modules/Navigation/Defaults/DefaultsEditor/Editor/DefaultsBrowser/index.tsx +9 -11
  115. package/src/modules/Navigation/Defaults/DefaultsEditor/Editor/index.tsx +5 -1
  116. package/src/modules/Navigation/Defaults/DefaultsEditor/index.tsx +10 -5
  117. package/src/modules/Navigation/Defaults/Item/index.tsx +41 -27
  118. package/src/modules/Navigation/Defaults/Item/style.tsx +2 -1
  119. package/src/modules/Navigation/Defaults/index.tsx +29 -10
  120. package/src/modules/Navigation/Menus/List/Table/Header/index.tsx +7 -5
  121. package/src/modules/Navigation/Menus/List/Table/Item/index.tsx +10 -10
  122. package/src/modules/Navigation/Menus/List/Table/Item/style.tsx +2 -1
  123. package/src/modules/Navigation/Menus/List/index.tsx +6 -2
  124. package/src/modules/Navigation/Menus/index.tsx +12 -7
  125. package/src/modules/PageEditor/Editor/index.tsx +5 -1
  126. package/src/modules/PageEditor/PageBrowser/index.tsx +9 -3
  127. package/src/modules/PageEditor/index.tsx +67 -57
  128. package/src/modules/Redirects/index.tsx +97 -98
  129. package/src/modules/Settings/ContentTypes/DataPacks/AddModal/index.tsx +5 -1
  130. package/src/modules/Settings/ContentTypes/DataPacks/Config/Form/TemplateConfig/TemplateEditor/Editor/TemplateBrowser/index.tsx +8 -9
  131. package/src/modules/Settings/ContentTypes/DataPacks/Config/Form/index.tsx +7 -3
  132. package/src/modules/Settings/ContentTypes/DataPacks/Config/index.tsx +5 -1
  133. package/src/modules/Settings/ContentTypes/DataPacks/Item/index.tsx +5 -1
  134. package/src/modules/Settings/Integrations/BulkHeader/index.tsx +2 -17
  135. package/src/modules/Settings/Integrations/IntegrationForm/index.tsx +6 -2
  136. package/src/modules/Settings/Integrations/IntegrationItem/index.tsx +18 -8
  137. package/src/modules/Settings/Integrations/IntegrationItem/style.tsx +6 -3
  138. package/src/modules/Settings/Integrations/index.tsx +32 -7
  139. package/src/modules/Settings/Languages/LanguagePanel/index.tsx +6 -2
  140. package/src/modules/Settings/Languages/Table/Header/index.tsx +4 -2
  141. package/src/modules/Settings/Languages/Table/Item/index.tsx +19 -43
  142. package/src/modules/Settings/Languages/Table/Item/style.tsx +11 -54
  143. package/src/modules/Settings/Languages/index.tsx +2 -2
  144. package/src/modules/Settings/SeoAnalyticsSettings/Analytics/index.tsx +2 -4
  145. package/src/modules/Settings/SeoAnalyticsSettings/index.tsx +4 -2
  146. package/src/modules/Settings/Social/index.tsx +1 -1
  147. package/src/modules/Settings/index.tsx +17 -11
  148. package/src/modules/Sites/SitesList/GridView/GridSiteItem/index.tsx +31 -18
  149. package/src/modules/Sites/SitesList/ListView/BulkHeader/index.tsx +21 -12
  150. package/src/modules/Sites/SitesList/ListView/ListSiteItem/index.tsx +31 -18
  151. package/src/modules/Sites/SitesList/RecentSiteItem/index.tsx +1 -1
  152. package/src/modules/Sites/SitesList/index.tsx +16 -24
  153. package/src/modules/Sites/index.tsx +7 -3
  154. package/src/modules/StructuredData/Form/index.tsx +1 -1
  155. package/src/modules/StructuredData/StructuredDataList/BulkHeader/index.tsx +8 -5
  156. package/src/modules/StructuredData/StructuredDataList/ContentFilters/index.tsx +8 -5
  157. package/src/modules/StructuredData/StructuredDataList/GlobalPageItem/index.tsx +29 -15
  158. package/src/modules/StructuredData/StructuredDataList/StructuredDataItem/index.tsx +50 -19
  159. package/src/modules/StructuredData/StructuredDataList/index.tsx +9 -6
  160. package/src/modules/Users/Profile/index.tsx +16 -4
  161. package/src/modules/Users/Roles/BulkHeader/TableHeader/index.tsx +52 -0
  162. package/src/modules/Users/Roles/BulkHeader/TableHeader/style.tsx +43 -0
  163. package/src/modules/Users/Roles/BulkHeader/index.tsx +74 -0
  164. package/src/modules/Users/Roles/RoleItem/index.tsx +104 -0
  165. package/src/modules/Users/Roles/RoleItem/style.tsx +127 -0
  166. package/src/modules/Users/Roles/SideModal/index.tsx +81 -0
  167. package/src/modules/Users/Roles/SideModal/style.tsx +132 -0
  168. package/src/modules/Users/Roles/hooks.tsx +78 -0
  169. package/src/modules/Users/Roles/index.tsx +256 -0
  170. package/src/modules/Users/Roles/style.tsx +23 -0
  171. package/src/modules/Users/Roles/utils.tsx +12 -0
  172. package/src/modules/Users/UserCreate/OptionItem/index.tsx +45 -0
  173. package/src/modules/Users/UserCreate/OptionItem/style.tsx +48 -0
  174. package/src/modules/Users/UserCreate/SiteItem/RolesModal/RoleItem/index.tsx +48 -0
  175. package/src/modules/Users/UserCreate/SiteItem/RolesModal/RoleItem/style.tsx +42 -0
  176. package/src/modules/Users/UserCreate/SiteItem/RolesModal/index.tsx +140 -0
  177. package/src/modules/Users/UserCreate/SiteItem/RolesModal/style.tsx +94 -0
  178. package/src/modules/Users/UserCreate/SiteItem/index.tsx +103 -22
  179. package/src/modules/Users/UserCreate/SiteItem/style.tsx +49 -6
  180. package/src/modules/Users/UserCreate/index.tsx +278 -121
  181. package/src/modules/Users/UserCreate/style.tsx +71 -4
  182. package/src/modules/Users/UserEdit/index.tsx +71 -24
  183. package/src/modules/Users/UserForm/atoms.tsx +40 -8
  184. package/src/modules/Users/UserForm/index.tsx +335 -116
  185. package/src/modules/Users/UserForm/style.tsx +70 -6
  186. package/src/modules/Users/UserList/BulkHeader/TableHeader/index.tsx +61 -31
  187. package/src/modules/Users/UserList/BulkHeader/TableHeader/style.tsx +18 -4
  188. package/src/modules/Users/UserList/BulkHeader/index.tsx +10 -3
  189. package/src/modules/Users/UserList/UserItem/index.tsx +121 -38
  190. package/src/modules/Users/UserList/UserItem/style.tsx +32 -14
  191. package/src/modules/Users/UserList/hooks.tsx +13 -8
  192. package/src/modules/Users/UserList/index.tsx +67 -29
  193. package/src/modules/Users/UserList/utils.tsx +1 -1
  194. package/src/modules/Users/index.tsx +20 -3
  195. package/src/routes/index.tsx +9 -17
  196. package/src/routes/multisite.tsx +73 -8
  197. package/src/routes/site.tsx +96 -10
  198. package/src/types/index.tsx +42 -1
  199. package/tsconfig.paths.json +1 -0
  200. package/src/__tests__/components/Avatar/__snapshots__/Avatar.test.tsx.snap +0 -61
  201. package/src/modules/Users/UserList/HeaderMenus/Name/index.tsx +0 -55
@@ -0,0 +1,320 @@
1
+ import React from "react";
2
+ import axios, { AxiosResponse } from "axios";
3
+ import { ThemeProvider } from "styled-components";
4
+ import configureStore from "redux-mock-store";
5
+ import thunk from "redux-thunk";
6
+ import { Router } from "react-router-dom";
7
+ import { mock } from "jest-mock-extended";
8
+ import "@testing-library/jest-dom";
9
+ import { render, cleanup, screen, act } from "./../../../../../config/jest/test-utils";
10
+ import userEvent from "@testing-library/user-event";
11
+ import { createMemoryHistory } from "history";
12
+
13
+ import { parseTheme } from "@ax/helpers";
14
+ import globalTheme from "@ax/themes/theme.json";
15
+ import UserCreate, { IUserCreateProps } from "./../../../../modules/Users/UserCreate";
16
+
17
+ import {
18
+ usersStoreMock,
19
+ sitesStoreGlobalMock,
20
+ sitesStoreMock,
21
+ appStoreMock,
22
+ } from "../../../../__mocks__/store/UsersCreate";
23
+
24
+ jest.mock("axios");
25
+ const mockedAxios = axios as jest.MockedFunction<typeof axios>;
26
+
27
+ const middlewares: any = [thunk];
28
+ const mockStore = configureStore(middlewares);
29
+
30
+ const defaultProps = mock<IUserCreateProps>();
31
+
32
+ const user = userEvent.setup();
33
+
34
+ const history = createMemoryHistory();
35
+
36
+ afterEach(() => {
37
+ cleanup();
38
+ jest.clearAllMocks();
39
+ });
40
+
41
+ describe("UserCreate module rendering", () => {
42
+ it("should render the componets with not site view", async () => {
43
+ const initialStore = {
44
+ users: usersStoreMock,
45
+ sites: sitesStoreGlobalMock,
46
+ app: appStoreMock,
47
+ };
48
+
49
+ const store = mockStore(initialStore);
50
+
51
+ const Component = (
52
+ <Router history={history}>
53
+ <ThemeProvider theme={parseTheme(globalTheme)}>
54
+ <UserCreate {...defaultProps} />
55
+ </ThemeProvider>
56
+ </Router>
57
+ );
58
+
59
+ await act(async () => {
60
+ render(Component, { store });
61
+ });
62
+
63
+ const wrapper = screen.getByTestId("main-wrapper");
64
+ expect(wrapper).toBeTruthy();
65
+
66
+ const fields = screen.getAllByTestId("fields-behavior-wrapper");
67
+ expect(fields.length).toBe(2);
68
+
69
+ const siteList = screen.getByTestId("user-site-list");
70
+ expect(siteList).toBeTruthy();
71
+
72
+ const roleList = screen.queryByTestId("user-role-list");
73
+ expect(roleList).toBeFalsy();
74
+
75
+ const siteItems = screen.getAllByTestId("user-site-item");
76
+ expect(siteItems.length).toBe(4);
77
+
78
+ const siteItemsFeatured = screen.getAllByTestId("wrapper-cell-featured");
79
+ expect(siteItemsFeatured.length).toBe(2);
80
+
81
+ const searchField = screen.getByTestId("search-field-wrapper");
82
+ expect(searchField).toBeTruthy();
83
+ });
84
+
85
+ it("should render the componets with site view", async () => {
86
+ const initialStore = {
87
+ users: usersStoreMock,
88
+ sites: sitesStoreMock,
89
+ app: appStoreMock,
90
+ };
91
+
92
+ const store = mockStore(initialStore);
93
+
94
+ const Component = (
95
+ <Router history={history}>
96
+ <ThemeProvider theme={parseTheme(globalTheme)}>
97
+ <UserCreate {...defaultProps} />
98
+ </ThemeProvider>
99
+ </Router>
100
+ );
101
+
102
+ await act(async () => {
103
+ render(Component, { store });
104
+ });
105
+
106
+ const wrapper = screen.getByTestId("main-wrapper");
107
+ expect(wrapper).toBeTruthy();
108
+
109
+ const fields = screen.getAllByTestId("fields-behavior-wrapper");
110
+ expect(fields.length).toBe(2);
111
+
112
+ const siteList = screen.queryByTestId("user-site-list");
113
+ expect(siteList).toBeFalsy();
114
+
115
+ const roleList = screen.getByTestId("user-role-list");
116
+ expect(roleList).toBeTruthy();
117
+
118
+ const siteItems = screen.queryAllByTestId("user-site-item");
119
+ expect(siteItems.length).toBe(0);
120
+
121
+ const siteItemsFeatured = screen.queryAllByTestId("wrapper-cell-featured");
122
+ expect(siteItemsFeatured.length).toBe(0);
123
+
124
+ const searchField = screen.queryByTestId("search-field-wrapper");
125
+ expect(searchField).toBeFalsy();
126
+ });
127
+ });
128
+
129
+ describe("UserCreate module events", () => {
130
+ it("should change inputs", async () => {
131
+ const initialStore = {
132
+ users: usersStoreMock,
133
+ sites: sitesStoreGlobalMock,
134
+ app: appStoreMock,
135
+ };
136
+
137
+ const store = mockStore(initialStore);
138
+
139
+ const Component = (
140
+ <Router history={history}>
141
+ <ThemeProvider theme={parseTheme(globalTheme)}>
142
+ <UserCreate {...defaultProps} />
143
+ </ThemeProvider>
144
+ </Router>
145
+ );
146
+
147
+ await act(async () => {
148
+ render(Component, { store });
149
+ });
150
+
151
+ const inputName = screen.getByLabelText("name");
152
+ expect(inputName).toBeTruthy();
153
+ expect(inputName).toHaveValue("");
154
+
155
+ await user.type(inputName, "nombre test");
156
+ expect(inputName).toHaveValue("nombre test");
157
+
158
+ const inputEmail = screen.getByLabelText("email");
159
+ expect(inputEmail).toBeTruthy();
160
+ expect(inputEmail).toHaveValue("");
161
+
162
+ await user.type(inputEmail, "email@test.com");
163
+ expect(inputEmail).toHaveValue("email@test.com");
164
+ });
165
+
166
+ it("should show error if user exists", async () => {
167
+ const initialStore = {
168
+ users: usersStoreMock,
169
+ sites: sitesStoreMock,
170
+ app: appStoreMock,
171
+ };
172
+
173
+ const store = mockStore(initialStore);
174
+
175
+ const Component = (
176
+ <Router history={history}>
177
+ <ThemeProvider theme={parseTheme(globalTheme)}>
178
+ <UserCreate {...defaultProps} />
179
+ </ThemeProvider>
180
+ </Router>
181
+ );
182
+
183
+ await act(async () => {
184
+ render(Component, { store });
185
+ });
186
+
187
+ const inputName = screen.getByLabelText("name");
188
+ await user.type(inputName, "nombre test");
189
+ const inputEmail = screen.getByLabelText("email");
190
+ await user.type(inputEmail, "admin@secuoyas.com");
191
+
192
+ expect(screen.queryByTestId("user-notification-wrapper")).toBeFalsy();
193
+
194
+ const addButton = screen.getByText("Add User");
195
+ await user.click(addButton);
196
+ const createButton = screen.getByText("Create User");
197
+ await user.click(createButton);
198
+
199
+ expect(screen.getByTestId("user-notification-wrapper")).toBeTruthy();
200
+ });
201
+
202
+ it("should update user if not exists in site", async () => {
203
+ const mockedResponse: AxiosResponse = {
204
+ data: [],
205
+ status: 200,
206
+ statusText: "OK",
207
+ headers: {},
208
+ config: {},
209
+ };
210
+
211
+ mockedAxios.mockResolvedValueOnce(mockedResponse);
212
+
213
+ const initialStore = {
214
+ users: usersStoreMock,
215
+ sites: sitesStoreMock,
216
+ app: appStoreMock,
217
+ };
218
+
219
+ const store = mockStore(initialStore);
220
+
221
+ const Component = (
222
+ <Router history={history}>
223
+ <ThemeProvider theme={parseTheme(globalTheme)}>
224
+ <UserCreate {...defaultProps} />
225
+ </ThemeProvider>
226
+ </Router>
227
+ );
228
+
229
+ await act(async () => {
230
+ render(Component, { store });
231
+ });
232
+
233
+ const inputName = screen.getByLabelText("name");
234
+ await user.type(inputName, "nombre test");
235
+ const inputEmail = screen.getByLabelText("email");
236
+ await user.type(inputEmail, "prueba@secuoyas.com");
237
+
238
+ const addButton = screen.getByText("Add User");
239
+ await user.click(addButton);
240
+
241
+ const createButton = screen.getByText("Create User");
242
+ await user.click(createButton);
243
+
244
+ expect(axios).toHaveBeenCalled();
245
+ });
246
+
247
+ it("should create user if in global", async () => {
248
+ const mockedResponse: AxiosResponse = {
249
+ data: [],
250
+ status: 200,
251
+ statusText: "OK",
252
+ headers: {},
253
+ config: {},
254
+ };
255
+
256
+ mockedAxios.mockResolvedValue(mockedResponse);
257
+
258
+ const initialStore = {
259
+ users: usersStoreMock,
260
+ sites: sitesStoreGlobalMock,
261
+ app: appStoreMock,
262
+ };
263
+
264
+ const store = mockStore(initialStore);
265
+
266
+ const Component = (
267
+ <Router history={history}>
268
+ <ThemeProvider theme={parseTheme(globalTheme)}>
269
+ <UserCreate {...defaultProps} />
270
+ </ThemeProvider>
271
+ </Router>
272
+ );
273
+
274
+ await act(async () => {
275
+ render(Component, { store });
276
+ });
277
+
278
+ const inputName = screen.getByLabelText("name");
279
+ await user.type(inputName, "nombre test");
280
+ const inputEmail = screen.getByLabelText("email");
281
+ await user.type(inputEmail, "prueba@secuoyas.com");
282
+ const allCheck = screen.getByLabelText("Access to All Sites");
283
+ await user.click(allCheck);
284
+
285
+ const addButton = screen.getByText("Add User");
286
+ await user.click(addButton);
287
+
288
+ expect(axios).toBeCalledTimes(1);
289
+ });
290
+
291
+ it("should disable site checks if all check is checked", async () => {
292
+ const initialStore = {
293
+ users: usersStoreMock,
294
+ sites: sitesStoreGlobalMock,
295
+ app: appStoreMock,
296
+ };
297
+
298
+ const store = mockStore(initialStore);
299
+
300
+ const Component = (
301
+ <Router history={history}>
302
+ <ThemeProvider theme={parseTheme(globalTheme)}>
303
+ <UserCreate {...defaultProps} />
304
+ </ThemeProvider>
305
+ </Router>
306
+ );
307
+
308
+ await act(async () => {
309
+ render(Component, { store });
310
+ });
311
+
312
+ const allCheck = screen.getByLabelText("Access to All Sites");
313
+ const siteCheck = screen.getByLabelText("Site 1");
314
+ expect(siteCheck).not.toBeDisabled();
315
+
316
+ await user.click(allCheck);
317
+
318
+ expect(siteCheck).toBeDisabled();
319
+ });
320
+ });