@strapi/plugin-documentation 5.0.0-beta.0 → 5.0.0-beta.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.
Files changed (184) hide show
  1. package/README.md +0 -1
  2. package/dist/_chunks/{index-7xstUX8_.mjs → App-ig-uE4do.mjs} +48 -14
  3. package/dist/_chunks/App-ig-uE4do.mjs.map +1 -0
  4. package/dist/_chunks/{index-D1KkfApT.js → App-o4uH8gaQ.js} +73 -20
  5. package/dist/_chunks/App-o4uH8gaQ.js.map +1 -0
  6. package/dist/_chunks/{index-VpLAJXMs.mjs → Settings-3hsPOP_b.mjs} +64 -33
  7. package/dist/_chunks/Settings-3hsPOP_b.mjs.map +1 -0
  8. package/dist/_chunks/{index-NbPCucJl.js → Settings-XmOzLTUn.js} +69 -37
  9. package/dist/_chunks/Settings-XmOzLTUn.js.map +1 -0
  10. package/dist/_chunks/getTrad-bnElvR8_.js +5 -0
  11. package/dist/_chunks/getTrad-bnElvR8_.js.map +1 -0
  12. package/dist/_chunks/getTrad-md7Tjpcv.mjs +6 -0
  13. package/dist/_chunks/getTrad-md7Tjpcv.mjs.map +1 -0
  14. package/{server/public/index.html → dist/_chunks/index-MKWIGajW.mjs} +9 -4
  15. package/dist/_chunks/index-MKWIGajW.mjs.map +1 -0
  16. package/dist/_chunks/index-WbbYm9_u.js +75 -0
  17. package/dist/_chunks/index-WbbYm9_u.js.map +1 -0
  18. package/dist/_chunks/{index-NvJ4m2q5.mjs → index-jpDwTC-Q.mjs} +121 -117
  19. package/dist/_chunks/index-jpDwTC-Q.mjs.map +1 -0
  20. package/dist/_chunks/{index-r7HsQTou.js → index-vNbIS1u2.js} +119 -115
  21. package/dist/_chunks/index-vNbIS1u2.js.map +1 -0
  22. package/dist/_chunks/login-HAajOKpu.js +150 -0
  23. package/dist/_chunks/login-HAajOKpu.js.map +1 -0
  24. package/{server/public/login.html → dist/_chunks/login-slUa679p.mjs} +6 -1
  25. package/dist/_chunks/login-slUa679p.mjs.map +1 -0
  26. package/dist/admin/index.js +1 -1
  27. package/dist/admin/index.mjs +2 -2
  28. package/dist/admin/src/components/SettingsForm.d.ts +8 -0
  29. package/dist/admin/src/constants.d.ts +18 -0
  30. package/dist/admin/src/index.d.ts +14 -0
  31. package/dist/admin/src/pages/App.d.ts +2 -0
  32. package/dist/admin/src/pages/Settings.d.ts +2 -0
  33. package/dist/admin/src/pluginId.d.ts +1 -0
  34. package/dist/admin/src/services/api.d.ts +25 -0
  35. package/dist/admin/src/types.d.ts +16 -0
  36. package/dist/admin/src/utils/baseQuery.d.ts +20 -0
  37. package/dist/admin/src/utils/getTrad.d.ts +1 -0
  38. package/dist/admin/src/utils/index.d.ts +2 -0
  39. package/dist/admin/src/utils/prefixPluginTranslations.d.ts +2 -0
  40. package/dist/server/index.js +1263 -0
  41. package/dist/server/index.js.map +1 -0
  42. package/dist/server/index.mjs +1238 -0
  43. package/dist/server/index.mjs.map +1 -0
  44. package/dist/server/src/bootstrap.d.ts +5 -0
  45. package/dist/server/src/bootstrap.d.ts.map +1 -0
  46. package/dist/server/src/config/default-plugin-config.d.ts +3 -0
  47. package/dist/server/src/config/default-plugin-config.d.ts.map +1 -0
  48. package/dist/server/src/config/index.d.ts +4 -0
  49. package/dist/server/src/config/index.d.ts.map +1 -0
  50. package/dist/server/src/controllers/documentation.d.ts +12 -0
  51. package/dist/server/src/controllers/documentation.d.ts.map +1 -0
  52. package/dist/server/src/controllers/index.d.ts +14 -0
  53. package/dist/server/src/controllers/index.d.ts.map +1 -0
  54. package/dist/server/src/index.d.ts +91 -0
  55. package/dist/server/src/index.d.ts.map +1 -0
  56. package/dist/server/src/middlewares/documentation.d.ts +5 -0
  57. package/dist/server/src/middlewares/documentation.d.ts.map +1 -0
  58. package/dist/server/src/middlewares/restrict-access.d.ts +4 -0
  59. package/dist/server/src/middlewares/restrict-access.d.ts.map +1 -0
  60. package/dist/server/src/register.d.ts +5 -0
  61. package/dist/server/src/register.d.ts.map +1 -0
  62. package/dist/server/src/routes/index.d.ts +36 -0
  63. package/dist/server/src/routes/index.d.ts.map +1 -0
  64. package/dist/server/src/services/__mocks__/mock-content-types.d.ts +449 -0
  65. package/dist/server/src/services/__mocks__/mock-content-types.d.ts.map +1 -0
  66. package/dist/server/src/services/__mocks__/mock-strapi-data.d.ts +592 -0
  67. package/dist/server/src/services/__mocks__/mock-strapi-data.d.ts.map +1 -0
  68. package/dist/server/src/services/documentation.d.ts +36 -0
  69. package/dist/server/src/services/documentation.d.ts.map +1 -0
  70. package/dist/server/src/services/helpers/build-api-endpoint-path.d.ts +7 -0
  71. package/dist/server/src/services/helpers/build-api-endpoint-path.d.ts.map +1 -0
  72. package/dist/server/src/services/helpers/build-component-schema.d.ts +4 -0
  73. package/dist/server/src/services/helpers/build-component-schema.d.ts.map +1 -0
  74. package/dist/server/src/services/helpers/index.d.ts +4 -0
  75. package/dist/server/src/services/helpers/index.d.ts.map +1 -0
  76. package/dist/server/src/services/helpers/utils/clean-schema-attributes.d.ts +15 -0
  77. package/dist/server/src/services/helpers/utils/clean-schema-attributes.d.ts.map +1 -0
  78. package/dist/server/src/services/helpers/utils/get-api-responses.d.ts +15 -0
  79. package/dist/server/src/services/helpers/utils/get-api-responses.d.ts.map +1 -0
  80. package/dist/server/src/services/helpers/utils/get-schema-data.d.ts +12 -0
  81. package/dist/server/src/services/helpers/utils/get-schema-data.d.ts.map +1 -0
  82. package/dist/server/src/services/helpers/utils/loop-content-type-names.d.ts +7 -0
  83. package/dist/server/src/services/helpers/utils/loop-content-type-names.d.ts.map +1 -0
  84. package/dist/server/src/services/helpers/utils/pascal-case.d.ts +3 -0
  85. package/dist/server/src/services/helpers/utils/pascal-case.d.ts.map +1 -0
  86. package/dist/server/src/services/helpers/utils/query-params.d.ts +4 -0
  87. package/dist/server/src/services/helpers/utils/query-params.d.ts.map +1 -0
  88. package/dist/server/src/services/helpers/utils/routes.d.ts +3 -0
  89. package/dist/server/src/services/helpers/utils/routes.d.ts.map +1 -0
  90. package/dist/server/src/services/index.d.ts +43 -0
  91. package/dist/server/src/services/index.d.ts.map +1 -0
  92. package/dist/server/src/services/override.d.ts +21 -0
  93. package/dist/server/src/services/override.d.ts.map +1 -0
  94. package/dist/server/src/services/utils/get-plugins-that-need-documentation.d.ts +4 -0
  95. package/dist/server/src/services/utils/get-plugins-that-need-documentation.d.ts.map +1 -0
  96. package/dist/server/src/types.d.ts +28 -0
  97. package/dist/server/src/types.d.ts.map +1 -0
  98. package/dist/server/src/utils.d.ts +12 -0
  99. package/dist/server/src/utils.d.ts.map +1 -0
  100. package/package.json +33 -15
  101. package/strapi-server.js +1 -1
  102. package/.eslintignore +0 -1
  103. package/.eslintrc +0 -17
  104. package/admin/src/constants.js +0 -17
  105. package/admin/src/hooks/useDocumentation.js +0 -81
  106. package/admin/src/index.js +0 -62
  107. package/admin/src/pages/PluginPage/index.jsx +0 -212
  108. package/admin/src/pages/PluginPage/tests/index.test.jsx +0 -160
  109. package/admin/src/pages/SettingsPage/index.jsx +0 -202
  110. package/admin/src/pages/SettingsPage/tests/index.test.jsx +0 -72
  111. package/admin/src/pluginId.js +0 -5
  112. package/admin/src/translations/ar.json +0 -20
  113. package/admin/src/translations/cs.json +0 -21
  114. package/admin/src/translations/de.json +0 -26
  115. package/admin/src/translations/dk.json +0 -39
  116. package/admin/src/translations/en.json +0 -39
  117. package/admin/src/translations/es.json +0 -39
  118. package/admin/src/translations/fr.json +0 -26
  119. package/admin/src/translations/id.json +0 -24
  120. package/admin/src/translations/it.json +0 -26
  121. package/admin/src/translations/ko.json +0 -39
  122. package/admin/src/translations/ms.json +0 -23
  123. package/admin/src/translations/nl.json +0 -21
  124. package/admin/src/translations/pl.json +0 -39
  125. package/admin/src/translations/pt-BR.json +0 -21
  126. package/admin/src/translations/pt.json +0 -21
  127. package/admin/src/translations/ru.json +0 -39
  128. package/admin/src/translations/sk.json +0 -24
  129. package/admin/src/translations/sv.json +0 -39
  130. package/admin/src/translations/th.json +0 -24
  131. package/admin/src/translations/tr.json +0 -39
  132. package/admin/src/translations/uk.json +0 -23
  133. package/admin/src/translations/vi.json +0 -24
  134. package/admin/src/translations/zh-Hans.json +0 -28
  135. package/admin/src/translations/zh.json +0 -39
  136. package/admin/src/utils/getTrad.js +0 -5
  137. package/admin/src/utils/index.js +0 -2
  138. package/admin/src/utils/prefixPluginTranslations.js +0 -13
  139. package/dist/_chunks/index-7xstUX8_.mjs.map +0 -1
  140. package/dist/_chunks/index-D1KkfApT.js.map +0 -1
  141. package/dist/_chunks/index-NbPCucJl.js.map +0 -1
  142. package/dist/_chunks/index-NvJ4m2q5.mjs.map +0 -1
  143. package/dist/_chunks/index-VpLAJXMs.mjs.map +0 -1
  144. package/dist/_chunks/index-r7HsQTou.js.map +0 -1
  145. package/dist/_chunks/useDocumentation-6Ks-_Ms6.mjs +0 -68
  146. package/dist/_chunks/useDocumentation-6Ks-_Ms6.mjs.map +0 -1
  147. package/dist/_chunks/useDocumentation-S0e4mU-U.js +0 -67
  148. package/dist/_chunks/useDocumentation-S0e4mU-U.js.map +0 -1
  149. package/jest.config.front.js +0 -7
  150. package/jest.config.js +0 -6
  151. package/packup.config.ts +0 -22
  152. package/server/bootstrap.js +0 -54
  153. package/server/config/default-plugin-config.js +0 -35
  154. package/server/config/index.js +0 -7
  155. package/server/controllers/documentation.js +0 -241
  156. package/server/controllers/index.js +0 -7
  157. package/server/index.js +0 -17
  158. package/server/middlewares/documentation.js +0 -25
  159. package/server/middlewares/index.js +0 -7
  160. package/server/middlewares/restrict-access.js +0 -24
  161. package/server/register.js +0 -11
  162. package/server/routes/index.js +0 -84
  163. package/server/services/__mocks__/mock-content-types.js +0 -264
  164. package/server/services/__mocks__/mock-strapi-data.js +0 -183
  165. package/server/services/__tests__/build-component-schema.test.js +0 -761
  166. package/server/services/__tests__/documentation.test.js +0 -481
  167. package/server/services/__tests__/override.test.js +0 -85
  168. package/server/services/documentation.js +0 -246
  169. package/server/services/helpers/build-api-endpoint-path.js +0 -186
  170. package/server/services/helpers/build-component-schema.js +0 -254
  171. package/server/services/helpers/index.js +0 -9
  172. package/server/services/helpers/utils/clean-schema-attributes.js +0 -246
  173. package/server/services/helpers/utils/get-api-responses.js +0 -105
  174. package/server/services/helpers/utils/get-schema-data.js +0 -32
  175. package/server/services/helpers/utils/loop-content-type-names.js +0 -55
  176. package/server/services/helpers/utils/pascal-case.js +0 -9
  177. package/server/services/helpers/utils/query-params.js +0 -105
  178. package/server/services/helpers/utils/routes.js +0 -10
  179. package/server/services/index.js +0 -9
  180. package/server/services/override.js +0 -52
  181. package/server/services/utils/default-openapi-components.js +0 -40
  182. package/server/services/utils/get-plugins-that-need-documentation.js +0 -24
  183. package/tests/server.js +0 -37
  184. package/tests/setup.js +0 -15
