@hedhog/admin 0.12.2 → 0.12.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/dist/auth/auth.controller.d.ts +1 -10
  2. package/dist/auth/auth.controller.d.ts.map +1 -1
  3. package/dist/auth/auth.service.d.ts +1 -10
  4. package/dist/auth/auth.service.d.ts.map +1 -1
  5. package/dist/auth/auth.service.js.map +1 -1
  6. package/dist/auth/auth.service.spec.d.ts +0 -1
  7. package/dist/auth/auth.service.spec.js +171 -161
  8. package/dist/auth/auth.service.spec.js.map +1 -1
  9. package/dist/auth/consts/body.js +23 -23
  10. package/dist/menu/menu.controller.d.ts +6 -33
  11. package/dist/menu/menu.controller.d.ts.map +1 -1
  12. package/dist/menu/menu.service.d.ts +6 -33
  13. package/dist/menu/menu.service.d.ts.map +1 -1
  14. package/dist/menu/menu.service.js.map +1 -1
  15. package/dist/role/guards/role.guard.js.map +1 -1
  16. package/dist/role/role.controller.d.ts +5 -5
  17. package/dist/role/role.service.d.ts +5 -5
  18. package/dist/role/role.service.js.map +1 -1
  19. package/dist/route/route.controller.d.ts +6 -27
  20. package/dist/route/route.controller.d.ts.map +1 -1
  21. package/dist/route/route.service.d.ts +6 -27
  22. package/dist/route/route.service.d.ts.map +1 -1
  23. package/dist/route/route.service.js.map +1 -1
  24. package/dist/screen/screen.controller.d.ts +6 -24
  25. package/dist/screen/screen.controller.d.ts.map +1 -1
  26. package/dist/screen/screen.service.d.ts +6 -24
  27. package/dist/screen/screen.service.d.ts.map +1 -1
  28. package/dist/screen/screen.service.js.map +1 -1
  29. package/dist/user/user.controller.d.ts +5 -32
  30. package/dist/user/user.controller.d.ts.map +1 -1
  31. package/dist/user/user.service.d.ts +5 -32
  32. package/dist/user/user.service.d.ts.map +1 -1
  33. package/dist/user/user.service.js.map +1 -1
  34. package/dist/user/user.service.spec.d.ts +0 -1
  35. package/dist/user/user.service.spec.js +259 -250
  36. package/dist/user/user.service.spec.js.map +1 -1
  37. package/frontend/menu/components/create-panel.tsx.ejs +55 -0
  38. package/frontend/menu/components/update-panel.tsx.ejs +67 -0
  39. package/frontend/menu/locales/en/admin.menu.json +11 -0
  40. package/frontend/menu/locales/pt/admin.menu.json +11 -0
  41. package/frontend/menu/react-query/handlers.ts.ejs +28 -0
  42. package/frontend/menu/react-query/requests.ts.ejs +56 -0
  43. package/frontend/menu-locale/locales/en/admin.menu-locale.json +11 -0
  44. package/frontend/menu-locale/locales/pt/admin.menu-locale.json +11 -0
  45. package/frontend/menu-screen/locales/en/admin.menu-screen.json +11 -0
  46. package/frontend/menu-screen/locales/pt/admin.menu-screen.json +11 -0
  47. package/frontend/multifactor/components/create-panel.tsx.ejs +55 -0
  48. package/frontend/multifactor/components/update-panel.tsx.ejs +70 -0
  49. package/frontend/multifactor/locales/en/admin.multifactor.json +11 -0
  50. package/frontend/multifactor/locales/pt/admin.multifactor.json +11 -0
  51. package/frontend/multifactor/react-query/handlers.ts.ejs +28 -0
  52. package/frontend/multifactor/react-query/requests.ts.ejs +59 -0
  53. package/frontend/multifactor-locale/locales/en/admin.multifactor-locale.json +11 -0
  54. package/frontend/multifactor-locale/locales/pt/admin.multifactor-locale.json +11 -0
  55. package/frontend/screen/components/create-panel.tsx.ejs +55 -0
  56. package/frontend/screen/components/update-panel.tsx.ejs +67 -0
  57. package/frontend/screen/locales/en/admin.screen.json +11 -0
  58. package/frontend/screen/locales/pt/admin.screen.json +11 -0
  59. package/frontend/screen/react-query/handlers.ts.ejs +28 -0
  60. package/frontend/screen/react-query/requests.ts.ejs +56 -0
  61. package/frontend/screen-locale/locales/en/admin.screen-locale.json +11 -0
  62. package/frontend/screen-locale/locales/pt/admin.screen-locale.json +11 -0
  63. package/frontend/translation/components/create-panel.tsx.ejs +52 -0
  64. package/frontend/translation/components/update-panel.tsx.ejs +67 -0
  65. package/frontend/translation/fields/en.json +1 -0
  66. package/frontend/translation/fields/pt.json +1 -0
  67. package/frontend/translation/locales/en/admin.translation.json +11 -0
  68. package/frontend/translation/locales/pt/admin.translation.json +11 -0
  69. package/frontend/translation/modules/en.json +1 -0
  70. package/frontend/translation/modules/pt.json +1 -0
  71. package/frontend/translation/react-query/handlers.ts.ejs +28 -0
  72. package/frontend/translation/react-query/requests.ts.ejs +58 -0
  73. package/frontend/translation-namespace/components/create-panel.tsx.ejs +53 -0
  74. package/frontend/translation-namespace/components/update-panel.tsx.ejs +70 -0
  75. package/frontend/translation-namespace/locales/en/admin.translation-namespace.json +11 -0
  76. package/frontend/translation-namespace/locales/pt/admin.translation-namespace.json +11 -0
  77. package/frontend/translation-namespace/react-query/handlers.ts.ejs +28 -0
  78. package/frontend/translation-namespace/react-query/requests.ts.ejs +60 -0
  79. package/frontend/user/components/create-panel.tsx.ejs +52 -0
  80. package/frontend/user/components/update-panel.tsx.ejs +64 -0
  81. package/frontend/user/locales/en/admin.user.json +11 -0
  82. package/frontend/user/locales/pt/admin.user.json +11 -0
  83. package/frontend/user/react-query/handlers.ts.ejs +28 -0
  84. package/frontend/user/react-query/requests.ts.ejs +55 -0
  85. package/{bkp.hedhog.yaml → hedhog.yaml} +1012 -1012
  86. package/package.json +6 -6
  87. package/src/admin.module.ts +37 -37
  88. package/src/auth/auth.controller.ts +72 -72
  89. package/src/auth/auth.module.ts +39 -39
  90. package/src/auth/auth.service.spec.ts +196 -196
  91. package/src/auth/auth.service.ts +234 -234
  92. package/src/auth/consts/body.ts +26 -26
  93. package/src/auth/consts/subject.ts +1 -1
  94. package/src/auth/dto/forget.dto.ts +6 -6
  95. package/src/auth/dto/login.dto.ts +15 -15
  96. package/src/auth/dto/otp.dto.ts +11 -11
  97. package/src/auth/dto/reset.dto.ts +14 -14
  98. package/src/auth/enums/multifactor-type.enum.ts +4 -4
  99. package/src/auth/guards/auth.guard.ts +50 -50
  100. package/src/auth/types/user.type.ts +8 -8
  101. package/src/dto/delete.dto.ts +8 -8
  102. package/src/dto/update-ids.dto.ts +9 -9
  103. package/src/index.ts +20 -20
  104. package/src/menu/dto/create.dto.ts +25 -25
  105. package/src/menu/dto/order.dto.ts +8 -8
  106. package/src/menu/dto/update.dto.ts +19 -19
  107. package/src/menu/menu.controller.ts +105 -105
  108. package/src/menu/menu.module.ts +18 -18
  109. package/src/menu/menu.service.spec.ts +247 -247
  110. package/src/menu/menu.service.ts +263 -263
  111. package/src/role/dto/create.dto.ts +7 -7
  112. package/src/role/dto/update.dto.ts +4 -4
  113. package/src/role/guards/role.guard.ts +123 -123
  114. package/src/role/role.controller.ts +126 -126
  115. package/src/role/role.module.ts +28 -28
  116. package/src/role/role.service.spec.ts +417 -417
  117. package/src/role/role.service.ts +289 -289
  118. package/src/route/dto/create.dto.ts +13 -13
  119. package/src/route/dto/update.dto.ts +15 -15
  120. package/src/route/route.controller.ts +91 -91
  121. package/src/route/route.module.ts +18 -18
  122. package/src/route/route.service.spec.ts +300 -300
  123. package/src/route/route.service.ts +164 -164
  124. package/src/screen/dto/create.dto.ts +11 -11
  125. package/src/screen/dto/update.dto.ts +19 -19
  126. package/src/screen/screen.controller.ts +93 -93
  127. package/src/screen/screen.module.ts +18 -18
  128. package/src/screen/screen.service.spec.ts +298 -298
  129. package/src/screen/screen.service.ts +179 -179
  130. package/src/types/http-method.ts +8 -8
  131. package/src/user/constants/user.constants.ts +1 -1
  132. package/src/user/dto/create.dto.ts +24 -24
  133. package/src/user/dto/update.dto.ts +41 -41
  134. package/src/user/user.controller.ts +75 -75
  135. package/src/user/user.module.ts +18 -18
  136. package/src/user/user.service.spec.ts +294 -294
  137. package/src/user/user.service.ts +129 -129
