@hedhog/admin 0.11.1 → 0.12.2
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.
- package/{hedhog.yaml → bkp.hedhog.yaml} +1012 -814
- package/dist/auth/consts/body.js +23 -23
- package/package.json +43 -43
- package/src/admin.module.ts +37 -37
- package/src/auth/auth.controller.ts +72 -72
- package/src/auth/auth.module.ts +39 -39
- package/src/auth/auth.service.spec.ts +196 -196
- package/src/auth/auth.service.ts +234 -234
- package/src/auth/consts/body.ts +26 -26
- package/src/auth/consts/subject.ts +1 -1
- package/src/auth/dto/forget.dto.ts +6 -6
- package/src/auth/dto/login.dto.ts +15 -15
- package/src/auth/dto/otp.dto.ts +11 -11
- package/src/auth/dto/reset.dto.ts +14 -14
- package/src/auth/enums/multifactor-type.enum.ts +4 -4
- package/src/auth/guards/auth.guard.ts +50 -50
- package/src/auth/types/user.type.ts +8 -8
- package/src/dto/delete.dto.ts +8 -8
- package/src/dto/update-ids.dto.ts +9 -9
- package/src/index.ts +20 -20
- package/src/menu/dto/create.dto.ts +25 -25
- package/src/menu/dto/order.dto.ts +8 -8
- package/src/menu/dto/update.dto.ts +19 -19
- package/src/menu/menu.controller.ts +105 -105
- package/src/menu/menu.module.ts +18 -18
- package/src/menu/menu.service.spec.ts +247 -247
- package/src/menu/menu.service.ts +263 -263
- package/src/role/dto/create.dto.ts +7 -7
- package/src/role/dto/update.dto.ts +4 -4
- package/src/role/guards/role.guard.ts +123 -123
- package/src/role/role.controller.ts +126 -126
- package/src/role/role.module.ts +28 -28
- package/src/role/role.service.spec.ts +417 -417
- package/src/role/role.service.ts +289 -289
- package/src/route/dto/create.dto.ts +13 -13
- package/src/route/dto/update.dto.ts +15 -15
- package/src/route/route.controller.ts +91 -91
- package/src/route/route.module.ts +18 -18
- package/src/route/route.service.spec.ts +300 -300
- package/src/route/route.service.ts +164 -164
- package/src/screen/dto/create.dto.ts +11 -11
- package/src/screen/dto/update.dto.ts +19 -19
- package/src/screen/screen.controller.ts +93 -93
- package/src/screen/screen.module.ts +18 -18
- package/src/screen/screen.service.spec.ts +298 -298
- package/src/screen/screen.service.ts +179 -179
- package/src/types/http-method.ts +8 -8
- package/src/user/constants/user.constants.ts +1 -1
- package/src/user/dto/create.dto.ts +24 -24
- package/src/user/dto/update.dto.ts +41 -41
- package/src/user/user.controller.ts +75 -75
- package/src/user/user.module.ts +18 -18
- package/src/user/user.service.spec.ts +294 -294
- 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
|
+
// });
|