@memberjunction/credentials 3.4.0 → 4.1.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.
- package/README.md +96 -385
- package/dist/CredentialEngine.d.ts +1 -1
- package/dist/CredentialEngine.js +21 -28
- package/dist/CredentialEngine.js.map +1 -1
- package/dist/__tests__/credential-validation.test.js +89 -94
- package/dist/__tests__/credential-validation.test.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -9
- package/dist/index.js.map +1 -1
- package/dist/types.js +1 -2
- package/package.json +14 -12
package/dist/CredentialEngine.js
CHANGED
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.CredentialEngine = void 0;
|
|
7
|
-
const core_1 = require("@memberjunction/core");
|
|
8
|
-
const ajv_1 = __importDefault(require("ajv"));
|
|
9
|
-
const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
1
|
+
import { BaseEngine, LogError, LogStatus, Metadata } from "@memberjunction/core";
|
|
2
|
+
import Ajv from 'ajv';
|
|
3
|
+
import addFormats from 'ajv-formats';
|
|
10
4
|
const CREDENTIAL_ACCESS_AUDIT_LOG_TYPE_ID = '9375C9F9-1A58-44D6-9B09-8C6AF0714383';
|
|
11
|
-
class CredentialEngine extends
|
|
5
|
+
export class CredentialEngine extends BaseEngine {
|
|
12
6
|
constructor() {
|
|
13
7
|
super();
|
|
14
8
|
this._credentials = [];
|
|
@@ -16,12 +10,12 @@ class CredentialEngine extends core_1.BaseEngine {
|
|
|
16
10
|
this._credentialCategories = [];
|
|
17
11
|
this._credentialsEntityId = null;
|
|
18
12
|
this._schemaValidators = new Map();
|
|
19
|
-
this._ajv = new
|
|
13
|
+
this._ajv = new Ajv({
|
|
20
14
|
allErrors: true,
|
|
21
15
|
strict: false,
|
|
22
16
|
coerceTypes: false
|
|
23
17
|
});
|
|
24
|
-
(
|
|
18
|
+
addFormats(this._ajv);
|
|
25
19
|
}
|
|
26
20
|
async Config(forceRefresh, contextUser, provider) {
|
|
27
21
|
const params = [
|
|
@@ -46,7 +40,7 @@ class CredentialEngine extends core_1.BaseEngine {
|
|
|
46
40
|
entityMatch = provider.Entities.find(e => e.Name?.trim().toLowerCase() === 'mj: credentials');
|
|
47
41
|
}
|
|
48
42
|
else {
|
|
49
|
-
const md = new
|
|
43
|
+
const md = new Metadata();
|
|
50
44
|
entityMatch = md.EntityByName("MJ: Credentials");
|
|
51
45
|
}
|
|
52
46
|
if (entityMatch) {
|
|
@@ -117,7 +111,7 @@ class CredentialEngine extends core_1.BaseEngine {
|
|
|
117
111
|
durationMs: Date.now() - startTime
|
|
118
112
|
});
|
|
119
113
|
if (credential && options.contextUser) {
|
|
120
|
-
this.updateLastUsedAt(credential.ID, options.contextUser).catch(e =>
|
|
114
|
+
this.updateLastUsedAt(credential.ID, options.contextUser).catch(e => LogError(e));
|
|
121
115
|
}
|
|
122
116
|
return {
|
|
123
117
|
credential,
|
|
@@ -145,7 +139,7 @@ class CredentialEngine extends core_1.BaseEngine {
|
|
|
145
139
|
}
|
|
146
140
|
const valuesWithDefaults = this.applySchemaDefaults(values, credType.FieldSchema);
|
|
147
141
|
this.validateValues(valuesWithDefaults, credType.FieldSchema, credType.ID);
|
|
148
|
-
const md = new
|
|
142
|
+
const md = new Metadata();
|
|
149
143
|
const credEntity = await md.GetEntityObject('MJ: Credentials', contextUser);
|
|
150
144
|
credEntity.NewRecord();
|
|
151
145
|
credEntity.CredentialTypeID = credType.ID;
|
|
@@ -170,7 +164,7 @@ class CredentialEngine extends core_1.BaseEngine {
|
|
|
170
164
|
}
|
|
171
165
|
async updateCredential(credentialId, values, contextUser) {
|
|
172
166
|
this.TryThrowIfNotLoaded();
|
|
173
|
-
const md = new
|
|
167
|
+
const md = new Metadata();
|
|
174
168
|
const credEntity = await md.GetEntityObject('MJ: Credentials', contextUser);
|
|
175
169
|
const loaded = await credEntity.Load(credentialId);
|
|
176
170
|
if (!loaded) {
|
|
@@ -218,7 +212,7 @@ class CredentialEngine extends core_1.BaseEngine {
|
|
|
218
212
|
const values = this.parseCredentialValues(credential.Values);
|
|
219
213
|
const result = await this.callValidationEndpoint(credType.ValidationEndpoint, values);
|
|
220
214
|
if (contextUser) {
|
|
221
|
-
this.updateLastValidatedAt(credentialId, contextUser).catch(e =>
|
|
215
|
+
this.updateLastValidatedAt(credentialId, contextUser).catch(e => LogError(e));
|
|
222
216
|
}
|
|
223
217
|
await this.logAccess(credential, contextUser, {
|
|
224
218
|
operation: 'Validate',
|
|
@@ -248,7 +242,7 @@ class CredentialEngine extends core_1.BaseEngine {
|
|
|
248
242
|
return JSON.parse(valuesField);
|
|
249
243
|
}
|
|
250
244
|
catch (e) {
|
|
251
|
-
|
|
245
|
+
LogError(`Failed to parse credential values: ${e}`);
|
|
252
246
|
return {};
|
|
253
247
|
}
|
|
254
248
|
}
|
|
@@ -275,7 +269,7 @@ class CredentialEngine extends core_1.BaseEngine {
|
|
|
275
269
|
}
|
|
276
270
|
catch (e) {
|
|
277
271
|
if (e instanceof SyntaxError) {
|
|
278
|
-
|
|
272
|
+
LogError(`Invalid FieldSchema JSON: ${e}`);
|
|
279
273
|
throw new Error('Invalid credential type schema');
|
|
280
274
|
}
|
|
281
275
|
throw e;
|
|
@@ -328,36 +322,36 @@ class CredentialEngine extends core_1.BaseEngine {
|
|
|
328
322
|
return result;
|
|
329
323
|
}
|
|
330
324
|
catch (e) {
|
|
331
|
-
|
|
325
|
+
LogError(`Failed to apply schema defaults: ${e}`);
|
|
332
326
|
return values;
|
|
333
327
|
}
|
|
334
328
|
}
|
|
335
329
|
async updateLastUsedAt(credentialId, contextUser) {
|
|
336
330
|
try {
|
|
337
|
-
const md = new
|
|
331
|
+
const md = new Metadata();
|
|
338
332
|
const credEntity = await md.GetEntityObject('MJ: Credentials', contextUser);
|
|
339
333
|
await credEntity.Load(credentialId);
|
|
340
334
|
credEntity.LastUsedAt = new Date();
|
|
341
335
|
await credEntity.Save();
|
|
342
336
|
}
|
|
343
337
|
catch (e) {
|
|
344
|
-
|
|
338
|
+
LogError(e);
|
|
345
339
|
}
|
|
346
340
|
}
|
|
347
341
|
async updateLastValidatedAt(credentialId, contextUser) {
|
|
348
342
|
try {
|
|
349
|
-
const md = new
|
|
343
|
+
const md = new Metadata();
|
|
350
344
|
const credEntity = await md.GetEntityObject('MJ: Credentials', contextUser);
|
|
351
345
|
await credEntity.Load(credentialId);
|
|
352
346
|
credEntity.LastValidatedAt = new Date();
|
|
353
347
|
await credEntity.Save();
|
|
354
348
|
}
|
|
355
349
|
catch (e) {
|
|
356
|
-
|
|
350
|
+
LogError(e);
|
|
357
351
|
}
|
|
358
352
|
}
|
|
359
353
|
async callValidationEndpoint(endpoint, values) {
|
|
360
|
-
|
|
354
|
+
LogStatus(`Validation endpoint configured but not implemented: ${endpoint}`);
|
|
361
355
|
return {
|
|
362
356
|
isValid: true,
|
|
363
357
|
errors: [],
|
|
@@ -370,7 +364,7 @@ class CredentialEngine extends core_1.BaseEngine {
|
|
|
370
364
|
if (!contextUser) {
|
|
371
365
|
return;
|
|
372
366
|
}
|
|
373
|
-
const md = new
|
|
367
|
+
const md = new Metadata();
|
|
374
368
|
const auditLog = await md.GetEntityObject('Audit Logs', contextUser);
|
|
375
369
|
auditLog.NewRecord();
|
|
376
370
|
auditLog.UserID = contextUser.ID;
|
|
@@ -392,9 +386,8 @@ class CredentialEngine extends core_1.BaseEngine {
|
|
|
392
386
|
await auditLog.Save();
|
|
393
387
|
}
|
|
394
388
|
catch (e) {
|
|
395
|
-
|
|
389
|
+
LogError(`Failed to log credential access: ${e}`);
|
|
396
390
|
}
|
|
397
391
|
}
|
|
398
392
|
}
|
|
399
|
-
exports.CredentialEngine = CredentialEngine;
|
|
400
393
|
//# sourceMappingURL=CredentialEngine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CredentialEngine.js","sourceRoot":"","sources":["../src/CredentialEngine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CredentialEngine.js","sourceRoot":"","sources":["../src/CredentialEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const globals_1 = require("@jest/globals");
|
|
7
|
-
const ajv_1 = __importDefault(require("ajv"));
|
|
8
|
-
const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
9
|
-
(0, globals_1.describe)('Credential Validation with Ajv', () => {
|
|
1
|
+
import { describe, test, expect, beforeEach } from '@jest/globals';
|
|
2
|
+
import Ajv from 'ajv';
|
|
3
|
+
import addFormats from 'ajv-formats';
|
|
4
|
+
describe('Credential Validation with Ajv', () => {
|
|
10
5
|
let ajv;
|
|
11
|
-
|
|
12
|
-
ajv = new
|
|
6
|
+
beforeEach(() => {
|
|
7
|
+
ajv = new Ajv({
|
|
13
8
|
allErrors: true,
|
|
14
9
|
strict: false,
|
|
15
10
|
coerceTypes: false
|
|
16
11
|
});
|
|
17
|
-
(
|
|
12
|
+
addFormats(ajv);
|
|
18
13
|
});
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
describe('Required Field Validation', () => {
|
|
15
|
+
test('should reject when required field is missing', () => {
|
|
21
16
|
const schema = {
|
|
22
17
|
type: 'object',
|
|
23
18
|
properties: {
|
|
@@ -27,12 +22,12 @@ const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
|
27
22
|
};
|
|
28
23
|
const validator = ajv.compile(schema);
|
|
29
24
|
const result = validator({});
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
25
|
+
expect(result).toBe(false);
|
|
26
|
+
expect(validator.errors).toBeDefined();
|
|
27
|
+
expect(validator.errors?.[0].keyword).toBe('required');
|
|
28
|
+
expect(validator.errors?.[0].params.missingProperty).toBe('apiKey');
|
|
34
29
|
});
|
|
35
|
-
|
|
30
|
+
test('should pass when all required fields are present', () => {
|
|
36
31
|
const schema = {
|
|
37
32
|
type: 'object',
|
|
38
33
|
properties: {
|
|
@@ -46,12 +41,12 @@ const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
|
46
41
|
apiKey: 'sk-test123',
|
|
47
42
|
endpoint: 'https://api.example.com'
|
|
48
43
|
});
|
|
49
|
-
|
|
50
|
-
|
|
44
|
+
expect(result).toBe(true);
|
|
45
|
+
expect(validator.errors).toBeNull();
|
|
51
46
|
});
|
|
52
47
|
});
|
|
53
|
-
|
|
54
|
-
|
|
48
|
+
describe('Const Field Validation', () => {
|
|
49
|
+
test('should reject when const field has wrong value', () => {
|
|
55
50
|
const schema = {
|
|
56
51
|
type: 'object',
|
|
57
52
|
properties: {
|
|
@@ -63,11 +58,11 @@ const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
|
63
58
|
};
|
|
64
59
|
const validator = ajv.compile(schema);
|
|
65
60
|
const result = validator({ tokenUrl: 'https://wrong.url.com' });
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
61
|
+
expect(result).toBe(false);
|
|
62
|
+
expect(validator.errors?.[0].keyword).toBe('const');
|
|
63
|
+
expect(validator.errors?.[0].params.allowedValue).toBe('https://api.box.com/oauth2/token');
|
|
69
64
|
});
|
|
70
|
-
|
|
65
|
+
test('should pass when const field matches exactly', () => {
|
|
71
66
|
const schema = {
|
|
72
67
|
type: 'object',
|
|
73
68
|
properties: {
|
|
@@ -79,11 +74,11 @@ const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
|
79
74
|
};
|
|
80
75
|
const validator = ajv.compile(schema);
|
|
81
76
|
const result = validator({ tokenUrl: 'https://api.box.com/oauth2/token' });
|
|
82
|
-
|
|
77
|
+
expect(result).toBe(true);
|
|
83
78
|
});
|
|
84
79
|
});
|
|
85
|
-
|
|
86
|
-
|
|
80
|
+
describe('Enum Field Validation', () => {
|
|
81
|
+
test('should reject when value is not in enum', () => {
|
|
87
82
|
const schema = {
|
|
88
83
|
type: 'object',
|
|
89
84
|
properties: {
|
|
@@ -95,11 +90,11 @@ const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
|
95
90
|
};
|
|
96
91
|
const validator = ajv.compile(schema);
|
|
97
92
|
const result = validator({ boxSubjectType: 'invalid' });
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
93
|
+
expect(result).toBe(false);
|
|
94
|
+
expect(validator.errors?.[0].keyword).toBe('enum');
|
|
95
|
+
expect(validator.errors?.[0].params.allowedValues).toEqual(['enterprise', 'user']);
|
|
101
96
|
});
|
|
102
|
-
|
|
97
|
+
test('should pass when value is in enum', () => {
|
|
103
98
|
const schema = {
|
|
104
99
|
type: 'object',
|
|
105
100
|
properties: {
|
|
@@ -111,11 +106,11 @@ const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
|
111
106
|
};
|
|
112
107
|
const validator = ajv.compile(schema);
|
|
113
108
|
const result = validator({ boxSubjectType: 'enterprise' });
|
|
114
|
-
|
|
109
|
+
expect(result).toBe(true);
|
|
115
110
|
});
|
|
116
111
|
});
|
|
117
|
-
|
|
118
|
-
|
|
112
|
+
describe('Format Validation', () => {
|
|
113
|
+
test('should reject invalid URI format', () => {
|
|
119
114
|
const schema = {
|
|
120
115
|
type: 'object',
|
|
121
116
|
properties: {
|
|
@@ -127,11 +122,11 @@ const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
|
127
122
|
};
|
|
128
123
|
const validator = ajv.compile(schema);
|
|
129
124
|
const result = validator({ endpoint: 'not-a-valid-url' });
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
125
|
+
expect(result).toBe(false);
|
|
126
|
+
expect(validator.errors?.[0].keyword).toBe('format');
|
|
127
|
+
expect(validator.errors?.[0].params.format).toBe('uri');
|
|
133
128
|
});
|
|
134
|
-
|
|
129
|
+
test('should pass valid URI format', () => {
|
|
135
130
|
const schema = {
|
|
136
131
|
type: 'object',
|
|
137
132
|
properties: {
|
|
@@ -143,9 +138,9 @@ const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
|
143
138
|
};
|
|
144
139
|
const validator = ajv.compile(schema);
|
|
145
140
|
const result = validator({ endpoint: 'https://api.example.com/v1' });
|
|
146
|
-
|
|
141
|
+
expect(result).toBe(true);
|
|
147
142
|
});
|
|
148
|
-
|
|
143
|
+
test('should reject invalid email format', () => {
|
|
149
144
|
const schema = {
|
|
150
145
|
type: 'object',
|
|
151
146
|
properties: {
|
|
@@ -157,10 +152,10 @@ const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
|
157
152
|
};
|
|
158
153
|
const validator = ajv.compile(schema);
|
|
159
154
|
const result = validator({ email: 'not-an-email' });
|
|
160
|
-
|
|
161
|
-
|
|
155
|
+
expect(result).toBe(false);
|
|
156
|
+
expect(validator.errors?.[0].params.format).toBe('email');
|
|
162
157
|
});
|
|
163
|
-
|
|
158
|
+
test('should pass valid email format', () => {
|
|
164
159
|
const schema = {
|
|
165
160
|
type: 'object',
|
|
166
161
|
properties: {
|
|
@@ -172,9 +167,9 @@ const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
|
172
167
|
};
|
|
173
168
|
const validator = ajv.compile(schema);
|
|
174
169
|
const result = validator({ email: 'test@example.com' });
|
|
175
|
-
|
|
170
|
+
expect(result).toBe(true);
|
|
176
171
|
});
|
|
177
|
-
|
|
172
|
+
test('should reject invalid uuid format', () => {
|
|
178
173
|
const schema = {
|
|
179
174
|
type: 'object',
|
|
180
175
|
properties: {
|
|
@@ -186,9 +181,9 @@ const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
|
186
181
|
};
|
|
187
182
|
const validator = ajv.compile(schema);
|
|
188
183
|
const result = validator({ id: 'not-a-uuid' });
|
|
189
|
-
|
|
184
|
+
expect(result).toBe(false);
|
|
190
185
|
});
|
|
191
|
-
|
|
186
|
+
test('should pass valid uuid format', () => {
|
|
192
187
|
const schema = {
|
|
193
188
|
type: 'object',
|
|
194
189
|
properties: {
|
|
@@ -200,11 +195,11 @@ const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
|
200
195
|
};
|
|
201
196
|
const validator = ajv.compile(schema);
|
|
202
197
|
const result = validator({ id: '550e8400-e29b-41d4-a716-446655440000' });
|
|
203
|
-
|
|
198
|
+
expect(result).toBe(true);
|
|
204
199
|
});
|
|
205
200
|
});
|
|
206
|
-
|
|
207
|
-
|
|
201
|
+
describe('Pattern Validation', () => {
|
|
202
|
+
test('should reject value not matching pattern', () => {
|
|
208
203
|
const schema = {
|
|
209
204
|
type: 'object',
|
|
210
205
|
properties: {
|
|
@@ -216,10 +211,10 @@ const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
|
216
211
|
};
|
|
217
212
|
const validator = ajv.compile(schema);
|
|
218
213
|
const result = validator({ apiKey: 'invalid-key' });
|
|
219
|
-
|
|
220
|
-
|
|
214
|
+
expect(result).toBe(false);
|
|
215
|
+
expect(validator.errors?.[0].keyword).toBe('pattern');
|
|
221
216
|
});
|
|
222
|
-
|
|
217
|
+
test('should pass value matching pattern', () => {
|
|
223
218
|
const schema = {
|
|
224
219
|
type: 'object',
|
|
225
220
|
properties: {
|
|
@@ -231,11 +226,11 @@ const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
|
231
226
|
};
|
|
232
227
|
const validator = ajv.compile(schema);
|
|
233
228
|
const result = validator({ apiKey: 'sk-abcdefghijklmnopqrstuvwxyz123456' });
|
|
234
|
-
|
|
229
|
+
expect(result).toBe(true);
|
|
235
230
|
});
|
|
236
231
|
});
|
|
237
|
-
|
|
238
|
-
|
|
232
|
+
describe('Length Validation', () => {
|
|
233
|
+
test('should reject value shorter than minLength', () => {
|
|
239
234
|
const schema = {
|
|
240
235
|
type: 'object',
|
|
241
236
|
properties: {
|
|
@@ -247,11 +242,11 @@ const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
|
247
242
|
};
|
|
248
243
|
const validator = ajv.compile(schema);
|
|
249
244
|
const result = validator({ password: 'short' });
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
245
|
+
expect(result).toBe(false);
|
|
246
|
+
expect(validator.errors?.[0].keyword).toBe('minLength');
|
|
247
|
+
expect(validator.errors?.[0].params.limit).toBe(8);
|
|
253
248
|
});
|
|
254
|
-
|
|
249
|
+
test('should reject value longer than maxLength', () => {
|
|
255
250
|
const schema = {
|
|
256
251
|
type: 'object',
|
|
257
252
|
properties: {
|
|
@@ -263,11 +258,11 @@ const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
|
263
258
|
};
|
|
264
259
|
const validator = ajv.compile(schema);
|
|
265
260
|
const result = validator({ name: 'this-is-too-long' });
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
261
|
+
expect(result).toBe(false);
|
|
262
|
+
expect(validator.errors?.[0].keyword).toBe('maxLength');
|
|
263
|
+
expect(validator.errors?.[0].params.limit).toBe(10);
|
|
269
264
|
});
|
|
270
|
-
|
|
265
|
+
test('should pass value within length bounds', () => {
|
|
271
266
|
const schema = {
|
|
272
267
|
type: 'object',
|
|
273
268
|
properties: {
|
|
@@ -280,11 +275,11 @@ const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
|
280
275
|
};
|
|
281
276
|
const validator = ajv.compile(schema);
|
|
282
277
|
const result = validator({ password: 'goodpassword' });
|
|
283
|
-
|
|
278
|
+
expect(result).toBe(true);
|
|
284
279
|
});
|
|
285
280
|
});
|
|
286
|
-
|
|
287
|
-
|
|
281
|
+
describe('Numeric Range Validation', () => {
|
|
282
|
+
test('should reject value below minimum', () => {
|
|
288
283
|
const schema = {
|
|
289
284
|
type: 'object',
|
|
290
285
|
properties: {
|
|
@@ -296,10 +291,10 @@ const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
|
296
291
|
};
|
|
297
292
|
const validator = ajv.compile(schema);
|
|
298
293
|
const result = validator({ port: 80 });
|
|
299
|
-
|
|
300
|
-
|
|
294
|
+
expect(result).toBe(false);
|
|
295
|
+
expect(validator.errors?.[0].keyword).toBe('minimum');
|
|
301
296
|
});
|
|
302
|
-
|
|
297
|
+
test('should reject value above maximum', () => {
|
|
303
298
|
const schema = {
|
|
304
299
|
type: 'object',
|
|
305
300
|
properties: {
|
|
@@ -311,10 +306,10 @@ const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
|
311
306
|
};
|
|
312
307
|
const validator = ajv.compile(schema);
|
|
313
308
|
const result = validator({ port: 70000 });
|
|
314
|
-
|
|
315
|
-
|
|
309
|
+
expect(result).toBe(false);
|
|
310
|
+
expect(validator.errors?.[0].keyword).toBe('maximum');
|
|
316
311
|
});
|
|
317
|
-
|
|
312
|
+
test('should pass value within numeric bounds', () => {
|
|
318
313
|
const schema = {
|
|
319
314
|
type: 'object',
|
|
320
315
|
properties: {
|
|
@@ -327,11 +322,11 @@ const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
|
327
322
|
};
|
|
328
323
|
const validator = ajv.compile(schema);
|
|
329
324
|
const result = validator({ port: 8080 });
|
|
330
|
-
|
|
325
|
+
expect(result).toBe(true);
|
|
331
326
|
});
|
|
332
327
|
});
|
|
333
|
-
|
|
334
|
-
|
|
328
|
+
describe('Combined Constraints', () => {
|
|
329
|
+
test('should validate Box.com OAuth schema', () => {
|
|
335
330
|
const schema = {
|
|
336
331
|
type: 'object',
|
|
337
332
|
properties: {
|
|
@@ -349,26 +344,26 @@ const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
|
349
344
|
required: ['clientId', 'clientSecret', 'tokenUrl', 'boxSubjectType']
|
|
350
345
|
};
|
|
351
346
|
const validator = ajv.compile(schema);
|
|
352
|
-
|
|
347
|
+
expect(validator({
|
|
353
348
|
clientId: 'test-client',
|
|
354
349
|
clientSecret: 'test-secret',
|
|
355
350
|
tokenUrl: 'https://api.box.com/oauth2/token',
|
|
356
351
|
boxSubjectType: 'enterprise'
|
|
357
352
|
})).toBe(true);
|
|
358
|
-
|
|
353
|
+
expect(validator({
|
|
359
354
|
clientId: 'test-client',
|
|
360
355
|
clientSecret: 'test-secret',
|
|
361
356
|
tokenUrl: 'https://wrong.url.com',
|
|
362
357
|
boxSubjectType: 'enterprise'
|
|
363
358
|
})).toBe(false);
|
|
364
|
-
|
|
359
|
+
expect(validator({
|
|
365
360
|
clientId: 'test-client',
|
|
366
361
|
clientSecret: 'test-secret',
|
|
367
362
|
tokenUrl: 'https://api.box.com/oauth2/token',
|
|
368
363
|
boxSubjectType: 'invalid'
|
|
369
364
|
})).toBe(false);
|
|
370
365
|
});
|
|
371
|
-
|
|
366
|
+
test('should validate GCP credential schema with defaults', () => {
|
|
372
367
|
const schema = {
|
|
373
368
|
type: 'object',
|
|
374
369
|
properties: {
|
|
@@ -385,18 +380,18 @@ const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
|
385
380
|
required: ['projectId']
|
|
386
381
|
};
|
|
387
382
|
const validator = ajv.compile(schema);
|
|
388
|
-
|
|
383
|
+
expect(validator({
|
|
389
384
|
projectId: 'my-project',
|
|
390
385
|
endpoint: 'https://api.example.com'
|
|
391
386
|
})).toBe(true);
|
|
392
|
-
|
|
387
|
+
expect(validator({
|
|
393
388
|
projectId: 'my-project',
|
|
394
389
|
endpoint: 'not-a-uri'
|
|
395
390
|
})).toBe(false);
|
|
396
391
|
});
|
|
397
392
|
});
|
|
398
|
-
|
|
399
|
-
|
|
393
|
+
describe('Error Message Formatting', () => {
|
|
394
|
+
test('should format required error message', () => {
|
|
400
395
|
const schema = {
|
|
401
396
|
type: 'object',
|
|
402
397
|
properties: {
|
|
@@ -407,12 +402,12 @@ const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
|
407
402
|
const validator = ajv.compile(schema);
|
|
408
403
|
validator({});
|
|
409
404
|
const error = validator.errors?.[0];
|
|
410
|
-
|
|
411
|
-
|
|
405
|
+
expect(error?.keyword).toBe('required');
|
|
406
|
+
expect(error?.params.missingProperty).toBe('apiKey');
|
|
412
407
|
const message = `Missing required field: ${error?.params.missingProperty}`;
|
|
413
|
-
|
|
408
|
+
expect(message).toBe('Missing required field: apiKey');
|
|
414
409
|
});
|
|
415
|
-
|
|
410
|
+
test('should format const error message', () => {
|
|
416
411
|
const schema = {
|
|
417
412
|
type: 'object',
|
|
418
413
|
properties: {
|
|
@@ -424,9 +419,9 @@ const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
|
424
419
|
const error = validator.errors?.[0];
|
|
425
420
|
const field = error?.instancePath.replace(/^\//, '') || 'credential';
|
|
426
421
|
const message = `Field "${field}" must be "${error?.params.allowedValue}"`;
|
|
427
|
-
|
|
422
|
+
expect(message).toContain('must be "https://api.box.com/oauth2/token"');
|
|
428
423
|
});
|
|
429
|
-
|
|
424
|
+
test('should format enum error message', () => {
|
|
430
425
|
const schema = {
|
|
431
426
|
type: 'object',
|
|
432
427
|
properties: {
|
|
@@ -438,7 +433,7 @@ const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
|
438
433
|
const error = validator.errors?.[0];
|
|
439
434
|
const allowed = error?.params.allowedValues.join(', ');
|
|
440
435
|
const message = `Field "type" must be one of: ${allowed}`;
|
|
441
|
-
|
|
436
|
+
expect(message).toBe('Field "type" must be one of: enterprise, user');
|
|
442
437
|
});
|
|
443
438
|
});
|
|
444
439
|
});
|