@hedhog/admin 0.46.35 → 0.46.39

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 (120) hide show
  1. package/README.md +960 -960
  2. package/dist/auth/auth.service.d.ts.map +1 -1
  3. package/dist/auth/auth.service.js +30 -4
  4. package/dist/auth/auth.service.js.map +1 -1
  5. package/dist/auth/consts/body.js +24 -24
  6. package/dist/emails/index.d.ts +3 -0
  7. package/dist/emails/index.d.ts.map +1 -0
  8. package/dist/emails/index.js +19 -0
  9. package/dist/emails/index.js.map +1 -0
  10. package/dist/emails/lib.d.ts +6 -0
  11. package/dist/emails/lib.d.ts.map +1 -0
  12. package/dist/emails/lib.js +43 -0
  13. package/dist/emails/lib.js.map +1 -0
  14. package/dist/emails/templates.d.ts +13 -0
  15. package/dist/emails/templates.d.ts.map +1 -0
  16. package/dist/emails/templates.js +63 -0
  17. package/dist/emails/templates.js.map +1 -0
  18. package/frontend/menu/components/create-panel.tsx.ejs +55 -55
  19. package/frontend/menu/components/update-panel.tsx.ejs +67 -67
  20. package/frontend/menu/locales/en/admin.menu.json +11 -11
  21. package/frontend/menu/locales/pt/admin.menu.json +11 -11
  22. package/frontend/menu/react-query/handlers.ts.ejs +28 -28
  23. package/frontend/menu/react-query/requests.ts.ejs +56 -56
  24. package/frontend/menu-locale/locales/en/admin.menu-locale.json +11 -11
  25. package/frontend/menu-locale/locales/pt/admin.menu-locale.json +11 -11
  26. package/frontend/menu-screen/locales/en/admin.menu-screen.json +11 -11
  27. package/frontend/menu-screen/locales/pt/admin.menu-screen.json +11 -11
  28. package/frontend/multifactor/components/create-panel.tsx.ejs +55 -55
  29. package/frontend/multifactor/components/update-panel.tsx.ejs +70 -70
  30. package/frontend/multifactor/locales/en/admin.multifactor.json +11 -11
  31. package/frontend/multifactor/locales/pt/admin.multifactor.json +11 -11
  32. package/frontend/multifactor/react-query/handlers.ts.ejs +28 -28
  33. package/frontend/multifactor/react-query/requests.ts.ejs +59 -59
  34. package/frontend/multifactor-locale/locales/en/admin.multifactor-locale.json +11 -11
  35. package/frontend/multifactor-locale/locales/pt/admin.multifactor-locale.json +11 -11
  36. package/frontend/screen/components/create-panel.tsx.ejs +55 -55
  37. package/frontend/screen/components/update-panel.tsx.ejs +67 -67
  38. package/frontend/screen/locales/en/admin.screen.json +11 -11
  39. package/frontend/screen/locales/pt/admin.screen.json +11 -11
  40. package/frontend/screen/react-query/handlers.ts.ejs +28 -28
  41. package/frontend/screen/react-query/requests.ts.ejs +56 -56
  42. package/frontend/screen-locale/locales/en/admin.screen-locale.json +11 -11
  43. package/frontend/screen-locale/locales/pt/admin.screen-locale.json +11 -11
  44. package/frontend/translation/components/create-panel.tsx.ejs +52 -52
  45. package/frontend/translation/components/update-panel.tsx.ejs +67 -67
  46. package/frontend/translation/locales/en/admin.translation.json +11 -11
  47. package/frontend/translation/locales/pt/admin.translation.json +11 -11
  48. package/frontend/translation/react-query/handlers.ts.ejs +28 -28
  49. package/frontend/translation/react-query/requests.ts.ejs +58 -58
  50. package/frontend/translation-namespace/components/create-panel.tsx.ejs +53 -53
  51. package/frontend/translation-namespace/components/update-panel.tsx.ejs +70 -70
  52. package/frontend/translation-namespace/locales/en/admin.translation-namespace.json +11 -11
  53. package/frontend/translation-namespace/locales/pt/admin.translation-namespace.json +11 -11
  54. package/frontend/translation-namespace/react-query/handlers.ts.ejs +28 -28
  55. package/frontend/translation-namespace/react-query/requests.ts.ejs +60 -60
  56. package/frontend/user/components/create-panel.tsx.ejs +52 -52
  57. package/frontend/user/components/update-panel.tsx.ejs +64 -64
  58. package/frontend/user/locales/en/admin.user.json +11 -11
  59. package/frontend/user/locales/pt/admin.user.json +11 -11
  60. package/frontend/user/react-query/handlers.ts.ejs +28 -28
  61. package/frontend/user/react-query/requests.ts.ejs +55 -55
  62. package/hedhog.yaml +783 -783
  63. package/package.json +45 -43
  64. package/src/admin.module.ts +39 -39
  65. package/src/auth/auth.controller.ts +88 -88
  66. package/src/auth/auth.module.ts +41 -41
  67. package/src/auth/auth.service.spec.ts +196 -196
  68. package/src/auth/auth.service.ts +349 -316
  69. package/src/auth/consts/body.ts +27 -27
  70. package/src/auth/dto/change.dto.ts +19 -19
  71. package/src/auth/dto/email.dto.ts +15 -15
  72. package/src/auth/dto/forget.dto.ts +6 -6
  73. package/src/auth/dto/login.dto.ts +21 -21
  74. package/src/auth/dto/otp.dto.ts +11 -11
  75. package/src/auth/dto/reset.dto.ts +14 -14
  76. package/src/auth/enums/multifactor-type.enum.ts +4 -4
  77. package/src/auth/guards/auth.guard.ts +54 -54
  78. package/src/auth/types/user.type.ts +8 -8
  79. package/src/dto/delete.dto.ts +8 -8
  80. package/src/dto/update-ids.dto.ts +9 -9
  81. package/src/emails/index.ts +2 -0
  82. package/src/emails/lib.ts +40 -0
  83. package/src/emails/templates.ts +60 -0
  84. package/src/index.ts +20 -20
  85. package/src/menu/dto/create.dto.ts +25 -25
  86. package/src/menu/dto/order.dto.ts +8 -8
  87. package/src/menu/dto/update.dto.ts +19 -19
  88. package/src/menu/menu.controller.ts +105 -105
  89. package/src/menu/menu.module.ts +18 -18
  90. package/src/menu/menu.service.spec.ts +247 -247
  91. package/src/menu/menu.service.ts +263 -263
  92. package/src/role/dto/create.dto.ts +7 -7
  93. package/src/role/dto/update.dto.ts +4 -4
  94. package/src/role/guards/role.guard.ts +121 -121
  95. package/src/role/role.controller.ts +126 -126
  96. package/src/role/role.module.ts +28 -28
  97. package/src/role/role.service.spec.ts +417 -417
  98. package/src/role/role.service.ts +289 -289
  99. package/src/route/dto/create.dto.ts +13 -13
  100. package/src/route/dto/update.dto.ts +15 -15
  101. package/src/route/route.controller.ts +91 -91
  102. package/src/route/route.module.ts +18 -18
  103. package/src/route/route.service.spec.ts +300 -300
  104. package/src/route/route.service.ts +164 -164
  105. package/src/screen/dto/create.dto.ts +11 -11
  106. package/src/screen/dto/update.dto.ts +19 -19
  107. package/src/screen/screen.controller.ts +93 -93
  108. package/src/screen/screen.module.ts +18 -18
  109. package/src/screen/screen.service.spec.ts +298 -298
  110. package/src/screen/screen.service.ts +179 -179
  111. package/src/types/http-method.ts +8 -8
  112. package/src/user/constants/user.constants.ts +1 -1
  113. package/src/user/dto/create.dto.ts +24 -24
  114. package/src/user/dto/update.dto.ts +41 -41
  115. package/src/user/user.controller.ts +75 -75
  116. package/src/user/user.module.ts +18 -18
  117. package/src/user/user.service.spec.ts +294 -294
  118. package/src/user/user.service.ts +129 -129
  119. package/tsconfig.lib.json +9 -9
  120. package/tsconfig.production.json +20 -20
@@ -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
+ // });