@gadmin2n/schematics 0.0.87 → 0.0.89

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 (99) hide show
  1. package/dist/lib/application/files/gadmin2-game-angle-demo/.dockerignore +16 -2
  2. package/dist/lib/application/files/gadmin2-game-angle-demo/Dockerfile.codegen +40 -0
  3. package/dist/lib/application/files/gadmin2-game-angle-demo/Dockerfile.server +76 -0
  4. package/dist/lib/application/files/gadmin2-game-angle-demo/Dockerfile.web +53 -0
  5. package/dist/lib/application/files/gadmin2-game-angle-demo/Jenkinsfile +219 -33
  6. package/dist/lib/application/files/gadmin2-game-angle-demo/compose-ctl.sh +250 -0
  7. package/dist/lib/application/files/gadmin2-game-angle-demo/config/prisma/workflow.prisma +4 -1
  8. package/dist/lib/application/files/gadmin2-game-angle-demo/dev/postgres/init.sql +12 -0
  9. package/dist/lib/application/files/gadmin2-game-angle-demo/docker-compose.md +170 -0
  10. package/dist/lib/application/files/gadmin2-game-angle-demo/docker-compose.yml +254 -0
  11. package/dist/lib/application/files/gadmin2-game-angle-demo/server/package.json +8 -7
  12. package/dist/lib/application/files/gadmin2-game-angle-demo/server/scripts/lib/page-helpers.ts +1 -1
  13. package/dist/lib/application/files/gadmin2-game-angle-demo/server/scripts/prismaModels.ts +1 -1
  14. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/agenda.seed.ts +39 -0
  15. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/audit.seed.ts +40 -0
  16. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/bootstrap.ts +56 -0
  17. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/canvas.seed.ts +39 -0
  18. package/dist/lib/application/files/gadmin2-game-angle-demo/server/{scripts/sync-data-mngt-pages.ts → seed/data-mngt.seed.ts} +36 -20
  19. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/game.seed.ts +44 -0
  20. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/index.ts +30 -6
  21. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/permission.seed.ts +130 -0
  22. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/workflow-event-trigger.ts +60 -0
  23. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/workflow-node-types.ts +11 -25
  24. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/workflow.seed.ts +108 -0
  25. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/main.ts +1 -0
  26. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/agendaJob/agendaJob.controller.spec.ts +31 -2
  27. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/audit/audit.controller.spec.ts +31 -2
  28. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/audit/audit.service.spec.ts +41 -57
  29. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/game/game.controller.spec.ts +31 -2
  30. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/game/game.service.spec.ts +309 -1
  31. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/page/page.controller.spec.ts +31 -2
  32. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/page/page.service.spec.ts +315 -1
  33. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/pageResource/pageResource.controller.spec.ts +31 -2
  34. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/pageResource/pageResource.service.spec.ts +312 -2
  35. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/resource/resource.controller.spec.ts +31 -2
  36. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/resource/resource.service.spec.ts +317 -1
  37. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/role/role.controller.spec.ts +31 -2
  38. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/role/role.service.spec.ts +309 -1
  39. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/rolePages/rolePages.controller.spec.ts +31 -2
  40. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/rolePages/rolePages.service.spec.ts +299 -1
  41. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/roleResource/roleResource.controller.spec.ts +31 -2
  42. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/roleResource/roleResource.service.spec.ts +307 -1
  43. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/user/user.controller.spec.ts +31 -2
  44. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/user/user.service.spec.ts +309 -1
  45. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/dsl-validate.util.spec.ts +205 -0
  46. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/dsl-validate.util.ts +116 -0
  47. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/temporal.service.spec.ts +158 -0
  48. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/temporal.service.ts +110 -1
  49. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/webhook-signature.util.spec.ts +79 -0
  50. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/webhook-signature.util.ts +54 -0
  51. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow.controller.ts +34 -0
  52. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow.service.spec.ts +457 -0
  53. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow.service.ts +241 -4
  54. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowEventOutbox/workflowEventOutbox.controller.spec.ts +34 -2
  55. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowEventOutbox/workflowEventOutbox.service.spec.ts +24 -30
  56. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeInstance/workflowNodeInstance.controller.spec.ts +34 -2
  57. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeInstance/workflowNodeInstance.service.spec.ts +36 -36
  58. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeType/workflowNodeType.controller.spec.ts +34 -2
  59. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeType/workflowNodeType.service.spec.ts +48 -24
  60. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/README.md +312 -3
  61. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/TODO.md +152 -0
  62. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/.dockerignore +12 -0
  63. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/Dockerfile +79 -0
  64. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/GRACEFUL-DEPLOYMENT.md +270 -0
  65. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/src/activities/index.ts +1 -1
  66. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/src/activities/reporting.ts +23 -0
  67. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/src/index.ts +70 -5
  68. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/src/outbox-poller.ts +246 -90
  69. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/src/tests/cron-trigger-workflow.test.ts +20 -0
  70. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/src/workflows/dsl-workflow.ts +96 -8
  71. package/dist/lib/application/files/gadmin2-game-angle-demo/web/nginx.conf +74 -0
  72. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/ElementInspector.tsx +18 -0
  73. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/promptGenerator.ts +1 -1
  74. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/form.tsx +1 -1
  75. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/en/common.json +3 -3
  76. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/zh_CN/common.json +3 -3
  77. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/plugins/devShellPlugin.ts +4 -1
  78. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasEditPage.tsx +9 -0
  79. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasListPage.tsx +156 -139
  80. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasPage.tsx +14 -2
  81. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasToolbar.tsx +62 -0
  82. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/PublishModal.tsx +4 -6
  83. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasApi.ts +18 -27
  84. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasDefaults.ts +32 -11
  85. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/demos.ts +48 -61
  86. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas-page/index.tsx +3 -6
  87. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/DslView.tsx +16 -16
  88. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/editor.tsx +28 -35
  89. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/instance-detail.tsx +34 -3
  90. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/show.tsx +1 -1
  91. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/types.ts +1 -1
  92. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/styles/antd.css +6 -0
  93. package/package.json +1 -1
  94. package/dist/lib/application/files/gadmin2-game-angle-demo/Dockerfile +0 -63
  95. package/dist/lib/application/files/gadmin2-game-angle-demo/server/scripts/sync-resources.ts +0 -100
  96. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/permissions.ts +0 -302
  97. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.controller.spec.ts +0 -20
  98. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/sql/create-event-trigger.sql +0 -87
  99. /package/dist/lib/application/files/gadmin2-game-angle-demo/{GRACEFUL-DEPLOYMENT.md → server/GRACEFUL-DEPLOYMENT.md} +0 -0
