@hed-hog/core 0.0.368 → 0.0.371

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 (271) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +2 -0
  3. package/dist/ai/ai.service.d.ts.map +1 -1
  4. package/dist/ai/ai.service.js +10 -7
  5. package/dist/ai/ai.service.js.map +1 -1
  6. package/dist/app-command/app-command.module.d.ts +3 -0
  7. package/dist/app-command/app-command.module.d.ts.map +1 -0
  8. package/dist/app-command/app-command.module.js +22 -0
  9. package/dist/app-command/app-command.module.js.map +1 -0
  10. package/dist/app-command/app-command.registry.d.ts +22 -0
  11. package/dist/app-command/app-command.registry.d.ts.map +1 -0
  12. package/dist/{webhook-integration/webhook-command.registry.js → app-command/app-command.registry.js} +6 -6
  13. package/dist/app-command/app-command.registry.js.map +1 -0
  14. package/dist/auth/auth.controller.d.ts +2 -2
  15. package/dist/auth/auth.controller.d.ts.map +1 -1
  16. package/dist/auth/auth.controller.js +20 -7
  17. package/dist/auth/auth.controller.js.map +1 -1
  18. package/dist/auth/auth.service.d.ts +3 -3
  19. package/dist/auth/auth.service.d.ts.map +1 -1
  20. package/dist/auth/auth.service.js +10 -36
  21. package/dist/auth/auth.service.js.map +1 -1
  22. package/dist/auth/dto/forget.dto.d.ts +1 -0
  23. package/dist/auth/dto/forget.dto.d.ts.map +1 -1
  24. package/dist/auth/dto/forget.dto.js +5 -0
  25. package/dist/auth/dto/forget.dto.js.map +1 -1
  26. package/dist/auth/guards/auth.guard.d.ts.map +1 -1
  27. package/dist/auth/guards/auth.guard.js +4 -1
  28. package/dist/auth/guards/auth.guard.js.map +1 -1
  29. package/dist/challenge/challenge.service.d.ts +8 -7
  30. package/dist/challenge/challenge.service.d.ts.map +1 -1
  31. package/dist/challenge/challenge.service.js +27 -19
  32. package/dist/challenge/challenge.service.js.map +1 -1
  33. package/dist/file/dto/upload.dto.d.ts +3 -0
  34. package/dist/file/dto/upload.dto.d.ts.map +1 -1
  35. package/dist/file/dto/upload.dto.js +22 -0
  36. package/dist/file/dto/upload.dto.js.map +1 -1
  37. package/dist/file/file.controller.d.ts +2 -1
  38. package/dist/file/file.controller.d.ts.map +1 -1
  39. package/dist/file/file.controller.js +29 -16
  40. package/dist/file/file.controller.js.map +1 -1
  41. package/dist/file/file.service.d.ts +51 -1
  42. package/dist/file/file.service.d.ts.map +1 -1
  43. package/dist/file/file.service.js +250 -18
  44. package/dist/file/file.service.js.map +1 -1
  45. package/dist/file/image-optimization.service.d.ts +17 -4
  46. package/dist/file/image-optimization.service.d.ts.map +1 -1
  47. package/dist/file/image-optimization.service.js +101 -46
  48. package/dist/file/image-optimization.service.js.map +1 -1
  49. package/dist/file/provider/s3.provider.d.ts.map +1 -1
  50. package/dist/file/provider/s3.provider.js +15 -7
  51. package/dist/file/provider/s3.provider.js.map +1 -1
  52. package/dist/file/provider/spaces.provider.d.ts.map +1 -1
  53. package/dist/file/provider/spaces.provider.js +18 -8
  54. package/dist/file/provider/spaces.provider.js.map +1 -1
  55. package/dist/index.d.ts +4 -1
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +4 -1
  58. package/dist/index.js.map +1 -1
  59. package/dist/integration/services/event-subscriber.registry.d.ts +5 -0
  60. package/dist/integration/services/event-subscriber.registry.d.ts.map +1 -1
  61. package/dist/integration/services/event-subscriber.registry.js +15 -0
  62. package/dist/integration/services/event-subscriber.registry.js.map +1 -1
  63. package/dist/integration/services/outbox.processor.d.ts.map +1 -1
  64. package/dist/integration/services/outbox.processor.js +2 -4
  65. package/dist/integration/services/outbox.processor.js.map +1 -1
  66. package/dist/integration/services/outbox.service.d.ts +4 -2
  67. package/dist/integration/services/outbox.service.d.ts.map +1 -1
  68. package/dist/integration/services/outbox.service.js +26 -15
  69. package/dist/integration/services/outbox.service.js.map +1 -1
  70. package/dist/integration-profile/integration-credential-crypto.service.d.ts +43 -0
  71. package/dist/integration-profile/integration-credential-crypto.service.d.ts.map +1 -0
  72. package/dist/integration-profile/integration-credential-crypto.service.js +142 -0
  73. package/dist/integration-profile/integration-credential-crypto.service.js.map +1 -0
  74. package/dist/integration-profile/integration-profile.controller.d.ts +6 -7
  75. package/dist/integration-profile/integration-profile.controller.d.ts.map +1 -1
  76. package/dist/integration-profile/integration-profile.controller.js +4 -3
  77. package/dist/integration-profile/integration-profile.controller.js.map +1 -1
  78. package/dist/integration-profile/integration-profile.module.d.ts.map +1 -1
  79. package/dist/integration-profile/integration-profile.module.js +5 -2
  80. package/dist/integration-profile/integration-profile.module.js.map +1 -1
  81. package/dist/integration-profile/integration-profile.secrets.d.ts +16 -0
  82. package/dist/integration-profile/integration-profile.secrets.d.ts.map +1 -0
  83. package/dist/integration-profile/integration-profile.secrets.js +56 -0
  84. package/dist/integration-profile/integration-profile.secrets.js.map +1 -0
  85. package/dist/integration-profile/integration-profile.service.d.ts +125 -8
  86. package/dist/integration-profile/integration-profile.service.d.ts.map +1 -1
  87. package/dist/integration-profile/integration-profile.service.js +257 -68
  88. package/dist/integration-profile/integration-profile.service.js.map +1 -1
  89. package/dist/integration-profile/integration-profile.utils.d.ts +17 -0
  90. package/dist/integration-profile/integration-profile.utils.d.ts.map +1 -1
  91. package/dist/integration-profile/integration-profile.utils.js +31 -0
  92. package/dist/integration-profile/integration-profile.utils.js.map +1 -1
  93. package/dist/language/en.json +178 -0
  94. package/dist/language/pt.json +178 -0
  95. package/dist/mail/mail.controller.d.ts.map +1 -1
  96. package/dist/mail/mail.controller.js +5 -28
  97. package/dist/mail/mail.controller.js.map +1 -1
  98. package/dist/mail/mail.module.js +18 -18
  99. package/dist/mail/mail.module.js.map +1 -1
  100. package/dist/mail/mail.service.d.ts +13 -2
  101. package/dist/mail/mail.service.d.ts.map +1 -1
  102. package/dist/mail/mail.service.js +25 -15
  103. package/dist/mail/mail.service.js.map +1 -1
  104. package/dist/mcp-chat/mcp-chat.service.js +6 -5
  105. package/dist/mcp-chat/mcp-chat.service.js.map +1 -1
  106. package/dist/oauth/providers/facebook.provider.js +5 -5
  107. package/dist/oauth/providers/facebook.provider.js.map +1 -1
  108. package/dist/oauth/providers/github.provider.js +5 -5
  109. package/dist/oauth/providers/github.provider.js.map +1 -1
  110. package/dist/oauth/providers/google.provider.js +5 -5
  111. package/dist/oauth/providers/google.provider.js.map +1 -1
  112. package/dist/oauth/providers/microsoft-entra-id.provider.js +5 -5
  113. package/dist/oauth/providers/microsoft-entra-id.provider.js.map +1 -1
  114. package/dist/oauth/providers/microsoft.provider.js +5 -5
  115. package/dist/oauth/providers/microsoft.provider.js.map +1 -1
  116. package/dist/pdf/pdf.service.d.ts +4 -0
  117. package/dist/pdf/pdf.service.d.ts.map +1 -1
  118. package/dist/pdf/pdf.service.js +16 -9
  119. package/dist/pdf/pdf.service.js.map +1 -1
  120. package/dist/profile/profile.controller.d.ts +7 -7
  121. package/dist/profile/profile.controller.d.ts.map +1 -1
  122. package/dist/profile/profile.controller.js +28 -21
  123. package/dist/profile/profile.controller.js.map +1 -1
  124. package/dist/profile/profile.service.d.ts +7 -7
  125. package/dist/profile/profile.service.d.ts.map +1 -1
  126. package/dist/profile/profile.service.js +21 -25
  127. package/dist/profile/profile.service.js.map +1 -1
  128. package/dist/setting/setting.service.d.ts +1 -0
  129. package/dist/setting/setting.service.d.ts.map +1 -1
  130. package/dist/setting/setting.service.js +15 -2
  131. package/dist/setting/setting.service.js.map +1 -1
  132. package/dist/token/token.service.d.ts.map +1 -1
  133. package/dist/token/token.service.js +2 -1
  134. package/dist/token/token.service.js.map +1 -1
  135. package/dist/user/user.controller.d.ts +9 -0
  136. package/dist/user/user.controller.d.ts.map +1 -1
  137. package/dist/user/user.controller.js +13 -0
  138. package/dist/user/user.controller.js.map +1 -1
  139. package/dist/user/user.service.d.ts +7 -0
  140. package/dist/user/user.service.d.ts.map +1 -1
  141. package/dist/user/user.service.js +19 -0
  142. package/dist/user/user.service.js.map +1 -1
  143. package/dist/utils/webauthn-origin.d.ts +11 -0
  144. package/dist/utils/webauthn-origin.d.ts.map +1 -0
  145. package/dist/utils/webauthn-origin.js +37 -0
  146. package/dist/utils/webauthn-origin.js.map +1 -0
  147. package/dist/webhook-integration/webhook-integration.controller.d.ts +13 -0
  148. package/dist/webhook-integration/webhook-integration.controller.d.ts.map +1 -1
  149. package/dist/webhook-integration/webhook-integration.controller.js +29 -0
  150. package/dist/webhook-integration/webhook-integration.controller.js.map +1 -1
  151. package/dist/webhook-integration/webhook-integration.module.js +3 -3
  152. package/dist/webhook-integration/webhook-integration.module.js.map +1 -1
  153. package/dist/webhook-integration/webhook-integration.service.d.ts +18 -2
  154. package/dist/webhook-integration/webhook-integration.service.d.ts.map +1 -1
  155. package/dist/webhook-integration/webhook-integration.service.js +110 -6
  156. package/dist/webhook-integration/webhook-integration.service.js.map +1 -1
  157. package/hedhog/data/integration_event_catalog.yaml +118 -118
  158. package/hedhog/data/integration_provider.yaml +9 -0
  159. package/hedhog/data/integration_type.yaml +6 -0
  160. package/hedhog/data/menu.yaml +6 -0
  161. package/hedhog/data/role.yaml +7 -0
  162. package/hedhog/data/route.yaml +192 -207
  163. package/hedhog/data/setting_group.yaml +119 -13
  164. package/hedhog/frontend/app/access-log/page.tsx.ejs +35 -3
  165. package/hedhog/frontend/app/account/components/active-sessions.tsx.ejs +36 -3
  166. package/hedhog/frontend/app/account/components/mcp-tokens.tsx.ejs +39 -4
  167. package/hedhog/frontend/app/account/components/tokens.tsx.ejs +39 -4
  168. package/hedhog/frontend/app/ai_agent/page.tsx.ejs +35 -2
  169. package/hedhog/frontend/app/configurations/[slug]/components/byte-size-input.tsx.ejs +160 -0
  170. package/hedhog/frontend/app/configurations/[slug]/components/duration-input.tsx.ejs +157 -0
  171. package/hedhog/frontend/app/configurations/[slug]/components/setting-field.tsx.ejs +244 -63
  172. package/hedhog/frontend/app/dashboard/[slug]/dashboard-content.tsx.ejs +33 -1
  173. package/hedhog/frontend/app/dashboard/management/tabs/component-roles-tab.tsx.ejs +35 -3
  174. package/hedhog/frontend/app/dashboard/management/tabs/components-tab.tsx.ejs +36 -4
  175. package/hedhog/frontend/app/dashboard/management/tabs/dashboard-roles-tab.tsx.ejs +35 -3
  176. package/hedhog/frontend/app/dashboard/management/tabs/dashboards-tab.tsx.ejs +36 -4
  177. package/hedhog/frontend/app/dashboard/management/tabs/items-tab.tsx.ejs +35 -3
  178. package/hedhog/frontend/app/integration/profiles/page.tsx.ejs +141 -29
  179. package/hedhog/frontend/app/integrations-webhooks/page.tsx.ejs +118 -11
  180. package/hedhog/frontend/app/mail/log/page.tsx.ejs +37 -4
  181. package/hedhog/frontend/app/menu/page.tsx.ejs +34 -2
  182. package/hedhog/frontend/app/preferences/page.tsx.ejs +77 -0
  183. package/hedhog/frontend/app/roles/menus.tsx.ejs +35 -3
  184. package/hedhog/frontend/app/roles/page.tsx.ejs +34 -2
  185. package/hedhog/frontend/app/roles/routes.tsx.ejs +36 -4
  186. package/hedhog/frontend/app/roles/users.tsx.ejs +36 -4
  187. package/hedhog/frontend/app/routes/page.tsx.ejs +34 -2
  188. package/hedhog/frontend/app/setting-list/page.tsx.ejs +34 -2
  189. package/hedhog/frontend/app/users/page.tsx.ejs +51 -21
  190. package/hedhog/frontend/messages/en.json +69 -4
  191. package/hedhog/frontend/messages/pt.json +69 -4
  192. package/hedhog/table/event_webhook.yaml +55 -55
  193. package/hedhog/table/event_webhook_delivery_log.yaml +66 -66
  194. package/hedhog/table/event_webhook_event.yaml +26 -26
  195. package/hedhog/table/integration_event_catalog.yaml +41 -41
  196. package/hedhog/table/mcp_conversation.yaml +12 -12
  197. package/hedhog/table/mcp_conversation_message.yaml +23 -23
  198. package/hedhog/table/mcp_tool_call_log.yaml +22 -22
  199. package/hedhog/table/route.yaml +33 -33
  200. package/hedhog/table/setting.yaml +2 -0
  201. package/hedhog/table/webhook_call_log.yaml +3 -0
  202. package/hedhog/table/webhook_integration.yaml +43 -43
  203. package/package.json +9 -4
  204. package/src/ai/ai.service.ts +9 -6
  205. package/src/app-command/app-command.module.ts +9 -0
  206. package/src/{webhook-integration/webhook-command.registry.ts → app-command/app-command.registry.ts} +9 -9
  207. package/src/auth/auth.controller.ts +20 -4
  208. package/src/auth/auth.service.ts +10 -36
  209. package/src/auth/dto/forget.dto.ts +5 -1
  210. package/src/auth/guards/auth.guard.ts +4 -1
  211. package/src/challenge/challenge.service.ts +30 -19
  212. package/src/file/dto/upload.dto.ts +25 -1
  213. package/src/file/file.controller.ts +31 -18
  214. package/src/file/file.service.ts +341 -16
  215. package/src/file/image-optimization.service.ts +111 -46
  216. package/src/file/provider/s3.provider.ts +16 -7
  217. package/src/file/provider/spaces.provider.ts +15 -5
  218. package/src/index.ts +4 -1
  219. package/src/integration/services/event-subscriber.registry.ts +15 -0
  220. package/src/integration/services/outbox.processor.ts +2 -5
  221. package/src/integration/services/outbox.service.ts +35 -17
  222. package/src/integration/types/event.types.ts +4 -4
  223. package/src/integration-profile/integration-credential-crypto.service.ts +146 -0
  224. package/src/integration-profile/integration-profile.controller.ts +2 -0
  225. package/src/integration-profile/integration-profile.module.ts +5 -2
  226. package/src/integration-profile/integration-profile.secrets.ts +51 -0
  227. package/src/integration-profile/integration-profile.service.ts +335 -54
  228. package/src/integration-profile/integration-profile.utils.ts +56 -0
  229. package/src/language/en.json +5 -1
  230. package/src/language/pt.json +5 -1
  231. package/src/mail/mail.controller.ts +5 -29
  232. package/src/mail/mail.module.ts +5 -5
  233. package/src/mail/mail.service.ts +37 -13
  234. package/src/mcp/decorators/mcp-tool.decorator.ts +7 -7
  235. package/src/mcp/guards/mcp-permission.guard.ts +51 -51
  236. package/src/mcp/interfaces/mcp-tool-definition.interface.ts +6 -6
  237. package/src/mcp/mcp-server.service.ts +87 -87
  238. package/src/mcp/types/mcp-context.type.ts +6 -6
  239. package/src/mcp-chat/dto/create-conversation.dto.ts +7 -7
  240. package/src/mcp-chat/dto/send-message.dto.ts +7 -7
  241. package/src/mcp-chat/mcp-chat.service.ts +5 -5
  242. package/src/notification/events/notification-stale-progress-check.event.ts +5 -5
  243. package/src/oauth/oauth-callback-coordinator.service.spec.ts +159 -0
  244. package/src/oauth/providers/facebook.provider.ts +3 -3
  245. package/src/oauth/providers/github.provider.ts +3 -3
  246. package/src/oauth/providers/google.provider.ts +3 -3
  247. package/src/oauth/providers/microsoft-entra-id.provider.ts +3 -3
  248. package/src/oauth/providers/microsoft.provider.ts +3 -3
  249. package/src/pdf/pdf.service.ts +19 -6
  250. package/src/profile/profile.controller.ts +21 -14
  251. package/src/profile/profile.service.ts +23 -20
  252. package/src/route/dto/create.dto.ts +32 -32
  253. package/src/route/dto/update.dto.ts +31 -31
  254. package/src/security/security.service.spec.ts +222 -0
  255. package/src/setting/setting.service.ts +15 -2
  256. package/src/token/token.service.ts +2 -1
  257. package/src/user/user.controller.ts +26 -16
  258. package/src/user/user.service.ts +25 -0
  259. package/src/utils/webauthn-origin.ts +38 -0
  260. package/src/webhook-integration/integration-event-catalog.controller.ts +50 -50
  261. package/src/webhook-integration/integration-event-catalog.service.ts +117 -117
  262. package/src/webhook-integration/webhook-integration.controller.ts +23 -0
  263. package/src/webhook-integration/webhook-integration.module.ts +3 -3
  264. package/src/webhook-integration/webhook-integration.service.ts +115 -5
  265. package/dist/webhook-integration/webhook-command.registry.d.ts +0 -22
  266. package/dist/webhook-integration/webhook-command.registry.d.ts.map +0 -1
  267. package/dist/webhook-integration/webhook-command.registry.js.map +0 -1
  268. package/src/menu/menu.service.spec.ts +0 -247
  269. package/src/route/route.service.spec.ts +0 -300
  270. package/src/screen/screen.service.spec.ts +0 -298
  271. package/src/user/user.service.spec.ts +0 -294
