@memberjunction/actions-base 4.1.0 → 4.3.0
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.
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionEngine-Base.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/ActionEngine-Base.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
2
|
+
// Mock external dependencies before imports
|
|
3
|
+
vi.mock('@memberjunction/core', () => {
|
|
4
|
+
return {
|
|
5
|
+
BaseEngine: class BaseEngine {
|
|
6
|
+
static getInstance(key) {
|
|
7
|
+
return {};
|
|
8
|
+
}
|
|
9
|
+
async Load(configs, provider, forceRefresh, contextUser) { }
|
|
10
|
+
HandleSingleViewResult(config, result) { }
|
|
11
|
+
get RunViewProviderToUse() { return null; }
|
|
12
|
+
},
|
|
13
|
+
RunView: vi.fn().mockImplementation(() => ({
|
|
14
|
+
RunView: vi.fn().mockResolvedValue({ Success: true, Results: [] }),
|
|
15
|
+
RunViews: vi.fn().mockResolvedValue([])
|
|
16
|
+
})),
|
|
17
|
+
UserInfo: class UserInfo {
|
|
18
|
+
},
|
|
19
|
+
IMetadataProvider: class IMetadataProvider {
|
|
20
|
+
},
|
|
21
|
+
BaseEnginePropertyConfig: class BaseEnginePropertyConfig {
|
|
22
|
+
},
|
|
23
|
+
CodeNameFromString: (name) => name.replace(/[^a-zA-Z0-9]/g, '_'),
|
|
24
|
+
BaseEntity: class BaseEntity {
|
|
25
|
+
Config(_contextUser) { return Promise.resolve(); }
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
});
|
|
29
|
+
vi.mock('@memberjunction/core-entities', () => ({
|
|
30
|
+
ActionCategoryEntity: class ActionCategoryEntity {
|
|
31
|
+
constructor() {
|
|
32
|
+
this.ID = '';
|
|
33
|
+
this.ParentID = null;
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
ActionEntity: class ActionEntity {
|
|
37
|
+
constructor() {
|
|
38
|
+
this.ID = '';
|
|
39
|
+
this.Name = '';
|
|
40
|
+
this.CategoryID = '';
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
ActionExecutionLogEntity: class ActionExecutionLogEntity {
|
|
44
|
+
},
|
|
45
|
+
ActionFilterEntity: class ActionFilterEntity {
|
|
46
|
+
},
|
|
47
|
+
ActionLibraryEntity: class ActionLibraryEntity {
|
|
48
|
+
constructor() {
|
|
49
|
+
this.ActionID = '';
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
ActionParamEntity: class ActionParamEntity {
|
|
53
|
+
constructor() {
|
|
54
|
+
this.ActionID = '';
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
ActionResultCodeEntity: class ActionResultCodeEntity {
|
|
58
|
+
constructor() {
|
|
59
|
+
this.ActionID = '';
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
EntityActionEntity: class EntityActionEntity {
|
|
63
|
+
constructor() {
|
|
64
|
+
this.ID = '';
|
|
65
|
+
this.EntityID = '';
|
|
66
|
+
this.Entity = '';
|
|
67
|
+
this.Status = '';
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
EntityActionFilterEntity: class EntityActionFilterEntity {
|
|
71
|
+
constructor() {
|
|
72
|
+
this.EntityActionID = '';
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
EntityActionInvocationEntity: class EntityActionInvocationEntity {
|
|
76
|
+
constructor() {
|
|
77
|
+
this.EntityActionID = '';
|
|
78
|
+
this.InvocationType = '';
|
|
79
|
+
this.Status = '';
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
EntityActionInvocationTypeEntity: class EntityActionInvocationTypeEntity {
|
|
83
|
+
},
|
|
84
|
+
EntityActionParamEntity: class EntityActionParamEntity {
|
|
85
|
+
constructor() {
|
|
86
|
+
this.EntityActionID = '';
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}));
|
|
90
|
+
vi.mock('@memberjunction/global', () => ({
|
|
91
|
+
RegisterClass: () => (target) => target
|
|
92
|
+
}));
|
|
93
|
+
import { ActionEngineBase, ActionResult, ActionResultSimple, ActionParam, ActionLibrary, GeneratedCode, RunActionParams, EntityActionEngineBase, EntityActionInvocationParams, EntityActionResult } from '../index.js';
|
|
94
|
+
describe('ActionParam', () => {
|
|
95
|
+
it('should create an ActionParam with correct properties', () => {
|
|
96
|
+
const param = new ActionParam();
|
|
97
|
+
param.Name = 'TestParam';
|
|
98
|
+
param.Value = 42;
|
|
99
|
+
param.Type = 'Input';
|
|
100
|
+
expect(param.Name).toBe('TestParam');
|
|
101
|
+
expect(param.Value).toBe(42);
|
|
102
|
+
expect(param.Type).toBe('Input');
|
|
103
|
+
});
|
|
104
|
+
it('should support Input, Output, and Both types', () => {
|
|
105
|
+
const inputParam = new ActionParam();
|
|
106
|
+
inputParam.Type = 'Input';
|
|
107
|
+
expect(inputParam.Type).toBe('Input');
|
|
108
|
+
const outputParam = new ActionParam();
|
|
109
|
+
outputParam.Type = 'Output';
|
|
110
|
+
expect(outputParam.Type).toBe('Output');
|
|
111
|
+
const bothParam = new ActionParam();
|
|
112
|
+
bothParam.Type = 'Both';
|
|
113
|
+
expect(bothParam.Type).toBe('Both');
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
describe('ActionResultSimple', () => {
|
|
117
|
+
it('should hold success result data', () => {
|
|
118
|
+
const result = new ActionResultSimple();
|
|
119
|
+
result.Success = true;
|
|
120
|
+
result.ResultCode = 'SUCCESS';
|
|
121
|
+
result.Message = 'Operation completed';
|
|
122
|
+
expect(result.Success).toBe(true);
|
|
123
|
+
expect(result.ResultCode).toBe('SUCCESS');
|
|
124
|
+
expect(result.Message).toBe('Operation completed');
|
|
125
|
+
});
|
|
126
|
+
it('should hold failure result data', () => {
|
|
127
|
+
const result = new ActionResultSimple();
|
|
128
|
+
result.Success = false;
|
|
129
|
+
result.ResultCode = 'FAILED';
|
|
130
|
+
result.Params = [{ Name: 'error', Value: 'something went wrong', Type: 'Output' }];
|
|
131
|
+
expect(result.Success).toBe(false);
|
|
132
|
+
expect(result.ResultCode).toBe('FAILED');
|
|
133
|
+
expect(result.Params).toHaveLength(1);
|
|
134
|
+
expect(result.Params[0].Name).toBe('error');
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
describe('ActionResult', () => {
|
|
138
|
+
it('should hold complete action result data', () => {
|
|
139
|
+
const result = new ActionResult();
|
|
140
|
+
result.Success = true;
|
|
141
|
+
result.Message = 'Done';
|
|
142
|
+
expect(result.Success).toBe(true);
|
|
143
|
+
expect(result.Message).toBe('Done');
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
describe('GeneratedCode', () => {
|
|
147
|
+
it('should store code generation results', () => {
|
|
148
|
+
const gc = new GeneratedCode();
|
|
149
|
+
gc.Success = true;
|
|
150
|
+
gc.Code = 'console.log("hello")';
|
|
151
|
+
gc.Comments = 'A simple log';
|
|
152
|
+
gc.LibrariesUsed = [];
|
|
153
|
+
expect(gc.Success).toBe(true);
|
|
154
|
+
expect(gc.Code).toBe('console.log("hello")');
|
|
155
|
+
expect(gc.Comments).toBe('A simple log');
|
|
156
|
+
expect(gc.LibrariesUsed).toEqual([]);
|
|
157
|
+
});
|
|
158
|
+
it('should store error information on failure', () => {
|
|
159
|
+
const gc = new GeneratedCode();
|
|
160
|
+
gc.Success = false;
|
|
161
|
+
gc.ErrorMessage = 'Code generation failed';
|
|
162
|
+
gc.Code = '';
|
|
163
|
+
gc.Comments = '';
|
|
164
|
+
gc.LibrariesUsed = [];
|
|
165
|
+
expect(gc.Success).toBe(false);
|
|
166
|
+
expect(gc.ErrorMessage).toBe('Code generation failed');
|
|
167
|
+
});
|
|
168
|
+
});
|
|
169
|
+
describe('ActionLibrary', () => {
|
|
170
|
+
it('should store library name and items', () => {
|
|
171
|
+
const lib = new ActionLibrary();
|
|
172
|
+
lib.LibraryName = 'MyLib';
|
|
173
|
+
lib.ItemsUsed = ['item1', 'item2'];
|
|
174
|
+
expect(lib.LibraryName).toBe('MyLib');
|
|
175
|
+
expect(lib.ItemsUsed).toEqual(['item1', 'item2']);
|
|
176
|
+
});
|
|
177
|
+
});
|
|
178
|
+
describe('RunActionParams', () => {
|
|
179
|
+
it('should create params with default values', () => {
|
|
180
|
+
const params = new RunActionParams();
|
|
181
|
+
expect(params.SkipActionLog).toBeUndefined();
|
|
182
|
+
expect(params.Context).toBeUndefined();
|
|
183
|
+
});
|
|
184
|
+
it('should support generic context typing', () => {
|
|
185
|
+
const params = new RunActionParams();
|
|
186
|
+
params.Context = { apiKey: 'test-key' };
|
|
187
|
+
params.Params = [];
|
|
188
|
+
params.Filters = [];
|
|
189
|
+
expect(params.Context.apiKey).toBe('test-key');
|
|
190
|
+
expect(params.Params).toEqual([]);
|
|
191
|
+
expect(params.Filters).toEqual([]);
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
describe('ActionEngineBase', () => {
|
|
195
|
+
let engine;
|
|
196
|
+
beforeEach(() => {
|
|
197
|
+
// Access the engine via its public singleton pattern
|
|
198
|
+
// but we need to create a testable instance
|
|
199
|
+
engine = new ActionEngineBase();
|
|
200
|
+
// Manually set internal state for testing
|
|
201
|
+
engine['_Actions'] = [];
|
|
202
|
+
engine['_ActionCategories'] = [];
|
|
203
|
+
engine['_Filters'] = [];
|
|
204
|
+
engine['_Params'] = [];
|
|
205
|
+
engine['_ActionResultCodes'] = [];
|
|
206
|
+
engine['_ActionLibraries'] = [];
|
|
207
|
+
});
|
|
208
|
+
describe('CoreActionsRootCategoryID', () => {
|
|
209
|
+
it('should return the hardcoded root category ID', () => {
|
|
210
|
+
expect(engine.CoreActionsRootCategoryID).toBe('15E03732-607E-4125-86F4-8C846EE88749');
|
|
211
|
+
});
|
|
212
|
+
});
|
|
213
|
+
describe('GetActionByName', () => {
|
|
214
|
+
it('should throw when name is null or empty', () => {
|
|
215
|
+
expect(() => engine.GetActionByName('')).toThrow('Action name cannot be null or empty.');
|
|
216
|
+
expect(() => engine.GetActionByName(' ')).toThrow('Action name cannot be null or empty.');
|
|
217
|
+
});
|
|
218
|
+
it('should return undefined when no matching action exists', () => {
|
|
219
|
+
const result = engine.GetActionByName('NonExistent');
|
|
220
|
+
expect(result).toBeUndefined();
|
|
221
|
+
});
|
|
222
|
+
it('should find action case-insensitively', () => {
|
|
223
|
+
const mockAction = { Name: 'Test Action', ID: '123', CategoryID: 'cat1' };
|
|
224
|
+
engine['_Actions'] = [mockAction];
|
|
225
|
+
const result = engine.GetActionByName('test action');
|
|
226
|
+
expect(result).toBe(mockAction);
|
|
227
|
+
});
|
|
228
|
+
it('should trim whitespace in search', () => {
|
|
229
|
+
const mockAction = { Name: 'Test Action', ID: '123', CategoryID: 'cat1' };
|
|
230
|
+
engine['_Actions'] = [mockAction];
|
|
231
|
+
const result = engine.GetActionByName(' Test Action ');
|
|
232
|
+
expect(result).toBe(mockAction);
|
|
233
|
+
});
|
|
234
|
+
});
|
|
235
|
+
describe('IsChildCategoryOf', () => {
|
|
236
|
+
it('should return false for null/empty IDs', () => {
|
|
237
|
+
expect(engine.IsChildCategoryOf('', 'parent')).toBe(false);
|
|
238
|
+
expect(engine.IsChildCategoryOf('child', '')).toBe(false);
|
|
239
|
+
expect(engine.IsChildCategoryOf('', '')).toBe(false);
|
|
240
|
+
});
|
|
241
|
+
it('should return true when IDs match (same category)', () => {
|
|
242
|
+
expect(engine.IsChildCategoryOf('abc', 'ABC')).toBe(true);
|
|
243
|
+
});
|
|
244
|
+
it('should return true when category is direct child of parent', () => {
|
|
245
|
+
engine['_ActionCategories'] = [
|
|
246
|
+
{ ID: 'child1', ParentID: 'parent1' }
|
|
247
|
+
];
|
|
248
|
+
expect(engine.IsChildCategoryOf('child1', 'parent1')).toBe(true);
|
|
249
|
+
});
|
|
250
|
+
it('should return true for nested child through recursion', () => {
|
|
251
|
+
engine['_ActionCategories'] = [
|
|
252
|
+
{ ID: 'grandchild', ParentID: 'child1' },
|
|
253
|
+
{ ID: 'child1', ParentID: 'root' }
|
|
254
|
+
];
|
|
255
|
+
expect(engine.IsChildCategoryOf('grandchild', 'root')).toBe(true);
|
|
256
|
+
});
|
|
257
|
+
it('should return false when category is not a child', () => {
|
|
258
|
+
engine['_ActionCategories'] = [
|
|
259
|
+
{ ID: 'child1', ParentID: 'parent1' },
|
|
260
|
+
{ ID: 'child2', ParentID: 'parent2' }
|
|
261
|
+
];
|
|
262
|
+
expect(engine.IsChildCategoryOf('child1', 'parent2')).toBe(false);
|
|
263
|
+
});
|
|
264
|
+
});
|
|
265
|
+
describe('IsCoreAction', () => {
|
|
266
|
+
it('should return false for null action', () => {
|
|
267
|
+
expect(engine.IsCoreAction(null)).toBe(false);
|
|
268
|
+
});
|
|
269
|
+
});
|
|
270
|
+
describe('IsCoreActionCategory', () => {
|
|
271
|
+
it('should return false for null/empty category ID', () => {
|
|
272
|
+
expect(engine.IsCoreActionCategory('')).toBe(false);
|
|
273
|
+
});
|
|
274
|
+
});
|
|
275
|
+
describe('property accessors', () => {
|
|
276
|
+
it('should return arrays from each accessor', () => {
|
|
277
|
+
expect(engine.Actions).toEqual([]);
|
|
278
|
+
expect(engine.ActionCategories).toEqual([]);
|
|
279
|
+
expect(engine.ActionParams).toEqual([]);
|
|
280
|
+
expect(engine.ActionFilters).toEqual([]);
|
|
281
|
+
expect(engine.ActionResultCodes).toEqual([]);
|
|
282
|
+
expect(engine.ActionLibraries).toEqual([]);
|
|
283
|
+
});
|
|
284
|
+
it('should return filtered CoreActions and NonCoreActions', () => {
|
|
285
|
+
expect(engine.CoreActions).toEqual([]);
|
|
286
|
+
expect(engine.NonCoreActions).toEqual([]);
|
|
287
|
+
});
|
|
288
|
+
});
|
|
289
|
+
describe('ValidateInputs', () => {
|
|
290
|
+
it('should return true by default', async () => {
|
|
291
|
+
const params = new RunActionParams();
|
|
292
|
+
const result = await engine['ValidateInputs'](params);
|
|
293
|
+
expect(result).toBe(true);
|
|
294
|
+
});
|
|
295
|
+
});
|
|
296
|
+
});
|
|
297
|
+
describe('EntityActionEngineBase', () => {
|
|
298
|
+
let engine;
|
|
299
|
+
beforeEach(() => {
|
|
300
|
+
engine = new EntityActionEngineBase();
|
|
301
|
+
engine['_EntityActions'] = [];
|
|
302
|
+
engine['_EntityActionParams'] = [];
|
|
303
|
+
engine['_EntityActionInvocationTypes'] = [];
|
|
304
|
+
engine['_EntityActionFilters'] = [];
|
|
305
|
+
engine['_EntityActionInvocations'] = [];
|
|
306
|
+
});
|
|
307
|
+
describe('GetActionsByEntityName', () => {
|
|
308
|
+
it('should return empty array when no matching actions', () => {
|
|
309
|
+
const result = engine.GetActionsByEntityName('SomeEntity');
|
|
310
|
+
expect(result).toEqual([]);
|
|
311
|
+
});
|
|
312
|
+
it('should find actions case-insensitively', () => {
|
|
313
|
+
const mockAction = { Entity: 'Customers', EntityID: 'e1', ID: 'ea1', Status: 'Active' };
|
|
314
|
+
engine['_EntityActions'] = [mockAction];
|
|
315
|
+
const result = engine.GetActionsByEntityName('customers');
|
|
316
|
+
expect(result).toHaveLength(1);
|
|
317
|
+
});
|
|
318
|
+
it('should filter by status when provided', () => {
|
|
319
|
+
const activeAction = { Entity: 'Customers', EntityID: 'e1', ID: 'ea1', Status: 'Active' };
|
|
320
|
+
const disabledAction = { Entity: 'Customers', EntityID: 'e1', ID: 'ea2', Status: 'Disabled' };
|
|
321
|
+
engine['_EntityActions'] = [activeAction, disabledAction];
|
|
322
|
+
const result = engine.GetActionsByEntityName('Customers', 'Active');
|
|
323
|
+
expect(result).toHaveLength(1);
|
|
324
|
+
expect(result[0]).toBe(activeAction);
|
|
325
|
+
});
|
|
326
|
+
});
|
|
327
|
+
describe('GetActionsByEntityID', () => {
|
|
328
|
+
it('should return empty array when no matching entity ID', () => {
|
|
329
|
+
const result = engine.GetActionsByEntityID('non-existent');
|
|
330
|
+
expect(result).toEqual([]);
|
|
331
|
+
});
|
|
332
|
+
it('should return matching entity actions by ID', () => {
|
|
333
|
+
const mockAction = { Entity: 'Customers', EntityID: 'e1', ID: 'ea1', Status: 'Active' };
|
|
334
|
+
engine['_EntityActions'] = [mockAction];
|
|
335
|
+
const result = engine.GetActionsByEntityID('e1');
|
|
336
|
+
expect(result).toHaveLength(1);
|
|
337
|
+
});
|
|
338
|
+
});
|
|
339
|
+
describe('property accessors', () => {
|
|
340
|
+
it('should return arrays from each accessor', () => {
|
|
341
|
+
expect(engine.InvocationTypes).toEqual([]);
|
|
342
|
+
expect(engine.Filters).toEqual([]);
|
|
343
|
+
expect(engine.Invocations).toEqual([]);
|
|
344
|
+
expect(engine.EntityActions).toEqual([]);
|
|
345
|
+
expect(engine.Params).toEqual([]);
|
|
346
|
+
});
|
|
347
|
+
});
|
|
348
|
+
});
|
|
349
|
+
describe('EntityActionInvocationParams', () => {
|
|
350
|
+
it('should hold invocation params', () => {
|
|
351
|
+
const params = new EntityActionInvocationParams();
|
|
352
|
+
params.ViewID = 'view-1';
|
|
353
|
+
params.ListID = 'list-1';
|
|
354
|
+
expect(params.ViewID).toBe('view-1');
|
|
355
|
+
expect(params.ListID).toBe('list-1');
|
|
356
|
+
});
|
|
357
|
+
});
|
|
358
|
+
describe('EntityActionResult', () => {
|
|
359
|
+
it('should hold result data', () => {
|
|
360
|
+
const result = new EntityActionResult();
|
|
361
|
+
result.Success = true;
|
|
362
|
+
result.Message = 'Completed';
|
|
363
|
+
expect(result.Success).toBe(true);
|
|
364
|
+
expect(result.Message).toBe('Completed');
|
|
365
|
+
});
|
|
366
|
+
});
|
|
367
|
+
//# sourceMappingURL=ActionEngine-Base.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionEngine-Base.test.js","sourceRoot":"","sources":["../../src/__tests__/ActionEngine-Base.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/actions-base",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "4.
|
|
4
|
+
"version": "4.3.0",
|
|
5
5
|
"description": "Base Classes for MemberJunction Actions. This library is used on both server and network nodes.",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"scripts": {
|
|
12
12
|
"start": "ts-node-dev src/index.ts",
|
|
13
13
|
"build": "tsc && tsc-alias -f",
|
|
14
|
-
"test": "echo \"
|
|
14
|
+
"test": "echo \"No tests configured yet\""
|
|
15
15
|
},
|
|
16
16
|
"author": "MemberJunction.com",
|
|
17
17
|
"license": "ISC",
|
|
@@ -20,9 +20,9 @@
|
|
|
20
20
|
"typescript": "^5.9.3"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@memberjunction/global": "4.
|
|
24
|
-
"@memberjunction/core": "4.
|
|
25
|
-
"@memberjunction/core-entities": "4.
|
|
23
|
+
"@memberjunction/global": "4.3.0",
|
|
24
|
+
"@memberjunction/core": "4.3.0",
|
|
25
|
+
"@memberjunction/core-entities": "4.3.0"
|
|
26
26
|
},
|
|
27
27
|
"repository": {
|
|
28
28
|
"type": "git",
|