@@ -74,13 +74,13 @@ describe('WorkflowNodeInstanceService', () => {
74
74
  const createArgs = {
75
75
  data: {
76
76
  name: 'test_name',
77
- description: 'test_description',
78
77
  config: {},
79
- isEnabled: true,
80
78
  creator: 'test_creator',
79
+ code: 'test_code',
80
+ description: 'test_description',
81
81
  },
82
- };
83
- const expectedResult = { id: BigInt(1), ...createArgs.data };
82
+ } as any;
83
+ const expectedResult = { id: 1, ...createArgs.data };
84
84
 
85
85
  prisma.workflowNodeInstance.create.mockResolvedValue(expectedResult);
86
86
 
@@ -97,12 +97,12 @@ describe('WorkflowNodeInstanceService', () => {
97
97
  const createArgs = {
98
98
  data: {
99
99
  name: 'test_name',
100
- description: 'test_description',
101
100
  config: {},
102
- isEnabled: true,
103
101
  creator: 'test_creator',
102
+ code: 'test_code',
103
+ description: 'test_description',
104
104
  },
105
- };
105
+ } as any;
106
106
  const error = new Error('Database connection failed');
107
107
 
108
108
  prisma.workflowNodeInstance.create.mockRejectedValue(error);
@@ -118,19 +118,19 @@ describe('WorkflowNodeInstanceService', () => {
118
118
  const data = [
119
119
  {
120
120
  name: 'test_name',
121
- description: 'test_description',
122
121
  config: {},
123
- isEnabled: true,
124
122
  creator: 'test_creator',
123
+ code: 'test_code',
124
+ description: 'test_description',
125
125
  },
126
126
  {
127
127
  name: 'test_name',
128
- description: 'test_description',
129
128
  config: {},
130
- isEnabled: true,
131
129
  creator: 'test_creator',
130
+ code: 'test_code',
131
+ description: 'test_description',
132
132
  },
133
- ];
133
+ ] as any;
134
134
  const expectedResult = { count: 2 };
135
135
 
136
136
  prisma.workflowNodeInstance.createMany.mockResolvedValue(expectedResult);
@@ -151,8 +151,8 @@ describe('WorkflowNodeInstanceService', () => {
151
151
  where: {},
152
152
  take: 10,
153
153
  skip: 0,
154
- };
155
- const mockEntities = [{ id: BigInt(1) }, { id: BigInt(1) }];
154
+ } as any;
155
+ const mockEntities = [{ id: 1 }, { id: 2 }];
156
156
 
157
157
  prisma.workflowNodeInstance.count.mockResolvedValue(2);
158
158
  prisma.workflowNodeInstance.findMany.mockResolvedValue(mockEntities);
@@ -172,7 +172,7 @@ describe('WorkflowNodeInstanceService', () => {
172
172
  });
173
173
 
174
174
  it('should return empty result when no records found', async () => {
175
- const findArgs = { where: {} };
175
+ const findArgs = { where: {} } as any;
176
176
 
177
177
  prisma.workflowNodeInstance.count.mockResolvedValue(0);
178
178
  prisma.workflowNodeInstance.findMany.mockResolvedValue([]);
@@ -185,9 +185,9 @@ describe('WorkflowNodeInstanceService', () => {
185
185
 
186
186
  describe('findUnique', () => {
187
187
  it('should find a single workflowNodeInstance record by id', async () => {
188
- const id = BigInt(1);
188
+ const id = 1;
189
189
  const select = { id: true };
190
- const expectedResult = { id: BigInt(1) };
190
+ const expectedResult = { id: 1 };
191
191
 
192
192
  prisma.workflowNodeInstance.findUnique.mockResolvedValue(expectedResult);
193
193
 
@@ -203,7 +203,7 @@ describe('WorkflowNodeInstanceService', () => {
203
203
  it('should return null when record not found', async () => {
204
204
  prisma.workflowNodeInstance.findUnique.mockResolvedValue(null);
205
205
 
206
- const result = await service.findUnique(BigInt(1), { id: true });
206
+ const result = await service.findUnique(1, { id: true });
207
207
 
208
208
  expect(result).toBeNull();
209
209
  });
@@ -211,15 +211,15 @@ describe('WorkflowNodeInstanceService', () => {
211
211
 
212
212
  describe('updateUnique', () => {
213
213
  it('should update a single workflowNodeInstance record', async () => {
214
- const id = BigInt(1);
214
+ const id = 1;
215
215
  const data = {
216
216
  name: 'test_name',
217
- description: 'test_description',
218
217
  config: {},
219
- isEnabled: true,
220
218
  creator: 'test_creator',
221
- };
222
- const expectedResult = { id: BigInt(1), ...data };
219
+ code: 'test_code',
220
+ description: 'test_description',
221
+ } as any;
222
+ const expectedResult = { id: 1, ...data };
223
223
 
224
224
  prisma.workflowNodeInstance.update.mockResolvedValue(expectedResult);
225
225
 
@@ -239,12 +239,12 @@ describe('WorkflowNodeInstanceService', () => {
239
239
  where: {},
240
240
  data: {
241
241
  name: 'test_name',
242
- description: 'test_description',
243
242
  config: {},
244
- isEnabled: true,
245
243
  creator: 'test_creator',
244
+ code: 'test_code',
245
+ description: 'test_description',
246
246
  },
247
- };
247
+ } as any;
248
248
  const expectedResult = { count: 5 };
249
249
 
250
250
  prisma.workflowNodeInstance.updateMany.mockResolvedValue(expectedResult);
@@ -260,9 +260,9 @@ describe('WorkflowNodeInstanceService', () => {
260
260
 
261
261
  describe('deleteUnique', () => {
262
262
  it('should delete a single workflowNodeInstance record and return count', async () => {
263
- const id = BigInt(1);
263
+ const id = 1;
264
264
 
265
- prisma.workflowNodeInstance.delete.mockResolvedValue({ id: BigInt(1) });
265
+ prisma.workflowNodeInstance.delete.mockResolvedValue({ id: 1 });
266
266
 
267
267
  const result = await service.deleteUnique(id);
268
268
 
@@ -275,7 +275,7 @@ describe('WorkflowNodeInstanceService', () => {
275
275
 
276
276
  describe('deleteMany', () => {
277
277
  it('should delete multiple workflowNodeInstance records', async () => {
278
- const deleteArgs = { where: {} };
278
+ const deleteArgs = { where: {} } as any;
279
279
  const expectedResult = { count: 3 };
280
280
 
281
281
  prisma.workflowNodeInstance.deleteMany.mockResolvedValue(expectedResult);
@@ -291,7 +291,7 @@ describe('WorkflowNodeInstanceService', () => {
291
291
 
292
292
  describe('count', () => {
293
293
  it('should count workflowNodeInstance records with filter', async () => {
294
- const countArgs = { where: {} };
294
+ const countArgs = { where: {} } as any;
295
295
 
296
296
  prisma.workflowNodeInstance.count.mockResolvedValue(10);
297
297
 
@@ -316,12 +316,12 @@ describe('WorkflowNodeInstanceService', () => {
316
316
  const groupByArgs = {
317
317
  by: ['id'],
318
318
  _count: { id: true },
319
- };
320
- const expectedResult = [{ id: BigInt(1), _count: { id: 50 } }];
319
+ } as any;
320
+ const expectedResult = [{ id: 1, _count: { id: 50 } }];
321
321
 
322
322
  prisma.workflowNodeInstance.groupBy.mockResolvedValue(expectedResult);
323
323
 
324
- const result = await service.groupBy(groupByArgs as any);
324
+ const result = await service.groupBy(groupByArgs);
325
325
 
326
326
  expect(prisma.workflowNodeInstance.groupBy).toHaveBeenCalledWith(
327
327
  groupByArgs,
@@ -336,11 +336,11 @@ describe('WorkflowNodeInstanceService', () => {
336
336
  _count: true,
337
337
  _max: { id: true },
338
338
  _min: { id: true },
339
- } as const;
339
+ } as any;
340
340
  const expectedResult = {
341
341
  _count: 100,
342
- _max: { id: BigInt(1) },
343
- _min: { id: BigInt(1) },
342
+ _max: { id: 1 },
343
+ _min: { id: 1 },
344
344
  };
345
345
 
346
346
  prisma.workflowNodeInstance.aggregate.mockResolvedValue(expectedResult);
@@ -1,15 +1,47 @@
1
+ /// <reference types="jest" />
2
+ import { ConfigService } from '@nestjs/config';
1
3
  import { Test, TestingModule } from '@nestjs/testing';
4
+ import { WINSTON_MODULE_PROVIDER } from 'nest-winston';
2
5
  import { WorkflowNodeTypeController } from './workflowNodeType.controller';
3
6
  import { WorkflowNodeTypeService } from './workflowNodeType.service';
4
7
 
8
+ // Mock WorkflowNodeTypeService:用空对象屏蔽真实 Service 的依赖(PrismaService 等),
9
+ // 避免 NestJS 在测试模块编译时去解析 Service 的构造参数。
10
+ const mockWorkflowNodeTypeService = {};
11
+
12
+ // Mock ConfigService
13
+ const mockConfigService = {
14
+ get: jest.fn(),
15
+ };
16
+
17
+ // Mock Logger
18
+ const mockLogger = {
19
+ child: jest.fn().mockReturnThis(),
20
+ info: jest.fn(),
21
+ error: jest.fn(),
22
+ warn: jest.fn(),
23
+ debug: jest.fn(),
24
+ };
25
+
5
26
  describe('WorkflowNodeTypeController', () => {
6
27
  let controller: WorkflowNodeTypeController;
7
28
 
8
29
  beforeEach(async () => {
9
30
  const module: TestingModule = await Test.createTestingModule({
10
31
  controllers: [WorkflowNodeTypeController],
11
- providers: [WorkflowNodeTypeService],
12
- }).compile();
32
+ providers: [
33
+ {
34
+ provide: WorkflowNodeTypeService,
35
+ useValue: mockWorkflowNodeTypeService,
36
+ },
37
+ { provide: ConfigService, useValue: mockConfigService },
38
+ { provide: WINSTON_MODULE_PROVIDER, useValue: mockLogger },
39
+ ],
40
+ })
41
+ // 兜底:自动 mock 任何未显式提供的依赖
42
+ // (例如 ACGuard 内部的 __roles_builder__ token)
43
+ .useMocker(() => ({}))
44
+ .compile();
13
45
 
14
46
  controller = module.get<WorkflowNodeTypeController>(
15
47
  WorkflowNodeTypeController,
@@ -75,10 +75,14 @@ describe('WorkflowNodeTypeService', () => {
75
75
  category: 'ENUM_VALUE',
76
76
  label: 'test_label',
77
77
  icon: 'test_icon',
78
+ configSchema: {},
79
+ inputSchema: {},
80
+ outputSchema: {},
78
81
  description: 'test_description',
82
+ isBuiltin: true,
79
83
  },
80
- };
81
- const expectedResult = { id: BigInt(1), ...createArgs.data };
84
+ } as any;
85
+ const expectedResult = { id: 1, ...createArgs.data };
82
86
 
83
87
  prisma.workflowNodeType.create.mockResolvedValue(expectedResult);
84
88
 
@@ -96,9 +100,13 @@ describe('WorkflowNodeTypeService', () => {
96
100
  category: 'ENUM_VALUE',
97
101
  label: 'test_label',
98
102
  icon: 'test_icon',
103
+ configSchema: {},
104
+ inputSchema: {},
105
+ outputSchema: {},
99
106
  description: 'test_description',
107
+ isBuiltin: true,
100
108
  },
101
- };
109
+ } as any;
102
110
  const error = new Error('Database connection failed');
103
111
 
104
112
  prisma.workflowNodeType.create.mockRejectedValue(error);
@@ -117,16 +125,24 @@ describe('WorkflowNodeTypeService', () => {
117
125
  category: 'ENUM_VALUE',
118
126
  label: 'test_label',
119
127
  icon: 'test_icon',
128
+ configSchema: {},
129
+ inputSchema: {},
130
+ outputSchema: {},
120
131
  description: 'test_description',
132
+ isBuiltin: true,
121
133
  },
122
134
  {
123
135
  type: 'test_type',
124
136
  category: 'ENUM_VALUE',
125
137
  label: 'test_label',
126
138
  icon: 'test_icon',
139
+ configSchema: {},
140
+ inputSchema: {},
141
+ outputSchema: {},
127
142
  description: 'test_description',
143
+ isBuiltin: true,
128
144
  },
129
- ];
145
+ ] as any;
130
146
  const expectedResult = { count: 2 };
131
147
 
132
148
  prisma.workflowNodeType.createMany.mockResolvedValue(expectedResult);
@@ -147,8 +163,8 @@ describe('WorkflowNodeTypeService', () => {
147
163
  where: {},
148
164
  take: 10,
149
165
  skip: 0,
150
- };
151
- const mockEntities = [{ id: BigInt(1) }, { id: BigInt(1) }];
166
+ } as any;
167
+ const mockEntities = [{ id: 1 }, { id: 2 }];
152
168
 
153
169
  prisma.workflowNodeType.count.mockResolvedValue(2);
154
170
  prisma.workflowNodeType.findMany.mockResolvedValue(mockEntities);
@@ -166,7 +182,7 @@ describe('WorkflowNodeTypeService', () => {
166
182
  });
167
183
 
168
184
  it('should return empty result when no records found', async () => {
169
- const findArgs = { where: {} };
185
+ const findArgs = { where: {} } as any;
170
186
 
171
187
  prisma.workflowNodeType.count.mockResolvedValue(0);
172
188
  prisma.workflowNodeType.findMany.mockResolvedValue([]);
@@ -179,9 +195,9 @@ describe('WorkflowNodeTypeService', () => {
179
195
 
180
196
  describe('findUnique', () => {
181
197
  it('should find a single workflowNodeType record by id', async () => {
182
- const id = BigInt(1);
198
+ const id = 1;
183
199
  const select = { id: true };
184
- const expectedResult = { id: BigInt(1) };
200
+ const expectedResult = { id: 1 };
185
201
 
186
202
  prisma.workflowNodeType.findUnique.mockResolvedValue(expectedResult);
187
203
 
@@ -197,7 +213,7 @@ describe('WorkflowNodeTypeService', () => {
197
213
  it('should return null when record not found', async () => {
198
214
  prisma.workflowNodeType.findUnique.mockResolvedValue(null);
199
215
 
200
- const result = await service.findUnique(BigInt(1), { id: true });
216
+ const result = await service.findUnique(1, { id: true });
201
217
 
202
218
  expect(result).toBeNull();
203
219
  });
@@ -205,15 +221,19 @@ describe('WorkflowNodeTypeService', () => {
205
221
 
206
222
  describe('updateUnique', () => {
207
223
  it('should update a single workflowNodeType record', async () => {
208
- const id = BigInt(1);
224
+ const id = 1;
209
225
  const data = {
210
226
  type: 'test_type',
211
227
  category: 'ENUM_VALUE',
212
228
  label: 'test_label',
213
229
  icon: 'test_icon',
230
+ configSchema: {},
231
+ inputSchema: {},
232
+ outputSchema: {},
214
233
  description: 'test_description',
215
- };
216
- const expectedResult = { id: BigInt(1), ...data };
234
+ isBuiltin: true,
235
+ } as any;
236
+ const expectedResult = { id: 1, ...data };
217
237
 
218
238
  prisma.workflowNodeType.update.mockResolvedValue(expectedResult);
219
239
 
@@ -236,9 +256,13 @@ describe('WorkflowNodeTypeService', () => {
236
256
  category: 'ENUM_VALUE',
237
257
  label: 'test_label',
238
258
  icon: 'test_icon',
259
+ configSchema: {},
260
+ inputSchema: {},
261
+ outputSchema: {},
239
262
  description: 'test_description',
263
+ isBuiltin: true,
240
264
  },
241
- };
265
+ } as any;
242
266
  const expectedResult = { count: 5 };
243
267
 
244
268
  prisma.workflowNodeType.updateMany.mockResolvedValue(expectedResult);
@@ -254,9 +278,9 @@ describe('WorkflowNodeTypeService', () => {
254
278
 
255
279
  describe('deleteUnique', () => {
256
280
  it('should delete a single workflowNodeType record and return count', async () => {
257
- const id = BigInt(1);
281
+ const id = 1;
258
282
 
259
- prisma.workflowNodeType.delete.mockResolvedValue({ id: BigInt(1) });
283
+ prisma.workflowNodeType.delete.mockResolvedValue({ id: 1 });
260
284
 
261
285
  const result = await service.deleteUnique(id);
262
286
 
@@ -269,7 +293,7 @@ describe('WorkflowNodeTypeService', () => {
269
293
 
270
294
  describe('deleteMany', () => {
271
295
  it('should delete multiple workflowNodeType records', async () => {
272
- const deleteArgs = { where: {} };
296
+ const deleteArgs = { where: {} } as any;
273
297
  const expectedResult = { count: 3 };
274
298
 
275
299
  prisma.workflowNodeType.deleteMany.mockResolvedValue(expectedResult);
@@ -285,7 +309,7 @@ describe('WorkflowNodeTypeService', () => {
285
309
 
286
310
  describe('count', () => {
287
311
  it('should count workflowNodeType records with filter', async () => {
288
- const countArgs = { where: {} };
312
+ const countArgs = { where: {} } as any;
289
313
 
290
314
  prisma.workflowNodeType.count.mockResolvedValue(10);
291
315
 
@@ -310,12 +334,12 @@ describe('WorkflowNodeTypeService', () => {
310
334
  const groupByArgs = {
311
335
  by: ['id'],
312
336
  _count: { id: true },
313
- };
314
- const expectedResult = [{ id: BigInt(1), _count: { id: 50 } }];
337
+ } as any;
338
+ const expectedResult = [{ id: 1, _count: { id: 50 } }];
315
339
 
316
340
  prisma.workflowNodeType.groupBy.mockResolvedValue(expectedResult);
317
341
 
318
- const result = await service.groupBy(groupByArgs as any);
342
+ const result = await service.groupBy(groupByArgs);
319
343
 
320
344
  expect(prisma.workflowNodeType.groupBy).toHaveBeenCalledWith(groupByArgs);
321
345
  expect(result).toEqual(expectedResult);
@@ -328,11 +352,11 @@ describe('WorkflowNodeTypeService', () => {
328
352
  _count: true,
329
353
  _max: { id: true },
330
354
  _min: { id: true },
331
- } as const;
355
+ } as any;
332
356
  const expectedResult = {
333
357
  _count: 100,
334
- _max: { id: BigInt(1) },
335
- _min: { id: BigInt(1) },
358
+ _max: { id: 1 },
359
+ _min: { id: 1 },
336
360
  };
337
361
 
338
362
  prisma.workflowNodeType.aggregate.mockResolvedValue(expectedResult);