@@ -1,247 +0,0 @@
1
- // import {
2
- // PageOrderDirection,
3
- // PaginationDTO,
4
- // PaginationService,
5
- // } from '@hed-hog/api-pagination';
6
- // import { PrismaService } from '@hed-hog/api-prisma';
7
- // import { BadRequestException } from '@nestjs/common';
8
- // import { Test, TestingModule } from '@nestjs/testing';
9
- // import { MenuService } from './menu.service';
10
-
11
- // describe('MenuService', () => {
12
- // let menuService: MenuService;
13
- // let prismaService: PrismaService;
14
- // let paginationService: PaginationService;
15
-
16
- // const mockPrismaService = {
17
- // menu: {
18
- // create: jest.fn(),
19
- // update: jest.fn(),
20
- // deleteMany: jest.fn(),
21
- // findUnique: jest.fn(),
22
- // findMany: jest.fn(),
23
- // count: jest.fn(),
24
- // },
25
- // role_menu: {
26
- // deleteMany: jest.fn(),
27
- // createMany: jest.fn(),
28
- // },
29
- // menu_screen: {
30
- // deleteMany: jest.fn(),
31
- // createMany: jest.fn(),
32
- // },
33
- // };
34
-
35
- // const mockPaginationService = {
36
- // paginate: jest.fn(),
37
- // createInsensitiveSearch: jest.fn(),
38
- // };
39
-
40
- // beforeEach(async () => {
41
- // const module: TestingModule = await Test.createTestingModule({
42
- // providers: [
43
- // MenuService,
44
- // { provide: PrismaService, useValue: mockPrismaService },
45
- // { provide: PaginationService, useValue: mockPaginationService },
46
- // ],
47
- // }).compile();
48
-
49
- // menuService = module.get<MenuService>(MenuService);
50
- // prismaService = module.get<PrismaService>(PrismaService);
51
- // paginationService = module.get<PaginationService>(PaginationService);
52
- // });
53
-
54
- // afterEach(() => {
55
- // jest.clearAllMocks();
56
- // });
57
-
58
- // describe('create', () => {
59
- // it('should create a new menu', async () => {
60
- // const createMenuDto = {
61
- // name: 'Test Menu',
62
- // url: '/test',
63
- // icon: 'test-icon',
64
- // order: 1,
65
- // menu_id: undefined,
66
- // };
67
- // mockPrismaService.menu.create.mockResolvedValue(createMenuDto);
68
-
69
- // const result = await menuService.create(createMenuDto);
70
-
71
- // expect(result).toEqual(createMenuDto);
72
- // expect(prismaService.menu.create).toHaveBeenCalledWith({
73
- // data: createMenuDto,
74
- // });
75
- // });
76
- // });
77
-
78
- // describe('update', () => {
79
- // it('should update a menu', async () => {
80
- // const updateDto = { id: 1, data: { name: 'Updated Menu' } };
81
- // mockPrismaService.menu.update.mockResolvedValue(updateDto.data);
82
-
83
- // const result = await menuService.update(updateDto);
84
-
85
- // expect(result).toEqual(updateDto.data);
86
- // expect(prismaService.menu.update).toHaveBeenCalledWith({
87
- // where: { id: updateDto.id },
88
- // data: updateDto.data,
89
- // });
90
- // });
91
- // });
92
-
93
- // describe('delete', () => {
94
- // it('should delete menu', async () => {
95
- // const deleteDto = { ids: [1, 2, 3] };
96
- // mockPrismaService.menu.deleteMany.mockResolvedValue({ count: 3 });
97
-
98
- // const result = await menuService.delete(deleteDto);
99
-
100
- // expect(result).toEqual({ count: 3 });
101
- // expect(prismaService.menu.deleteMany).toHaveBeenCalledWith({
102
- // where: { id: { in: deleteDto.ids } },
103
- // });
104
- // });
105
-
106
- // it('should throw BadRequestException if no ids are provided', async () => {
107
- // await expect(menuService.delete({ ids: null })).rejects.toThrow(
108
- // BadRequestException,
109
- // );
110
- // });
111
- // });
112
-
113
- // describe('listScreens', () => {
114
- // it('should paginate screens', async () => {
115
- // const locale = 'en';
116
- // const menuId = 1;
117
- // const paginationParams: PaginationDTO = {
118
- // page: 1,
119
- // pageSize: 10,
120
- // search: '',
121
- // sortField: '',
122
- // sortOrder: PageOrderDirection.Asc,
123
- // fields: '',
124
- // };
125
-
126
- // const mockScreens = [{ id: 1, name: 'Screen 1' }];
127
- // mockPaginationService.paginate.mockResolvedValue(mockScreens);
128
-
129
- // const result = await menuService.listScreens(
130
- // locale,
131
- // menuId,
132
- // paginationParams,
133
- // );
134
-
135
- // expect(result).toEqual(mockScreens);
136
- // expect(paginationService.paginate).toHaveBeenCalledWith(
137
- // prismaService.screens,
138
- // paginationParams,
139
- // expect.anything(),
140
- // 'screen_locale',
141
- // );
142
- // });
143
- // });
144
-
145
- // describe('updateScreens', () => {
146
- // it('should update screens associated with a menu', async () => {
147
- // const menuId = 1;
148
- // const updateData = { ids: [1, 2, 3] };
149
-
150
- // jest
151
- // .spyOn(prismaService.menu_screen, 'deleteMany')
152
- // .mockResolvedValue(null);
153
- // jest
154
- // .spyOn(prismaService.menu_screen, 'createMany')
155
- // .mockResolvedValue(null);
156
-
157
- // await menuService.updateScreens(menuId, updateData);
158
-
159
- // expect(prismaService.menu_screen.deleteMany).toHaveBeenCalledWith({
160
- // where: { menu_id: menuId },
161
- // });
162
-
163
- // expect(prismaService.menu_screen.createMany).toHaveBeenCalledWith({
164
- // data: updateData.ids.map((screenId) => ({
165
- // menu_id: menuId,
166
- // screen_id: screenId,
167
- // })),
168
- // skipDuplicates: true,
169
- // });
170
- // });
171
- // });
172
-
173
- // describe('updateRoles', () => {
174
- // it('should update role associated with a menu', async () => {
175
- // const menuId = 1;
176
- // const updateData = { ids: [1, 2] };
177
-
178
- // jest.spyOn(prismaService.role_menu, 'deleteMany').mockResolvedValue(null);
179
- // jest.spyOn(prismaService.role_menu, 'createMany').mockResolvedValue(null);
180
-
181
- // await menuService.updateRoles(menuId, updateData);
182
-
183
- // expect(prismaService.role_menu.deleteMany).toHaveBeenCalledWith({
184
- // where: { menu_id: menuId },
185
- // });
186
-
187
- // expect(prismaService.role_menu.createMany).toHaveBeenCalledWith({
188
- // data: updateData.ids.map((roleId) => ({
189
- // menu_id: menuId,
190
- // role_id: roleId,
191
- // })),
192
- // skipDuplicates: true,
193
- // });
194
- // });
195
- // });
196
-
197
- // describe('updateOrder', () => {
198
- // it('should update the order of menu', async () => {
199
- // const orderData = { ids: [1, 2, 3] };
200
-
201
- // jest.spyOn(prismaService.menu, 'count').mockResolvedValue(3);
202
- // jest.spyOn(prismaService.menu, 'update').mockResolvedValue(null);
203
-
204
- // await menuService.updateOrder(orderData);
205
-
206
- // expect(prismaService.menu.count).toHaveBeenCalledWith({
207
- // where: { id: { in: orderData.ids } },
208
- // });
209
-
210
- // expect(prismaService.menu.update).toHaveBeenCalledTimes(
211
- // orderData.ids.length,
212
- // );
213
-
214
- // orderData.ids.forEach((id, index) => {
215
- // expect(prismaService.menu.update).toHaveBeenCalledWith({
216
- // where: { id },
217
- // data: { order: index + 1 },
218
- // });
219
- // });
220
- // });
221
-
222
- // it('should throw BadRequestException if IDs are invalid', async () => {
223
- // const orderData = { ids: [1, 2, 3] };
224
-
225
- // jest.spyOn(prismaService.menu, 'count').mockResolvedValue(2); // IDs não batem com o número esperado
226
-
227
- // await expect(menuService.updateOrder(orderData)).rejects.toThrow(
228
- // BadRequestException,
229
- // );
230
- // });
231
- // });
232
- // /*
233
- // describe('getMenus', () => {
234
- // it('should get menu for a user', async () => {
235
- // const locale = 'en';
236
- // const userId = 1;
237
- // const mockMenus = [{ id: 1, name: 'Menu 1' }];
238
- // mockPrismaService.menu.findMany.mockResolvedValue(mockMenus);
239
-
240
- // const result = await menuService.getMenus(locale, userId);
241
-
242
- // expect(result).toEqual(mockMenus);
243
- // expect(prismaService.menu.findMany).toHaveBeenCalled();
244
- // });
245
- // });
246
- // */
247
- // });
@@ -1,300 +0,0 @@
1
- // import {
2
- // PageOrderDirection,
3
- // PaginationDTO,
4
- // PaginationService,
5
- // } from '@hed-hog/api-pagination';
6
- // import { PrismaService } from '@hed-hog/api-prisma';
7
- // import { Test, TestingModule } from '@nestjs/testing';
8
- // import { DeleteDTO } from '../dto/delete.dto';
9
- // import { UpdateIdsDTO } from '../dto/update-ids.dto';
10
- // import { CreateDTO } from './dto/create.dto';
11
- // import { UpdateDTO } from './dto/update.dto';
12
- // import { RouteService } from './route.service';
13
-
14
- // describe('RouteService', () => {
15
- // let service: RouteService;
16
- // let prismaService: PrismaService;
17
- // let paginationService: PaginationService;
18
-
19
- // const mockPrismaService = {
20
- // route: {
21
- // findUnique: jest.fn(),
22
- // create: jest.fn(),
23
- // update: jest.fn(),
24
- // deleteMany: jest.fn(),
25
- // },
26
- // role_route: {
27
- // deleteMany: jest.fn(),
28
- // createMany: jest.fn(),
29
- // },
30
- // route_screens: {
31
- // deleteMany: jest.fn(),
32
- // createMany: jest.fn(),
33
- // },
34
- // createInsensitiveSearch: jest.fn(),
35
- // };
36
-
37
- // const mockPaginationService = {
38
- // paginate: jest.fn(),
39
- // };
40
-
41
- // beforeEach(async () => {
42
- // const module: TestingModule = await Test.createTestingModule({
43
- // providers: [
44
- // RouteService,
45
- // { provide: PrismaService, useValue: mockPrismaService },
46
- // { provide: PaginationService, useValue: mockPaginationService },
47
- // ],
48
- // }).compile();
49
-
50
- // service = module.get<RouteService>(RouteService);
51
- // prismaService = module.get<PrismaService>(PrismaService);
52
- // paginationService = module.get<PaginationService>(PaginationService);
53
- // });
54
-
55
- // it('should be defined', () => {
56
- // expect(service).toBeDefined();
57
- // });
58
- // /*
59
- // describe('getRoutes', () => {
60
- // it('should paginate route', async () => {
61
- // const paginationParams: PaginationDTO = {
62
- // page: 1,
63
- // pageSize: 10,
64
- // search: '',
65
- // sortField: '',
66
- // sortOrder: PageOrderDirection.Asc,
67
- // fields: '',
68
- // };
69
- // const result = { data: [], total: 0 };
70
-
71
- // mockPrismaService.createInsensitiveSearch.mockReturnValue([]);
72
- // mockPaginationService.paginate.mockResolvedValue(result);
73
-
74
- // const res = await service.getRoutes(paginationParams);
75
-
76
- // expect(mockPrismaService.createInsensitiveSearch).toHaveBeenCalledWith(
77
- // ['url', 'method'],
78
- // paginationParams,
79
- // );
80
- // expect(mockPaginationService.paginate).toHaveBeenCalledWith(
81
- // mockPrismaService.route,
82
- // paginationParams,
83
- // { where: { OR: [] } },
84
- // );
85
- // expect(res).toEqual(result);
86
- // });
87
- // });
88
- // */
89
- // /*
90
- // describe('getRouteById', () => {
91
- // it('should return a route by ID', async () => {
92
- // const routeId = 1;
93
- // const route = { id: routeId, url: '/test', method: 'GET' };
94
-
95
- // mockPrismaService.route.findUnique.mockResolvedValue(route);
96
-
97
- // const res = await service.getRouteById(routeId);
98
-
99
- // expect(mockPrismaService.route.findUnique).toHaveBeenCalledWith({
100
- // where: { id: routeId },
101
- // });
102
- // expect(res).toEqual(route);
103
- // });
104
- // });*/
105
-
106
- // describe('create', () => {
107
- // it('should create a new route', async () => {
108
- // const createDto: CreateDTO = { url: '/test', method: 'GET' };
109
- // const route = { id: 1, ...createDto };
110
-
111
- // mockPrismaService.route.create.mockResolvedValue(route);
112
-
113
- // const res = await service.create(createDto);
114
-
115
- // expect(mockPrismaService.route.create).toHaveBeenCalledWith({
116
- // data: createDto,
117
- // });
118
- // expect(res).toEqual(route);
119
- // });
120
- // });
121
-
122
- // describe('update', () => {
123
- // it('should update a route', async () => {
124
- // const updateDto: UpdateDTO = { url: '/updated', method: 'POST' };
125
- // const routeId = 1;
126
- // const updatedRoute = { id: routeId, ...updateDto };
127
-
128
- // mockPrismaService.route.update.mockResolvedValue(updatedRoute);
129
-
130
- // const res = await service.update({ id: routeId, data: updateDto });
131
-
132
- // expect(mockPrismaService.route.update).toHaveBeenCalledWith({
133
- // where: { id: routeId },
134
- // data: updateDto,
135
- // });
136
- // expect(res).toEqual(updatedRoute);
137
- // });
138
- // });
139
-
140
- // describe('delete', () => {
141
- // it('should delete route by ids', async () => {
142
- // const deleteDto: DeleteDTO = { ids: [1, 2] };
143
- // const result = { count: 2 };
144
-
145
- // mockPrismaService.route.deleteMany.mockResolvedValue(result);
146
-
147
- // const res = await service.delete(deleteDto);
148
-
149
- // expect(mockPrismaService.route.deleteMany).toHaveBeenCalledWith({
150
- // where: { id: { in: deleteDto.ids } },
151
- // });
152
- // expect(res).toEqual(result);
153
- // });
154
- // });
155
-
156
- // describe('updateRoles', () => {
157
- // it('should update role for a route', async () => {
158
- // const routeId = 1;
159
- // const updateIdsDto: UpdateIdsDTO = { ids: [1, 2] };
160
- // const result = { count: 2 };
161
-
162
- // mockPrismaService.role_route.deleteMany.mockResolvedValue({});
163
- // mockPrismaService.role_route.createMany.mockResolvedValue(result);
164
-
165
- // const res = await service.updateRoles(routeId, updateIdsDto);
166
-
167
- // expect(mockPrismaService.role_route.deleteMany).toHaveBeenCalledWith({
168
- // where: { route_id: routeId },
169
- // });
170
- // expect(mockPrismaService.role_route.createMany).toHaveBeenCalledWith({
171
- // data: updateIdsDto.ids.map((roleId) => ({
172
- // role_id: roleId,
173
- // route_id: routeId,
174
- // })),
175
- // skipDuplicates: true,
176
- // });
177
- // expect(res).toEqual(result);
178
- // });
179
- // });
180
-
181
- // describe('updateScreens', () => {
182
- // it('should update screens for a route', async () => {
183
- // const routeId = 1;
184
- // const updateIdsDto: UpdateIdsDTO = { ids: [1, 2] };
185
- // const result = { count: 2 };
186
-
187
- // mockPrismaService.route_screens.deleteMany.mockResolvedValue({});
188
- // mockPrismaService.route_screens.createMany.mockResolvedValue(result);
189
-
190
- // const res = await service.updateScreens(routeId, updateIdsDto);
191
-
192
- // expect(mockPrismaService.route_screens.deleteMany).toHaveBeenCalledWith({
193
- // where: { route_id: routeId },
194
- // });
195
- // expect(mockPrismaService.route_screens.createMany).toHaveBeenCalledWith({
196
- // data: updateIdsDto.ids.map((screenId) => ({
197
- // screen_id: screenId,
198
- // route_id: routeId,
199
- // })),
200
- // skipDuplicates: true,
201
- // });
202
- // expect(res).toEqual(result);
203
- // });
204
- // });
205
-
206
- // describe('listRoles', () => {
207
- // it('should call paginate method with correct parameters', async () => {
208
- // const locale = 'en';
209
- // const routeId = 1;
210
- // const paginationParams: PaginationDTO = {
211
- // page: 1,
212
- // pageSize: 10,
213
- // search: '',
214
- // sortField: '',
215
- // sortOrder: PageOrderDirection.Asc,
216
- // fields: '',
217
- // };
218
-
219
- // paginationService.paginate = jest.fn().mockResolvedValue({
220
- // data: [],
221
- // total: 0,
222
- // });
223
-
224
- // await service.listRoles(locale, routeId, paginationParams);
225
-
226
- // expect(paginationService.paginate).toHaveBeenCalledWith(
227
- // prismaService.role,
228
- // paginationParams,
229
- // {
230
- // include: {
231
- // role_locale: {
232
- // where: {
233
- // locale: { code: locale },
234
- // },
235
- // select: {
236
- // name: true,
237
- // description: true,
238
- // },
239
- // },
240
- // role_route: {
241
- // where: { route_id: routeId },
242
- // select: {
243
- // route_id: true,
244
- // role_id: true,
245
- // },
246
- // },
247
- // },
248
- // },
249
- // 'role_locale',
250
- // );
251
- // });
252
- // });
253
-
254
- // describe('listScreens', () => {
255
- // it('should call paginate method with correct parameters', async () => {
256
- // const locale = 'en';
257
- // const routeId = 1;
258
- // const paginationParams: PaginationDTO = {
259
- // page: 1,
260
- // pageSize: 10,
261
- // search: '',
262
- // sortField: '',
263
- // sortOrder: PageOrderDirection.Asc,
264
- // fields: '',
265
- // };
266
-
267
- // paginationService.paginate = jest.fn().mockResolvedValue({
268
- // data: [],
269
- // total: 0,
270
- // });
271
-
272
- // await service.listScreens(locale, routeId, paginationParams);
273
-
274
- // expect(paginationService.paginate).toHaveBeenCalledWith(
275
- // prismaService.screens,
276
- // paginationParams,
277
- // {
278
- // include: {
279
- // screen_locale: {
280
- // where: {
281
- // locale: { code: locale },
282
- // },
283
- // select: {
284
- // name: true,
285
- // },
286
- // },
287
- // route_screens: {
288
- // where: { route_id: routeId },
289
- // select: {
290
- // route_id: true,
291
- // screen_id: true,
292
- // },
293
- // },
294
- // },
295
- // },
296
- // 'screen_locale',
297
- // );
298
- // });
299
- // });
300
- // });