@@ -1,761 +0,0 @@
1
- 'use strict';
2
-
3
- const _ = require('lodash/fp');
4
- const buildComponentSchema = require('../helpers/build-component-schema');
5
-
6
- const strapi = {
7
- plugins: {
8
- 'users-permissions': {
9
- contentTypes: {
10
- role: {
11
- attributes: {
12
- test: {
13
- type: 'string',
14
- },
15
- },
16
- },
17
- },
18
- routes: {
19
- 'content-api': {
20
- routes: [],
21
- },
22
- },
23
- },
24
- },
25
- api: {
26
- restaurant: {
27
- contentTypes: {
28
- restaurant: {
29
- attributes: {
30
- test: {
31
- type: 'string',
32
- },
33
- },
34
- },
35
- },
36
- routes: {
37
- restaurant: { routes: [] },
38
- },
39
- },
40
- },
41
- contentType: () => ({ info: {}, attributes: { test: { type: 'string' } } }),
42
- };
43
-
44
- describe('Documentation plugin | Build component schema', () => {
45
- beforeEach(() => {
46
- // Reset the mocked strapi instance
47
- global.strapi = _.cloneDeep(strapi);
48
- });
49
-
50
- afterAll(() => {
51
- // Teardown the mocked strapi instance
52
- global.strapi = {};
53
- });
54
-
55
- it('builds the Response schema', () => {
56
- const apiMocks = [
57
- {
58
- name: 'users-permissions',
59
- getter: 'plugin',
60
- ctNames: ['role'],
61
- },
62
- { name: 'restaurant', getter: 'api', ctNames: ['restaurant'] },
63
- ];
64
-
65
- let schemas = {};
66
- for (const mock of apiMocks) {
67
- schemas = {
68
- ...schemas,
69
- ...buildComponentSchema(mock),
70
- };
71
- }
72
-
73
- const expectedSchemas = {
74
- UsersPermissionsRole: {
75
- type: 'object',
76
- properties: {
77
- test: { type: 'string' },
78
- },
79
- },
80
- UsersPermissionsRoleResponseDataObject: {
81
- type: 'object',
82
- properties: {
83
- id: {
84
- type: 'number',
85
- },
86
- attributes: {
87
- $ref: '#/components/schemas/UsersPermissionsRole',
88
- },
89
- },
90
- },
91
- UsersPermissionsRoleResponse: {
92
- type: 'object',
93
- properties: {
94
- data: {
95
- $ref: '#/components/schemas/UsersPermissionsRoleResponseDataObject',
96
- },
97
- meta: {
98
- type: 'object',
99
- },
100
- },
101
- },
102
- Restaurant: {
103
- type: 'object',
104
- properties: {
105
- test: { type: 'string' },
106
- },
107
- },
108
- RestaurantResponseDataObject: {
109
- type: 'object',
110
- properties: {
111
- id: {
112
- type: 'number',
113
- },
114
- attributes: {
115
- $ref: '#/components/schemas/Restaurant',
116
- },
117
- },
118
- },
119
- RestaurantResponse: {
120
- type: 'object',
121
- properties: {
122
- data: {
123
- $ref: '#/components/schemas/RestaurantResponseDataObject',
124
- },
125
- meta: {
126
- type: 'object',
127
- },
128
- },
129
- },
130
- };
131
-
132
- expect(schemas).toStrictEqual(expectedSchemas);
133
- });
134
-
135
- it('builds the ResponseList schema', () => {
136
- global.strapi.plugins['users-permissions'].routes['content-api'].routes = [
137
- { method: 'GET', path: '/test', handler: 'test.find' },
138
- ];
139
- global.strapi.api.restaurant.routes.restaurant.routes = [
140
- { method: 'GET', path: '/test', handler: 'test.find' },
141
- ];
142
-
143
- const apiMocks = [
144
- {
145
- name: 'users-permissions',
146
- getter: 'plugin',
147
- ctNames: ['role'],
148
- },
149
- { name: 'restaurant', getter: 'api', ctNames: ['restaurant'] },
150
- ];
151
-
152
- let schemas = {};
153
- for (const mock of apiMocks) {
154
- schemas = {
155
- ...schemas,
156
- ...buildComponentSchema(mock),
157
- };
158
- }
159
-
160
- const expectedSchemas = {
161
- UsersPermissionsRole: {
162
- type: 'object',
163
- properties: {
164
- test: { type: 'string' },
165
- },
166
- },
167
- UsersPermissionsRoleListResponseDataItem: {
168
- type: 'object',
169
- properties: {
170
- id: {
171
- type: 'number',
172
- },
173
- attributes: {
174
- $ref: '#/components/schemas/UsersPermissionsRole',
175
- },
176
- },
177
- },
178
- UsersPermissionsRoleListResponse: {
179
- type: 'object',
180
- properties: {
181
- data: {
182
- type: 'array',
183
- items: {
184
- $ref: '#/components/schemas/UsersPermissionsRoleListResponseDataItem',
185
- },
186
- },
187
- meta: {
188
- type: 'object',
189
- properties: {
190
- pagination: {
191
- type: 'object',
192
- properties: {
193
- page: {
194
- type: 'integer',
195
- },
196
- pageSize: {
197
- type: 'integer',
198
- minimum: 25,
199
- },
200
- pageCount: {
201
- type: 'integer',
202
- maximum: 1,
203
- },
204
- total: {
205
- type: 'integer',
206
- },
207
- },
208
- },
209
- },
210
- },
211
- },
212
- },
213
- UsersPermissionsRoleResponseDataObject: {
214
- type: 'object',
215
- properties: {
216
- id: {
217
- type: 'number',
218
- },
219
- attributes: {
220
- $ref: '#/components/schemas/UsersPermissionsRole',
221
- },
222
- },
223
- },
224
- UsersPermissionsRoleResponse: {
225
- type: 'object',
226
- properties: {
227
- data: {
228
- $ref: '#/components/schemas/UsersPermissionsRoleResponseDataObject',
229
- },
230
- meta: {
231
- type: 'object',
232
- },
233
- },
234
- },
235
- RestaurantListResponseDataItem: {
236
- type: 'object',
237
- properties: {
238
- id: {
239
- type: 'number',
240
- },
241
- attributes: {
242
- $ref: '#/components/schemas/Restaurant',
243
- },
244
- },
245
- },
246
- RestaurantListResponse: {
247
- type: 'object',
248
- properties: {
249
- data: {
250
- type: 'array',
251
- items: {
252
- $ref: '#/components/schemas/RestaurantListResponseDataItem',
253
- },
254
- },
255
- meta: {
256
- type: 'object',
257
- properties: {
258
- pagination: {
259
- type: 'object',
260
- properties: {
261
- page: {
262
- type: 'integer',
263
- },
264
- pageSize: {
265
- type: 'integer',
266
- minimum: 25,
267
- },
268
- pageCount: {
269
- type: 'integer',
270
- maximum: 1,
271
- },
272
- total: {
273
- type: 'integer',
274
- },
275
- },
276
- },
277
- },
278
- },
279
- },
280
- },
281
- RestaurantResponseDataObject: {
282
- type: 'object',
283
- properties: {
284
- id: {
285
- type: 'number',
286
- },
287
- attributes: {
288
- $ref: '#/components/schemas/Restaurant',
289
- },
290
- },
291
- },
292
- RestaurantResponse: {
293
- type: 'object',
294
- properties: {
295
- data: {
296
- $ref: '#/components/schemas/RestaurantResponseDataObject',
297
- },
298
- meta: {
299
- type: 'object',
300
- },
301
- },
302
- },
303
- Restaurant: {
304
- type: 'object',
305
- properties: {
306
- test: { type: 'string' },
307
- },
308
- },
309
- };
310
-
311
- expect(schemas).toStrictEqual(expectedSchemas);
312
- });
313
-
314
- it('builds the Request schema', () => {
315
- global.strapi.plugins['users-permissions'].routes['content-api'].routes = [
316
- { method: 'POST', path: '/test', handler: 'test.create' },
317
- ];
318
- global.strapi.api.restaurant.routes.restaurant.routes = [
319
- { method: 'POST', path: '/test', handler: 'test.create' },
320
- ];
321
-
322
- const apiMocks = [
323
- {
324
- name: 'users-permissions',
325
- getter: 'plugin',
326
- ctNames: ['role'],
327
- },
328
- { name: 'restaurant', getter: 'api', ctNames: ['restaurant'] },
329
- ];
330
-
331
- let schemas = {};
332
- for (const mock of apiMocks) {
333
- schemas = {
334
- ...schemas,
335
- ...buildComponentSchema(mock),
336
- };
337
- }
338
- // Just get the request objects
339
- const requestObjectsSchemas = Object.entries(schemas).reduce((acc, curr) => {
340
- const [key, val] = curr;
341
- if (key.endsWith('Request')) {
342
- acc[key] = val;
343
- }
344
-
345
- return acc;
346
- }, {});
347
-
348
- const expectedSchemas = {
349
- UsersPermissionsRoleRequest: {
350
- type: 'object',
351
- required: ['data'],
352
- properties: {
353
- data: {
354
- type: 'object',
355
- properties: {
356
- test: {
357
- type: 'string',
358
- },
359
- },
360
- },
361
- },
362
- },
363
- RestaurantRequest: {
364
- type: 'object',
365
- required: ['data'],
366
- properties: {
367
- data: {
368
- type: 'object',
369
- properties: {
370
- test: {
371
- type: 'string',
372
- },
373
- },
374
- },
375
- },
376
- },
377
- };
378
-
379
- expect(requestObjectsSchemas).toStrictEqual(expectedSchemas);
380
- });
381
-
382
- it('builds the LocalizationResponse schema', () => {
383
- global.strapi.plugins['users-permissions'].routes['content-api'].routes = [
384
- { method: 'GET', path: '/localizations', handler: 'test' },
385
- { method: 'GET', path: '/test', handler: 'test.find' },
386
- ];
387
- global.strapi.api.restaurant.routes.restaurant.routes = [
388
- { method: 'GET', path: '/localizations', handler: 'test' },
389
- { method: 'GET', path: '/test', handler: 'test.find' },
390
- ];
391
-
392
- const apiMocks = [
393
- {
394
- name: 'users-permissions',
395
- getter: 'plugin',
396
- ctNames: ['role'],
397
- },
398
- { name: 'restaurant', getter: 'api', ctNames: ['restaurant'] },
399
- ];
400
-
401
- let schemas = {};
402
- for (const mock of apiMocks) {
403
- schemas = {
404
- ...schemas,
405
- ...buildComponentSchema(mock),
406
- };
407
- }
408
-
409
- const expectedSchemas = {
410
- UsersPermissionsRole: {
411
- type: 'object',
412
- properties: {
413
- test: { type: 'string' },
414
- },
415
- },
416
- UsersPermissionsRoleListResponseDataItem: {
417
- type: 'object',
418
- properties: {
419
- id: {
420
- type: 'number',
421
- },
422
- attributes: {
423
- $ref: '#/components/schemas/UsersPermissionsRole',
424
- },
425
- },
426
- },
427
- UsersPermissionsRoleListResponseDataItemLocalized: {
428
- type: 'object',
429
- properties: {
430
- id: {
431
- type: 'number',
432
- },
433
- attributes: {
434
- $ref: '#/components/schemas/UsersPermissionsRole',
435
- },
436
- },
437
- },
438
- UsersPermissionsRoleListResponse: {
439
- type: 'object',
440
- properties: {
441
- data: {
442
- type: 'array',
443
- items: {
444
- $ref: '#/components/schemas/UsersPermissionsRoleListResponseDataItem',
445
- },
446
- },
447
- meta: {
448
- type: 'object',
449
- properties: {
450
- pagination: {
451
- type: 'object',
452
- properties: {
453
- page: {
454
- type: 'integer',
455
- },
456
- pageSize: {
457
- type: 'integer',
458
- minimum: 25,
459
- },
460
- pageCount: {
461
- type: 'integer',
462
- maximum: 1,
463
- },
464
- total: {
465
- type: 'integer',
466
- },
467
- },
468
- },
469
- },
470
- },
471
- },
472
- },
473
- UsersPermissionsRoleLocalizationListResponse: {
474
- type: 'object',
475
- properties: {
476
- data: {
477
- type: 'array',
478
- items: {
479
- $ref: '#/components/schemas/UsersPermissionsRoleListResponseDataItemLocalized',
480
- },
481
- },
482
- meta: {
483
- type: 'object',
484
- properties: {
485
- pagination: {
486
- type: 'object',
487
- properties: {
488
- page: {
489
- type: 'integer',
490
- },
491
- pageSize: {
492
- type: 'integer',
493
- minimum: 25,
494
- },
495
- pageCount: {
496
- type: 'integer',
497
- maximum: 1,
498
- },
499
- total: {
500
- type: 'integer',
501
- },
502
- },
503
- },
504
- },
505
- },
506
- },
507
- },
508
- UsersPermissionsRoleResponseDataObject: {
509
- type: 'object',
510
- properties: {
511
- id: {
512
- type: 'number',
513
- },
514
- attributes: {
515
- $ref: '#/components/schemas/UsersPermissionsRole',
516
- },
517
- },
518
- },
519
- UsersPermissionsRoleResponseDataObjectLocalized: {
520
- type: 'object',
521
- properties: {
522
- id: {
523
- type: 'number',
524
- },
525
- attributes: {
526
- $ref: '#/components/schemas/UsersPermissionsRole',
527
- },
528
- },
529
- },
530
- UsersPermissionsRoleResponse: {
531
- type: 'object',
532
- properties: {
533
- data: {
534
- $ref: '#/components/schemas/UsersPermissionsRoleResponseDataObject',
535
- },
536
- meta: {
537
- type: 'object',
538
- },
539
- },
540
- },
541
- UsersPermissionsRoleLocalizationResponse: {
542
- type: 'object',
543
- properties: {
544
- data: {
545
- $ref: '#/components/schemas/UsersPermissionsRoleResponseDataObjectLocalized',
546
- },
547
- meta: {
548
- type: 'object',
549
- },
550
- },
551
- },
552
- RestaurantListResponseDataItem: {
553
- type: 'object',
554
- properties: {
555
- id: {
556
- type: 'number',
557
- },
558
- attributes: {
559
- $ref: '#/components/schemas/Restaurant',
560
- },
561
- },
562
- },
563
- RestaurantListResponseDataItemLocalized: {
564
- type: 'object',
565
- properties: {
566
- id: {
567
- type: 'number',
568
- },
569
- attributes: {
570
- $ref: '#/components/schemas/Restaurant',
571
- },
572
- },
573
- },
574
- RestaurantListResponse: {
575
- type: 'object',
576
- properties: {
577
- data: {
578
- type: 'array',
579
- items: {
580
- $ref: '#/components/schemas/RestaurantListResponseDataItem',
581
- },
582
- },
583
- meta: {
584
- type: 'object',
585
- properties: {
586
- pagination: {
587
- type: 'object',
588
- properties: {
589
- page: {
590
- type: 'integer',
591
- },
592
- pageSize: {
593
- type: 'integer',
594
- minimum: 25,
595
- },
596
- pageCount: {
597
- type: 'integer',
598
- maximum: 1,
599
- },
600
- total: {
601
- type: 'integer',
602
- },
603
- },
604
- },
605
- },
606
- },
607
- },
608
- },
609
- RestaurantLocalizationListResponse: {
610
- type: 'object',
611
- properties: {
612
- data: {
613
- type: 'array',
614
- items: {
615
- $ref: '#/components/schemas/RestaurantListResponseDataItemLocalized',
616
- },
617
- },
618
- meta: {
619
- type: 'object',
620
- properties: {
621
- pagination: {
622
- type: 'object',
623
- properties: {
624
- page: {
625
- type: 'integer',
626
- },
627
- pageSize: {
628
- type: 'integer',
629
- minimum: 25,
630
- },
631
- pageCount: {
632
- type: 'integer',
633
- maximum: 1,
634
- },
635
- total: {
636
- type: 'integer',
637
- },
638
- },
639
- },
640
- },
641
- },
642
- },
643
- },
644
- RestaurantResponseDataObject: {
645
- type: 'object',
646
- properties: {
647
- id: {
648
- type: 'number',
649
- },
650
- attributes: {
651
- $ref: '#/components/schemas/Restaurant',
652
- },
653
- },
654
- },
655
- RestaurantResponseDataObjectLocalized: {
656
- type: 'object',
657
- properties: {
658
- id: {
659
- type: 'number',
660
- },
661
- attributes: {
662
- $ref: '#/components/schemas/Restaurant',
663
- },
664
- },
665
- },
666
- RestaurantLocalizationResponse: {
667
- type: 'object',
668
- properties: {
669
- data: {
670
- $ref: '#/components/schemas/RestaurantResponseDataObjectLocalized',
671
- },
672
- meta: {
673
- type: 'object',
674
- },
675
- },
676
- },
677
- RestaurantResponse: {
678
- type: 'object',
679
- properties: {
680
- data: {
681
- $ref: '#/components/schemas/RestaurantResponseDataObject',
682
- },
683
- meta: {
684
- type: 'object',
685
- },
686
- },
687
- },
688
- Restaurant: {
689
- type: 'object',
690
- properties: {
691
- test: { type: 'string' },
692
- },
693
- },
694
- };
695
-
696
- expect(schemas).toStrictEqual(expectedSchemas);
697
- });
698
-
699
- it('builds the LocalizationRequest schema', () => {
700
- global.strapi.plugins['users-permissions'].routes['content-api'].routes = [
701
- { method: 'POST', path: '/localizations', handler: 'test' },
702
- ];
703
- global.strapi.api.restaurant.routes.restaurant.routes = [
704
- { method: 'POST', path: '/localizations', handler: 'test' },
705
- ];
706
-
707
- const apiMocks = [
708
- {
709
- name: 'users-permissions',
710
- getter: 'plugin',
711
- ctNames: ['role'],
712
- },
713
- { name: 'restaurant', getter: 'api', ctNames: ['restaurant'] },
714
- ];
715
-
716
- let schemas = {};
717
- for (const mock of apiMocks) {
718
- schemas = {
719
- ...schemas,
720
- ...buildComponentSchema(mock),
721
- };
722
- }
723
-
724
- const schemaNames = Object.keys(schemas);
725
- const pluginListResponseLocalizationRequest = schemas.UsersPermissionsRoleLocalizationRequest;
726
- const apiListResponseLocalizationRequest = schemas.RestaurantLocalizationRequest;
727
-
728
- const expectedShape = {
729
- type: 'object',
730
- required: ['locale'],
731
- properties: { test: { type: 'string' } },
732
- };
733
-
734
- expect(schemaNames.includes('UsersPermissionsRoleLocalizationRequest')).toBe(true);
735
- expect(schemaNames.includes('RestaurantLocalizationRequest')).toBe(true);
736
- expect(pluginListResponseLocalizationRequest).toStrictEqual(expectedShape);
737
- expect(apiListResponseLocalizationRequest).toStrictEqual(expectedShape);
738
- });
739
-
740
- it('creates the correct name given multiple content types', () => {
741
- const apiMock = {
742
- name: 'users-permissions',
743
- getter: 'plugin',
744
- ctNames: ['permission', 'role', 'user'],
745
- };
746
-
747
- const schemas = buildComponentSchema(apiMock);
748
- const schemaNames = Object.keys(schemas);
749
- expect(schemaNames).toStrictEqual([
750
- 'UsersPermissionsPermission',
751
- 'UsersPermissionsPermissionResponseDataObject',
752
- 'UsersPermissionsPermissionResponse',
753
- 'UsersPermissionsRole',
754
- 'UsersPermissionsRoleResponseDataObject',
755
- 'UsersPermissionsRoleResponse',
756
- 'UsersPermissionsUser',
757
- 'UsersPermissionsUserResponseDataObject',
758
- 'UsersPermissionsUserResponse',
759
- ]);
760
- });
761
- });