@@ -1,298 +1,298 @@
1
- // import {
2
- // PageOrderDirection,
3
- // PaginationDTO,
4
- // PaginationService,
5
- // } from '@hedhog/pagination';
6
- // import { PrismaService } from '@hedhog/prisma';
7
- // import { BadRequestException } from '@nestjs/common';
8
- // import { Test, TestingModule } from '@nestjs/testing';
9
- // import { DeleteDTO } from '../dto/delete.dto';
10
- // import { UpdateIdsDTO } from '../dto/update-ids.dto';
11
- // import { ScreenService } from './screen.service';
12
-
13
- // describe('ScreenService', () => {
14
- // let service: ScreenService;
15
- // let prismaService: PrismaService;
16
- // let paginationService: PaginationService;
17
-
18
- // beforeEach(async () => {
19
- // const module: TestingModule = await Test.createTestingModule({
20
- // providers: [
21
- // ScreenService,
22
- // {
23
- // provide: PrismaService,
24
- // useValue: {
25
- // screens: {
26
- // create: jest.fn(),
27
- // update: jest.fn(),
28
- // deleteMany: jest.fn(),
29
- // findUnique: jest.fn(),
30
- // },
31
- // route: {
32
- // findMany: jest.fn(),
33
- // },
34
- // role_screen: {
35
- // deleteMany: jest.fn(),
36
- // createMany: jest.fn(),
37
- // },
38
- // route_screens: {
39
- // deleteMany: jest.fn(),
40
- // createMany: jest.fn(),
41
- // },
42
- // createInsensitiveSearch: jest.fn(),
43
- // },
44
- // },
45
- // {
46
- // provide: PaginationService,
47
- // useValue: {
48
- // paginate: jest.fn(),
49
- // },
50
- // },
51
- // ],
52
- // }).compile();
53
-
54
- // service = module.get<ScreenService>(ScreenService);
55
- // prismaService = module.get<PrismaService>(PrismaService);
56
- // paginationService = module.get<PaginationService>(PaginationService);
57
- // });
58
-
59
- // it('should be defined', () => {
60
- // expect(service).toBeDefined();
61
- // });
62
-
63
- // describe('create', () => {
64
- // it('should create a screen', async () => {
65
- // const createDTO = {
66
- // name: 'Test Screen',
67
- // slug: 'test-screen',
68
- // description: 'This is a test screen',
69
- // icon: 'test-icon',
70
- // };
71
-
72
- // jest
73
- // .spyOn(prismaService.screens, 'create')
74
- // .mockResolvedValue(createDTO as any);
75
-
76
- // const result = await service.create(createDTO);
77
-
78
- // expect(prismaService.screens.create).toHaveBeenCalledWith({
79
- // data: createDTO,
80
- // });
81
- // expect(result).toEqual(createDTO);
82
- // });
83
- // });
84
-
85
- // describe('delete', () => {
86
- // it('should throw an error if no ids are provided', async () => {
87
- // const deleteDTO: DeleteDTO = { ids: null };
88
-
89
- // await expect(service.delete(deleteDTO)).rejects.toThrow(
90
- // new BadRequestException(
91
- // `You must select at least one screen to delete.`,
92
- // ),
93
- // );
94
- // });
95
-
96
- // it('should delete screens by ids', async () => {
97
- // const deleteDTO: DeleteDTO = { ids: [1, 2] };
98
-
99
- // jest.spyOn(prismaService.screens, 'deleteMany').mockResolvedValue({
100
- // count: 2,
101
- // });
102
-
103
- // await service.delete(deleteDTO);
104
-
105
- // expect(prismaService.screens.deleteMany).toHaveBeenCalledWith({
106
- // where: { id: { in: deleteDTO.ids } },
107
- // });
108
- // });
109
- // });
110
-
111
- // describe('update', () => {
112
- // it('should update a screen', async () => {
113
- // const updateDTO = {
114
- // id: 1,
115
- // name: 'Updated Screen',
116
- // slug: 'updated-screen',
117
- // icon: 'update-icon',
118
- // created_at: new Date(),
119
- // updated_at: new Date(),
120
- // };
121
- // const updateInput = { id: 1, data: updateDTO };
122
-
123
- // jest.spyOn(prismaService.screens, 'update').mockResolvedValue(updateDTO);
124
-
125
- // const result = await service.update(updateInput);
126
-
127
- // expect(prismaService.screens.update).toHaveBeenCalledWith({
128
- // where: { id: updateInput.id },
129
- // data: updateInput.data,
130
- // });
131
- // expect(result).toEqual(updateDTO);
132
- // });
133
- // });
134
-
135
- // describe('get', () => {
136
- // it('should get a screen by id', async () => {
137
- // const screen = {
138
- // id: 1,
139
- // name: 'Updated Screen',
140
- // slug: 'updated-screen',
141
- // icon: 'update-icon',
142
- // created_at: new Date(),
143
- // updated_at: new Date(),
144
- // };
145
-
146
- // jest.spyOn(prismaService.screens, 'findUnique').mockResolvedValue(screen);
147
-
148
- // const result = await service.get(1);
149
-
150
- // expect(prismaService.screens.findUnique).toHaveBeenCalledWith({
151
- // where: { id: 1 },
152
- // });
153
- // expect(result).toEqual(screen);
154
- // });
155
- // });
156
-
157
- // describe('updateRoles', () => {
158
- // it('should update role for a screen', async () => {
159
- // const screenId = 1;
160
- // const updateIdsDTO: UpdateIdsDTO = { ids: [1, 2, 3] };
161
- // jest.spyOn(prismaService.role_screen, 'deleteMany').mockResolvedValue({
162
- // count: 1,
163
- // });
164
-
165
- // jest.spyOn(prismaService.role_screen, 'createMany').mockResolvedValue({
166
- // count: updateIdsDTO.ids.length,
167
- // });
168
-
169
- // await service.updateRoles(screenId, updateIdsDTO);
170
-
171
- // expect(prismaService.role_screen.deleteMany).toHaveBeenCalledWith({
172
- // where: { screen_id: screenId },
173
- // });
174
- // expect(prismaService.role_screen.createMany).toHaveBeenCalledWith({
175
- // data: updateIdsDTO.ids.map((roleId) => ({
176
- // screen_id: screenId,
177
- // role_id: roleId,
178
- // })),
179
- // skipDuplicates: true,
180
- // });
181
- // });
182
- // });
183
-
184
- // describe('updateRoutes', () => {
185
- // it('should delete existing route_screens and create new ones', async () => {
186
- // const screenId = 1;
187
- // const updateIdsDTO: UpdateIdsDTO = { ids: [1, 2, 3] };
188
-
189
- // prismaService.route.findMany = jest
190
- // .fn()
191
- // .mockResolvedValue([{ id: 1 }, { id: 2 }, { id: 3 }]);
192
-
193
- // prismaService.route_screens.deleteMany = jest.fn();
194
- // prismaService.route_screens.createMany = jest.fn();
195
-
196
- // await service.updateRoutes(screenId, updateIdsDTO);
197
-
198
- // expect(prismaService.route.findMany).toHaveBeenCalledWith({
199
- // where: { id: { in: updateIdsDTO.ids } },
200
- // select: { id: true },
201
- // });
202
-
203
- // expect(prismaService.route_screens.deleteMany).toHaveBeenCalledWith({
204
- // where: { screen_id: screenId },
205
- // });
206
-
207
- // expect(prismaService.route_screens.createMany).toHaveBeenCalledWith({
208
- // data: updateIdsDTO.ids.map((routeId) => ({
209
- // screen_id: screenId,
210
- // route_id: routeId,
211
- // })),
212
- // skipDuplicates: true,
213
- // });
214
- // });
215
- // });
216
-
217
- // describe('listRoles', () => {
218
- // it('should call paginate method with correct parameters', async () => {
219
- // const locale = 'en';
220
- // const screenId = 1;
221
- // const paginationParams: PaginationDTO = {
222
- // page: 1,
223
- // pageSize: 10,
224
- // search: '',
225
- // sortField: '',
226
- // sortOrder: PageOrderDirection.Asc,
227
- // fields: '',
228
- // };
229
-
230
- // paginationService.paginate = jest.fn().mockResolvedValue({
231
- // data: [],
232
- // total: 0,
233
- // });
234
-
235
- // await service.listRoles(locale, screenId, paginationParams);
236
-
237
- // expect(paginationService.paginate).toHaveBeenCalledWith(
238
- // prismaService.role,
239
- // paginationParams,
240
- // {
241
- // include: {
242
- // role_screen: {
243
- // where: {
244
- // screen_id: screenId,
245
- // },
246
- // select: {
247
- // role_id: true,
248
- // screen_id: true,
249
- // },
250
- // },
251
- // },
252
- // },
253
- // );
254
- // });
255
- // });
256
-
257
- // describe('listRoutes', () => {
258
- // it('should paginate the route linked to a screen', async () => {
259
- // const paginationParams: PaginationDTO = {
260
- // page: 1,
261
- // pageSize: 10,
262
- // search: '',
263
- // sortField: '',
264
- // sortOrder: PageOrderDirection.Asc,
265
- // fields: '',
266
- // };
267
- // const screenId = 1;
268
- // const mockPaginationResult = {
269
- // data: [],
270
- // total: 10,
271
- // lastPage: 1,
272
- // page: 1,
273
- // prev: 0,
274
- // next: 2,
275
- // pageSize: 10,
276
- // };
277
-
278
- // jest
279
- // .spyOn(paginationService, 'paginate')
280
- // .mockResolvedValue(mockPaginationResult);
281
-
282
- // await service.listRoutes(screenId, paginationParams);
283
-
284
- // expect(paginationService.paginate).toHaveBeenCalledWith(
285
- // prismaService.route,
286
- // paginationParams,
287
- // {
288
- // include: {
289
- // route_screens: {
290
- // where: { screen_id: screenId },
291
- // select: { route_id: true, screen_id: true },
292
- // },
293
- // },
294
- // },
295
- // );
296
- // });
297
- // });
298
- // });
1
+ // import {
2
+ // PageOrderDirection,
3
+ // PaginationDTO,
4
+ // PaginationService,
5
+ // } from '@hedhog/pagination';
6
+ // import { PrismaService } from '@hedhog/prisma';
7
+ // import { BadRequestException } from '@nestjs/common';
8
+ // import { Test, TestingModule } from '@nestjs/testing';
9
+ // import { DeleteDTO } from '../dto/delete.dto';
10
+ // import { UpdateIdsDTO } from '../dto/update-ids.dto';
11
+ // import { ScreenService } from './screen.service';
12
+
13
+ // describe('ScreenService', () => {
14
+ // let service: ScreenService;
15
+ // let prismaService: PrismaService;
16
+ // let paginationService: PaginationService;
17
+
18
+ // beforeEach(async () => {
19
+ // const module: TestingModule = await Test.createTestingModule({
20
+ // providers: [
21
+ // ScreenService,
22
+ // {
23
+ // provide: PrismaService,
24
+ // useValue: {
25
+ // screens: {
26
+ // create: jest.fn(),
27
+ // update: jest.fn(),
28
+ // deleteMany: jest.fn(),
29
+ // findUnique: jest.fn(),
30
+ // },
31
+ // route: {
32
+ // findMany: jest.fn(),
33
+ // },
34
+ // role_screen: {
35
+ // deleteMany: jest.fn(),
36
+ // createMany: jest.fn(),
37
+ // },
38
+ // route_screens: {
39
+ // deleteMany: jest.fn(),
40
+ // createMany: jest.fn(),
41
+ // },
42
+ // createInsensitiveSearch: jest.fn(),
43
+ // },
44
+ // },
45
+ // {
46
+ // provide: PaginationService,
47
+ // useValue: {
48
+ // paginate: jest.fn(),
49
+ // },
50
+ // },
51
+ // ],
52
+ // }).compile();
53
+
54
+ // service = module.get<ScreenService>(ScreenService);
55
+ // prismaService = module.get<PrismaService>(PrismaService);
56
+ // paginationService = module.get<PaginationService>(PaginationService);
57
+ // });
58
+
59
+ // it('should be defined', () => {
60
+ // expect(service).toBeDefined();
61
+ // });
62
+
63
+ // describe('create', () => {
64
+ // it('should create a screen', async () => {
65
+ // const createDTO = {
66
+ // name: 'Test Screen',
67
+ // slug: 'test-screen',
68
+ // description: 'This is a test screen',
69
+ // icon: 'test-icon',
70
+ // };
71
+
72
+ // jest
73
+ // .spyOn(prismaService.screens, 'create')
74
+ // .mockResolvedValue(createDTO as any);
75
+
76
+ // const result = await service.create(createDTO);
77
+
78
+ // expect(prismaService.screens.create).toHaveBeenCalledWith({
79
+ // data: createDTO,
80
+ // });
81
+ // expect(result).toEqual(createDTO);
82
+ // });
83
+ // });
84
+
85
+ // describe('delete', () => {
86
+ // it('should throw an error if no ids are provided', async () => {
87
+ // const deleteDTO: DeleteDTO = { ids: null };
88
+
89
+ // await expect(service.delete(deleteDTO)).rejects.toThrow(
90
+ // new BadRequestException(
91
+ // `You must select at least one screen to delete.`,
92
+ // ),
93
+ // );
94
+ // });
95
+
96
+ // it('should delete screens by ids', async () => {
97
+ // const deleteDTO: DeleteDTO = { ids: [1, 2] };
98
+
99
+ // jest.spyOn(prismaService.screens, 'deleteMany').mockResolvedValue({
100
+ // count: 2,
101
+ // });
102
+
103
+ // await service.delete(deleteDTO);
104
+
105
+ // expect(prismaService.screens.deleteMany).toHaveBeenCalledWith({
106
+ // where: { id: { in: deleteDTO.ids } },
107
+ // });
108
+ // });
109
+ // });
110
+
111
+ // describe('update', () => {
112
+ // it('should update a screen', async () => {
113
+ // const updateDTO = {
114
+ // id: 1,
115
+ // name: 'Updated Screen',
116
+ // slug: 'updated-screen',
117
+ // icon: 'update-icon',
118
+ // created_at: new Date(),
119
+ // updated_at: new Date(),
120
+ // };
121
+ // const updateInput = { id: 1, data: updateDTO };
122
+
123
+ // jest.spyOn(prismaService.screens, 'update').mockResolvedValue(updateDTO);
124
+
125
+ // const result = await service.update(updateInput);
126
+
127
+ // expect(prismaService.screens.update).toHaveBeenCalledWith({
128
+ // where: { id: updateInput.id },
129
+ // data: updateInput.data,
130
+ // });
131
+ // expect(result).toEqual(updateDTO);
132
+ // });
133
+ // });
134
+
135
+ // describe('get', () => {
136
+ // it('should get a screen by id', async () => {
137
+ // const screen = {
138
+ // id: 1,
139
+ // name: 'Updated Screen',
140
+ // slug: 'updated-screen',
141
+ // icon: 'update-icon',
142
+ // created_at: new Date(),
143
+ // updated_at: new Date(),
144
+ // };
145
+
146
+ // jest.spyOn(prismaService.screens, 'findUnique').mockResolvedValue(screen);
147
+
148
+ // const result = await service.get(1);
149
+
150
+ // expect(prismaService.screens.findUnique).toHaveBeenCalledWith({
151
+ // where: { id: 1 },
152
+ // });
153
+ // expect(result).toEqual(screen);
154
+ // });
155
+ // });
156
+
157
+ // describe('updateRoles', () => {
158
+ // it('should update role for a screen', async () => {
159
+ // const screenId = 1;
160
+ // const updateIdsDTO: UpdateIdsDTO = { ids: [1, 2, 3] };
161
+ // jest.spyOn(prismaService.role_screen, 'deleteMany').mockResolvedValue({
162
+ // count: 1,
163
+ // });
164
+
165
+ // jest.spyOn(prismaService.role_screen, 'createMany').mockResolvedValue({
166
+ // count: updateIdsDTO.ids.length,
167
+ // });
168
+
169
+ // await service.updateRoles(screenId, updateIdsDTO);
170
+
171
+ // expect(prismaService.role_screen.deleteMany).toHaveBeenCalledWith({
172
+ // where: { screen_id: screenId },
173
+ // });
174
+ // expect(prismaService.role_screen.createMany).toHaveBeenCalledWith({
175
+ // data: updateIdsDTO.ids.map((roleId) => ({
176
+ // screen_id: screenId,
177
+ // role_id: roleId,
178
+ // })),
179
+ // skipDuplicates: true,
180
+ // });
181
+ // });
182
+ // });
183
+
184
+ // describe('updateRoutes', () => {
185
+ // it('should delete existing route_screens and create new ones', async () => {
186
+ // const screenId = 1;
187
+ // const updateIdsDTO: UpdateIdsDTO = { ids: [1, 2, 3] };
188
+
189
+ // prismaService.route.findMany = jest
190
+ // .fn()
191
+ // .mockResolvedValue([{ id: 1 }, { id: 2 }, { id: 3 }]);
192
+
193
+ // prismaService.route_screens.deleteMany = jest.fn();
194
+ // prismaService.route_screens.createMany = jest.fn();
195
+
196
+ // await service.updateRoutes(screenId, updateIdsDTO);
197
+
198
+ // expect(prismaService.route.findMany).toHaveBeenCalledWith({
199
+ // where: { id: { in: updateIdsDTO.ids } },
200
+ // select: { id: true },
201
+ // });
202
+
203
+ // expect(prismaService.route_screens.deleteMany).toHaveBeenCalledWith({
204
+ // where: { screen_id: screenId },
205
+ // });
206
+
207
+ // expect(prismaService.route_screens.createMany).toHaveBeenCalledWith({
208
+ // data: updateIdsDTO.ids.map((routeId) => ({
209
+ // screen_id: screenId,
210
+ // route_id: routeId,
211
+ // })),
212
+ // skipDuplicates: true,
213
+ // });
214
+ // });
215
+ // });
216
+
217
+ // describe('listRoles', () => {
218
+ // it('should call paginate method with correct parameters', async () => {
219
+ // const locale = 'en';
220
+ // const screenId = 1;
221
+ // const paginationParams: PaginationDTO = {
222
+ // page: 1,
223
+ // pageSize: 10,
224
+ // search: '',
225
+ // sortField: '',
226
+ // sortOrder: PageOrderDirection.Asc,
227
+ // fields: '',
228
+ // };
229
+
230
+ // paginationService.paginate = jest.fn().mockResolvedValue({
231
+ // data: [],
232
+ // total: 0,
233
+ // });
234
+
235
+ // await service.listRoles(locale, screenId, paginationParams);
236
+
237
+ // expect(paginationService.paginate).toHaveBeenCalledWith(
238
+ // prismaService.role,
239
+ // paginationParams,
240
+ // {
241
+ // include: {
242
+ // role_screen: {
243
+ // where: {
244
+ // screen_id: screenId,
245
+ // },
246
+ // select: {
247
+ // role_id: true,
248
+ // screen_id: true,
249
+ // },
250
+ // },
251
+ // },
252
+ // },
253
+ // );
254
+ // });
255
+ // });
256
+
257
+ // describe('listRoutes', () => {
258
+ // it('should paginate the route linked to a screen', async () => {
259
+ // const paginationParams: PaginationDTO = {
260
+ // page: 1,
261
+ // pageSize: 10,
262
+ // search: '',
263
+ // sortField: '',
264
+ // sortOrder: PageOrderDirection.Asc,
265
+ // fields: '',
266
+ // };
267
+ // const screenId = 1;
268
+ // const mockPaginationResult = {
269
+ // data: [],
270
+ // total: 10,
271
+ // lastPage: 1,
272
+ // page: 1,
273
+ // prev: 0,
274
+ // next: 2,
275
+ // pageSize: 10,
276
+ // };
277
+
278
+ // jest
279
+ // .spyOn(paginationService, 'paginate')
280
+ // .mockResolvedValue(mockPaginationResult);
281
+
282
+ // await service.listRoutes(screenId, paginationParams);
283
+
284
+ // expect(paginationService.paginate).toHaveBeenCalledWith(
285
+ // prismaService.route,
286
+ // paginationParams,
287
+ // {
288
+ // include: {
289
+ // route_screens: {
290
+ // where: { screen_id: screenId },
291
+ // select: { route_id: true, screen_id: true },
292
+ // },
293
+ // },
294
+ // },
295
+ // );
296
+ // });
297
+ // });
298
+ // });