@itentialopensource/adapter-okta 0.1.1 → 0.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.
- package/AUTH.md +39 -0
- package/BROKER.md +199 -0
- package/CALLS.md +1735 -0
- package/CHANGELOG.md +17 -2
- package/CODE_OF_CONDUCT.md +12 -17
- package/CONTRIBUTING.md +3 -148
- package/ENHANCE.md +69 -0
- package/PROPERTIES.md +641 -0
- package/README.md +237 -574
- package/SUMMARY.md +9 -0
- package/SYSTEMINFO.md +11 -0
- package/TROUBLESHOOT.md +47 -0
- package/adapter.js +380 -261
- package/adapterBase.js +854 -408
- package/changelogs/changelog.md +16 -0
- package/entities/.generic/action.json +110 -5
- package/entities/.generic/schema.json +6 -1
- package/error.json +6 -0
- package/metadata.json +49 -0
- package/package.json +27 -24
- package/pronghorn.json +691 -88
- package/propertiesDecorators.json +14 -0
- package/propertiesSchema.json +843 -7
- package/refs?service=git-upload-pack +0 -0
- package/report/adapter-openapi.json +22861 -0
- package/report/adapter-openapi.yaml +15054 -0
- package/report/adapterInfo.json +10 -0
- package/report/updateReport1654086669778.json +120 -0
- package/report/updateReport1691508740078.json +120 -0
- package/report/updateReport1692203198064.json +120 -0
- package/report/updateReport1694468322367.json +120 -0
- package/report/updateReport1698422603278.json +120 -0
- package/sampleProperties.json +156 -3
- package/test/integration/adapterTestBasicGet.js +3 -5
- package/test/integration/adapterTestConnectivity.js +91 -42
- package/test/integration/adapterTestIntegration.js +155 -104
- package/test/unit/adapterBaseTestUnit.js +392 -309
- package/test/unit/adapterTestUnit.js +521 -273
- package/utils/adapterInfo.js +206 -0
- package/utils/addAuth.js +94 -0
- package/utils/artifactize.js +1 -1
- package/utils/basicGet.js +1 -14
- package/utils/checkMigrate.js +1 -1
- package/utils/entitiesToDB.js +179 -0
- package/utils/findPath.js +1 -1
- package/utils/methodDocumentor.js +273 -0
- package/utils/modify.js +14 -16
- package/utils/packModificationScript.js +1 -1
- package/utils/patches2bundledDeps.js +90 -0
- package/utils/pre-commit.sh +5 -0
- package/utils/removeHooks.js +20 -0
- package/utils/taskMover.js +309 -0
- package/utils/tbScript.js +129 -53
- package/utils/tbUtils.js +152 -35
- package/utils/testRunner.js +17 -17
- package/utils/troubleshootingAdapter.js +10 -31
- package/workflows/README.md +0 -3
|
@@ -4,36 +4,48 @@
|
|
|
4
4
|
/* global describe it log pronghornProps */
|
|
5
5
|
/* eslint global-require: warn */
|
|
6
6
|
/* eslint no-unused-vars: warn */
|
|
7
|
+
/* eslint import/no-dynamic-require:warn */
|
|
7
8
|
|
|
8
9
|
// include required items for testing & logging
|
|
9
10
|
const assert = require('assert');
|
|
10
|
-
const fs = require('fs-extra');
|
|
11
|
-
const mocha = require('mocha');
|
|
12
11
|
const path = require('path');
|
|
13
12
|
const util = require('util');
|
|
14
|
-
const winston = require('winston');
|
|
15
13
|
const execute = require('child_process').execSync;
|
|
14
|
+
const fs = require('fs-extra');
|
|
15
|
+
const mocha = require('mocha');
|
|
16
|
+
const winston = require('winston');
|
|
16
17
|
const { expect } = require('chai');
|
|
17
18
|
const { use } = require('chai');
|
|
18
19
|
const td = require('testdouble');
|
|
20
|
+
const Ajv = require('ajv');
|
|
19
21
|
|
|
22
|
+
const ajv = new Ajv({ strictSchema: false, allErrors: true, allowUnionTypes: true });
|
|
20
23
|
const anything = td.matchers.anything();
|
|
21
|
-
|
|
22
|
-
// stub and attemptTimeout are used throughout the code so set them here
|
|
23
24
|
let logLevel = 'none';
|
|
24
|
-
const stub = true;
|
|
25
25
|
const isRapidFail = false;
|
|
26
|
-
|
|
26
|
+
|
|
27
|
+
// read in the properties from the sampleProperties files
|
|
28
|
+
let adaptdir = __dirname;
|
|
29
|
+
if (adaptdir.endsWith('/test/integration')) {
|
|
30
|
+
adaptdir = adaptdir.substring(0, adaptdir.length - 17);
|
|
31
|
+
} else if (adaptdir.endsWith('/test/unit')) {
|
|
32
|
+
adaptdir = adaptdir.substring(0, adaptdir.length - 10);
|
|
33
|
+
}
|
|
34
|
+
const samProps = require(`${adaptdir}/sampleProperties.json`).properties;
|
|
27
35
|
|
|
28
36
|
// these variables can be changed to run in integrated mode so easier to set them here
|
|
29
37
|
// always check these in with bogus data!!!
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
38
|
+
samProps.stub = true;
|
|
39
|
+
samProps.host = 'replace.hostorip.here';
|
|
40
|
+
samProps.authentication.username = 'username';
|
|
41
|
+
samProps.authentication.password = 'password';
|
|
42
|
+
samProps.protocol = 'http';
|
|
43
|
+
samProps.port = 80;
|
|
44
|
+
samProps.ssl.enabled = false;
|
|
45
|
+
samProps.ssl.accept_invalid_cert = false;
|
|
46
|
+
samProps.request.attempt_timeout = 1200000;
|
|
47
|
+
const attemptTimeout = samProps.request.attempt_timeout;
|
|
48
|
+
const { stub } = samProps;
|
|
37
49
|
|
|
38
50
|
// these are the adapter properties. You generally should not need to alter
|
|
39
51
|
// any of these after they are initially set up
|
|
@@ -45,99 +57,7 @@ global.pronghornProps = {
|
|
|
45
57
|
adapters: [{
|
|
46
58
|
id: 'Test-okta',
|
|
47
59
|
type: 'Okta',
|
|
48
|
-
properties:
|
|
49
|
-
host,
|
|
50
|
-
port,
|
|
51
|
-
base_path: '/',
|
|
52
|
-
version: '',
|
|
53
|
-
cache_location: 'none',
|
|
54
|
-
encode_pathvars: true,
|
|
55
|
-
save_metric: false,
|
|
56
|
-
stub,
|
|
57
|
-
protocol,
|
|
58
|
-
authentication: {
|
|
59
|
-
auth_method: 'no_authentication',
|
|
60
|
-
username,
|
|
61
|
-
password,
|
|
62
|
-
token: '',
|
|
63
|
-
invalid_token_error: 401,
|
|
64
|
-
token_timeout: -1,
|
|
65
|
-
token_cache: 'local',
|
|
66
|
-
auth_field: 'header.headers.Authorization',
|
|
67
|
-
auth_field_format: 'Basic {b64}{username}:{password}{/b64}',
|
|
68
|
-
auth_logging: false
|
|
69
|
-
},
|
|
70
|
-
healthcheck: {
|
|
71
|
-
type: 'none',
|
|
72
|
-
frequency: 60000,
|
|
73
|
-
query_object: {}
|
|
74
|
-
},
|
|
75
|
-
throttle: {
|
|
76
|
-
throttle_enabled: false,
|
|
77
|
-
number_pronghorns: 1,
|
|
78
|
-
sync_async: 'sync',
|
|
79
|
-
max_in_queue: 1000,
|
|
80
|
-
concurrent_max: 1,
|
|
81
|
-
expire_timeout: 0,
|
|
82
|
-
avg_runtime: 200,
|
|
83
|
-
priorities: [
|
|
84
|
-
{
|
|
85
|
-
value: 0,
|
|
86
|
-
percent: 100
|
|
87
|
-
}
|
|
88
|
-
]
|
|
89
|
-
},
|
|
90
|
-
request: {
|
|
91
|
-
number_redirects: 0,
|
|
92
|
-
number_retries: 3,
|
|
93
|
-
limit_retry_error: [0],
|
|
94
|
-
failover_codes: [],
|
|
95
|
-
attempt_timeout: attemptTimeout,
|
|
96
|
-
global_request: {
|
|
97
|
-
payload: {},
|
|
98
|
-
uriOptions: {},
|
|
99
|
-
addlHeaders: {},
|
|
100
|
-
authData: {}
|
|
101
|
-
},
|
|
102
|
-
healthcheck_on_timeout: true,
|
|
103
|
-
return_raw: true,
|
|
104
|
-
archiving: false,
|
|
105
|
-
return_request: false
|
|
106
|
-
},
|
|
107
|
-
proxy: {
|
|
108
|
-
enabled: false,
|
|
109
|
-
host: '',
|
|
110
|
-
port: 1,
|
|
111
|
-
protocol: 'http',
|
|
112
|
-
username: '',
|
|
113
|
-
password: ''
|
|
114
|
-
},
|
|
115
|
-
ssl: {
|
|
116
|
-
ecdhCurve: '',
|
|
117
|
-
enabled: sslenable,
|
|
118
|
-
accept_invalid_cert: sslinvalid,
|
|
119
|
-
ca_file: '',
|
|
120
|
-
key_file: '',
|
|
121
|
-
cert_file: '',
|
|
122
|
-
secure_protocol: '',
|
|
123
|
-
ciphers: ''
|
|
124
|
-
},
|
|
125
|
-
mongo: {
|
|
126
|
-
host: '',
|
|
127
|
-
port: 0,
|
|
128
|
-
database: '',
|
|
129
|
-
username: '',
|
|
130
|
-
password: '',
|
|
131
|
-
replSet: '',
|
|
132
|
-
db_ssl: {
|
|
133
|
-
enabled: false,
|
|
134
|
-
accept_invalid_cert: false,
|
|
135
|
-
ca_file: '',
|
|
136
|
-
key_file: '',
|
|
137
|
-
cert_file: ''
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}
|
|
60
|
+
properties: samProps
|
|
141
61
|
}]
|
|
142
62
|
}
|
|
143
63
|
};
|
|
@@ -268,10 +188,10 @@ describe('[unit] Okta Adapter Test', () => {
|
|
|
268
188
|
});
|
|
269
189
|
|
|
270
190
|
let wffunctions = [];
|
|
271
|
-
describe('#
|
|
191
|
+
describe('#iapGetAdapterWorkflowFunctions', () => {
|
|
272
192
|
it('should retrieve workflow functions', (done) => {
|
|
273
193
|
try {
|
|
274
|
-
wffunctions = a.
|
|
194
|
+
wffunctions = a.iapGetAdapterWorkflowFunctions([]);
|
|
275
195
|
|
|
276
196
|
try {
|
|
277
197
|
assert.notEqual(0, wffunctions.length);
|
|
@@ -302,19 +222,24 @@ describe('[unit] Okta Adapter Test', () => {
|
|
|
302
222
|
it('package.json should be validated', (done) => {
|
|
303
223
|
try {
|
|
304
224
|
const packageDotJson = require('../../package.json');
|
|
305
|
-
|
|
306
|
-
const
|
|
307
|
-
|
|
308
|
-
|
|
225
|
+
// Define the JSON schema for package.json
|
|
226
|
+
const packageJsonSchema = {
|
|
227
|
+
type: 'object',
|
|
228
|
+
properties: {
|
|
229
|
+
name: { type: 'string' },
|
|
230
|
+
version: { type: 'string' }
|
|
231
|
+
// May need to add more properties as needed
|
|
232
|
+
},
|
|
233
|
+
required: ['name', 'version']
|
|
309
234
|
};
|
|
310
|
-
const
|
|
235
|
+
const validate = ajv.compile(packageJsonSchema);
|
|
236
|
+
const isValid = validate(packageDotJson);
|
|
311
237
|
|
|
312
|
-
if (
|
|
313
|
-
log.error('The package.json contains
|
|
314
|
-
|
|
315
|
-
assert.equal(true, results.valid);
|
|
238
|
+
if (isValid === false) {
|
|
239
|
+
log.error('The package.json contains errors');
|
|
240
|
+
assert.equal(true, isValid);
|
|
316
241
|
} else {
|
|
317
|
-
assert.equal(true,
|
|
242
|
+
assert.equal(true, isValid);
|
|
318
243
|
}
|
|
319
244
|
|
|
320
245
|
done();
|
|
@@ -353,6 +278,7 @@ describe('[unit] Okta Adapter Test', () => {
|
|
|
353
278
|
assert.notEqual(undefined, packageDotJson.scripts);
|
|
354
279
|
assert.notEqual(null, packageDotJson.scripts);
|
|
355
280
|
assert.notEqual('', packageDotJson.scripts);
|
|
281
|
+
assert.equal('node utils/setup.js', packageDotJson.scripts.preinstall);
|
|
356
282
|
assert.equal('node --max_old_space_size=4096 ./node_modules/eslint/bin/eslint.js . --ext .json --ext .js', packageDotJson.scripts.lint);
|
|
357
283
|
assert.equal('node --max_old_space_size=4096 ./node_modules/eslint/bin/eslint.js . --ext .json --ext .js --quiet', packageDotJson.scripts['lint:errors']);
|
|
358
284
|
assert.equal('mocha test/unit/adapterBaseTestUnit.js --LOG=error', packageDotJson.scripts['test:baseunit']);
|
|
@@ -360,6 +286,8 @@ describe('[unit] Okta Adapter Test', () => {
|
|
|
360
286
|
assert.equal('mocha test/integration/adapterTestIntegration.js --LOG=error', packageDotJson.scripts['test:integration']);
|
|
361
287
|
assert.equal('nyc --reporter html --reporter text mocha --reporter dot test/*', packageDotJson.scripts['test:cover']);
|
|
362
288
|
assert.equal('npm run test:baseunit && npm run test:unit && npm run test:integration', packageDotJson.scripts.test);
|
|
289
|
+
assert.equal('npm publish --registry=https://registry.npmjs.org --access=public', packageDotJson.scripts.deploy);
|
|
290
|
+
assert.equal('npm run deploy', packageDotJson.scripts.build);
|
|
363
291
|
done();
|
|
364
292
|
} catch (error) {
|
|
365
293
|
log.error(`Test Failure: ${error}`);
|
|
@@ -372,6 +300,9 @@ describe('[unit] Okta Adapter Test', () => {
|
|
|
372
300
|
assert.notEqual(undefined, packageDotJson.repository);
|
|
373
301
|
assert.notEqual(null, packageDotJson.repository);
|
|
374
302
|
assert.notEqual('', packageDotJson.repository);
|
|
303
|
+
assert.equal('git', packageDotJson.repository.type);
|
|
304
|
+
assert.equal('git@gitlab.com:itentialopensource/adapters/', packageDotJson.repository.url.substring(0, 43));
|
|
305
|
+
assert.equal('https://gitlab.com/itentialopensource/adapters/', packageDotJson.homepage.substring(0, 47));
|
|
375
306
|
done();
|
|
376
307
|
} catch (error) {
|
|
377
308
|
log.error(`Test Failure: ${error}`);
|
|
@@ -384,17 +315,17 @@ describe('[unit] Okta Adapter Test', () => {
|
|
|
384
315
|
assert.notEqual(undefined, packageDotJson.dependencies);
|
|
385
316
|
assert.notEqual(null, packageDotJson.dependencies);
|
|
386
317
|
assert.notEqual('', packageDotJson.dependencies);
|
|
387
|
-
assert.equal('^
|
|
388
|
-
assert.equal('^
|
|
389
|
-
assert.equal('^
|
|
390
|
-
assert.equal('^
|
|
391
|
-
assert.equal('^
|
|
318
|
+
assert.equal('^8.12.0', packageDotJson.dependencies.ajv);
|
|
319
|
+
assert.equal('^1.6.3', packageDotJson.dependencies.axios);
|
|
320
|
+
assert.equal('^11.0.0', packageDotJson.dependencies.commander);
|
|
321
|
+
assert.equal('^11.1.1', packageDotJson.dependencies['fs-extra']);
|
|
322
|
+
assert.equal('^10.2.0', packageDotJson.dependencies.mocha);
|
|
392
323
|
assert.equal('^2.0.1', packageDotJson.dependencies['mocha-param']);
|
|
393
|
-
assert.equal('^0.5.3', packageDotJson.dependencies['network-diagnostics']);
|
|
394
324
|
assert.equal('^15.1.0', packageDotJson.dependencies.nyc);
|
|
325
|
+
assert.equal('^0.4.4', packageDotJson.dependencies.ping);
|
|
395
326
|
assert.equal('^1.4.10', packageDotJson.dependencies['readline-sync']);
|
|
396
|
-
assert.equal('^7.3
|
|
397
|
-
assert.equal('^3.
|
|
327
|
+
assert.equal('^7.5.3', packageDotJson.dependencies.semver);
|
|
328
|
+
assert.equal('^3.9.0', packageDotJson.dependencies.winston);
|
|
398
329
|
done();
|
|
399
330
|
} catch (error) {
|
|
400
331
|
log.error(`Test Failure: ${error}`);
|
|
@@ -407,15 +338,12 @@ describe('[unit] Okta Adapter Test', () => {
|
|
|
407
338
|
assert.notEqual(undefined, packageDotJson.devDependencies);
|
|
408
339
|
assert.notEqual(null, packageDotJson.devDependencies);
|
|
409
340
|
assert.notEqual('', packageDotJson.devDependencies);
|
|
410
|
-
assert.equal('^
|
|
411
|
-
assert.equal('^
|
|
412
|
-
assert.equal('^
|
|
413
|
-
assert.equal('^
|
|
414
|
-
assert.equal('^
|
|
415
|
-
assert.equal('^
|
|
416
|
-
assert.equal('^3.0.0', packageDotJson.devDependencies['eslint-plugin-json']);
|
|
417
|
-
assert.equal('^0.6.3', packageDotJson.devDependencies['package-json-validator']);
|
|
418
|
-
assert.equal('^3.16.1', packageDotJson.devDependencies.testdouble);
|
|
341
|
+
assert.equal('^4.3.7', packageDotJson.devDependencies.chai);
|
|
342
|
+
assert.equal('^8.44.0', packageDotJson.devDependencies.eslint);
|
|
343
|
+
assert.equal('^15.0.0', packageDotJson.devDependencies['eslint-config-airbnb-base']);
|
|
344
|
+
assert.equal('^2.27.5', packageDotJson.devDependencies['eslint-plugin-import']);
|
|
345
|
+
assert.equal('^3.1.0', packageDotJson.devDependencies['eslint-plugin-json']);
|
|
346
|
+
assert.equal('^3.18.0', packageDotJson.devDependencies.testdouble);
|
|
419
347
|
done();
|
|
420
348
|
} catch (error) {
|
|
421
349
|
log.error(`Test Failure: ${error}`);
|
|
@@ -458,16 +386,31 @@ describe('[unit] Okta Adapter Test', () => {
|
|
|
458
386
|
assert.notEqual('', pronghornDotJson.methods);
|
|
459
387
|
assert.equal(true, Array.isArray(pronghornDotJson.methods));
|
|
460
388
|
assert.notEqual(0, pronghornDotJson.methods.length);
|
|
461
|
-
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === '
|
|
462
|
-
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === '
|
|
463
|
-
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === '
|
|
464
|
-
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === '
|
|
465
|
-
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === '
|
|
466
|
-
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === '
|
|
467
|
-
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === '
|
|
468
|
-
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === '
|
|
469
|
-
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === '
|
|
389
|
+
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapUpdateAdapterConfiguration'));
|
|
390
|
+
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapSuspendAdapter'));
|
|
391
|
+
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapUnsuspendAdapter'));
|
|
392
|
+
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapGetAdapterQueue'));
|
|
393
|
+
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapFindAdapterPath'));
|
|
394
|
+
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapTroubleshootAdapter'));
|
|
395
|
+
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapRunAdapterHealthcheck'));
|
|
396
|
+
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapRunAdapterConnectivity'));
|
|
397
|
+
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapRunAdapterBasicGet'));
|
|
398
|
+
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapMoveAdapterEntitiesToDB'));
|
|
399
|
+
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapDeactivateTasks'));
|
|
400
|
+
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapActivateTasks'));
|
|
401
|
+
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapPopulateEntityCache'));
|
|
402
|
+
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapRetrieveEntitiesCache'));
|
|
403
|
+
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'getDevice'));
|
|
404
|
+
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'getDevicesFiltered'));
|
|
405
|
+
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'isAlive'));
|
|
406
|
+
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'getConfig'));
|
|
407
|
+
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapGetDeviceCount'));
|
|
408
|
+
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapExpandedGenericAdapterRequest'));
|
|
470
409
|
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'genericAdapterRequest'));
|
|
410
|
+
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'genericAdapterRequestNoBasePath'));
|
|
411
|
+
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapRunAdapterLint'));
|
|
412
|
+
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapRunAdapterTests'));
|
|
413
|
+
assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapGetAdapterInventory'));
|
|
471
414
|
done();
|
|
472
415
|
} catch (error) {
|
|
473
416
|
log.error(`Test Failure: ${error}`);
|
|
@@ -588,6 +531,39 @@ describe('[unit] Okta Adapter Test', () => {
|
|
|
588
531
|
done(error);
|
|
589
532
|
}
|
|
590
533
|
});
|
|
534
|
+
it('pronghorn.json verify input/output schema objects', (done) => {
|
|
535
|
+
const verifySchema = (methodName, schema) => {
|
|
536
|
+
try {
|
|
537
|
+
ajv.compile(schema);
|
|
538
|
+
} catch (error) {
|
|
539
|
+
const errorMessage = `Invalid schema found in '${methodName}' method.
|
|
540
|
+
Schema => ${JSON.stringify(schema)}.
|
|
541
|
+
Details => ${error.message}`;
|
|
542
|
+
throw new Error(errorMessage);
|
|
543
|
+
}
|
|
544
|
+
};
|
|
545
|
+
|
|
546
|
+
try {
|
|
547
|
+
const pronghornDotJson = require('../../pronghorn.json');
|
|
548
|
+
const { methods } = pronghornDotJson;
|
|
549
|
+
for (let i = 0; i < methods.length; i += 1) {
|
|
550
|
+
for (let j = 0; j < methods[i].input.length; j += 1) {
|
|
551
|
+
const inputSchema = methods[i].input[j].schema;
|
|
552
|
+
if (inputSchema) {
|
|
553
|
+
verifySchema(methods[i].name, inputSchema);
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
const outputSchema = methods[i].output.schema;
|
|
557
|
+
if (outputSchema) {
|
|
558
|
+
verifySchema(methods[i].name, outputSchema);
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
done();
|
|
562
|
+
} catch (error) {
|
|
563
|
+
log.error(`Adapter Exception: ${error}`);
|
|
564
|
+
done(error);
|
|
565
|
+
}
|
|
566
|
+
});
|
|
591
567
|
});
|
|
592
568
|
|
|
593
569
|
describe('propertiesSchema.json', () => {
|
|
@@ -623,15 +599,7 @@ describe('[unit] Okta Adapter Test', () => {
|
|
|
623
599
|
assert.equal('string', propertiesDotJson.properties.host.type);
|
|
624
600
|
assert.equal('integer', propertiesDotJson.properties.port.type);
|
|
625
601
|
assert.equal('boolean', propertiesDotJson.properties.stub.type);
|
|
626
|
-
assert.equal('string', propertiesDotJson.properties.base_path.type);
|
|
627
|
-
assert.equal('string', propertiesDotJson.properties.version.type);
|
|
628
|
-
assert.equal('string', propertiesDotJson.properties.cache_location.type);
|
|
629
|
-
assert.equal('boolean', propertiesDotJson.properties.encode_pathvars.type);
|
|
630
|
-
assert.equal(true, Array.isArray(propertiesDotJson.properties.save_metric.type));
|
|
631
602
|
assert.equal('string', propertiesDotJson.properties.protocol.type);
|
|
632
|
-
assert.notEqual(undefined, propertiesDotJson.definitions);
|
|
633
|
-
assert.notEqual(null, propertiesDotJson.definitions);
|
|
634
|
-
assert.notEqual('', propertiesDotJson.definitions);
|
|
635
603
|
assert.notEqual(undefined, propertiesDotJson.definitions.authentication);
|
|
636
604
|
assert.notEqual(null, propertiesDotJson.definitions.authentication);
|
|
637
605
|
assert.notEqual('', propertiesDotJson.definitions.authentication);
|
|
@@ -645,6 +613,29 @@ describe('[unit] Okta Adapter Test', () => {
|
|
|
645
613
|
assert.equal(true, Array.isArray(propertiesDotJson.definitions.authentication.properties.auth_field.type));
|
|
646
614
|
assert.equal(true, Array.isArray(propertiesDotJson.definitions.authentication.properties.auth_field_format.type));
|
|
647
615
|
assert.equal('boolean', propertiesDotJson.definitions.authentication.properties.auth_logging.type);
|
|
616
|
+
assert.equal('string', propertiesDotJson.definitions.authentication.properties.client_id.type);
|
|
617
|
+
assert.equal('string', propertiesDotJson.definitions.authentication.properties.client_secret.type);
|
|
618
|
+
assert.equal('string', propertiesDotJson.definitions.authentication.properties.grant_type.type);
|
|
619
|
+
assert.notEqual(undefined, propertiesDotJson.definitions.ssl);
|
|
620
|
+
assert.notEqual(null, propertiesDotJson.definitions.ssl);
|
|
621
|
+
assert.notEqual('', propertiesDotJson.definitions.ssl);
|
|
622
|
+
assert.equal('string', propertiesDotJson.definitions.ssl.properties.ecdhCurve.type);
|
|
623
|
+
assert.equal('boolean', propertiesDotJson.definitions.ssl.properties.enabled.type);
|
|
624
|
+
assert.equal('boolean', propertiesDotJson.definitions.ssl.properties.accept_invalid_cert.type);
|
|
625
|
+
assert.equal('string', propertiesDotJson.definitions.ssl.properties.ca_file.type);
|
|
626
|
+
assert.equal('string', propertiesDotJson.definitions.ssl.properties.key_file.type);
|
|
627
|
+
assert.equal('string', propertiesDotJson.definitions.ssl.properties.cert_file.type);
|
|
628
|
+
assert.equal('string', propertiesDotJson.definitions.ssl.properties.secure_protocol.type);
|
|
629
|
+
assert.equal('string', propertiesDotJson.definitions.ssl.properties.ciphers.type);
|
|
630
|
+
assert.equal('string', propertiesDotJson.properties.base_path.type);
|
|
631
|
+
assert.equal('string', propertiesDotJson.properties.version.type);
|
|
632
|
+
assert.equal('string', propertiesDotJson.properties.cache_location.type);
|
|
633
|
+
assert.equal('boolean', propertiesDotJson.properties.encode_pathvars.type);
|
|
634
|
+
assert.equal('boolean', propertiesDotJson.properties.encode_queryvars.type);
|
|
635
|
+
assert.equal(true, Array.isArray(propertiesDotJson.properties.save_metric.type));
|
|
636
|
+
assert.notEqual(undefined, propertiesDotJson.definitions);
|
|
637
|
+
assert.notEqual(null, propertiesDotJson.definitions);
|
|
638
|
+
assert.notEqual('', propertiesDotJson.definitions);
|
|
648
639
|
assert.notEqual(undefined, propertiesDotJson.definitions.healthcheck);
|
|
649
640
|
assert.notEqual(null, propertiesDotJson.definitions.healthcheck);
|
|
650
641
|
assert.notEqual('', propertiesDotJson.definitions.healthcheck);
|
|
@@ -688,17 +679,6 @@ describe('[unit] Okta Adapter Test', () => {
|
|
|
688
679
|
assert.equal('string', propertiesDotJson.definitions.proxy.properties.protocol.type);
|
|
689
680
|
assert.equal('string', propertiesDotJson.definitions.proxy.properties.username.type);
|
|
690
681
|
assert.equal('string', propertiesDotJson.definitions.proxy.properties.password.type);
|
|
691
|
-
assert.notEqual(undefined, propertiesDotJson.definitions.ssl);
|
|
692
|
-
assert.notEqual(null, propertiesDotJson.definitions.ssl);
|
|
693
|
-
assert.notEqual('', propertiesDotJson.definitions.ssl);
|
|
694
|
-
assert.equal('string', propertiesDotJson.definitions.ssl.properties.ecdhCurve.type);
|
|
695
|
-
assert.equal('boolean', propertiesDotJson.definitions.ssl.properties.enabled.type);
|
|
696
|
-
assert.equal('boolean', propertiesDotJson.definitions.ssl.properties.accept_invalid_cert.type);
|
|
697
|
-
assert.equal('string', propertiesDotJson.definitions.ssl.properties.ca_file.type);
|
|
698
|
-
assert.equal('string', propertiesDotJson.definitions.ssl.properties.key_file.type);
|
|
699
|
-
assert.equal('string', propertiesDotJson.definitions.ssl.properties.cert_file.type);
|
|
700
|
-
assert.equal('string', propertiesDotJson.definitions.ssl.properties.secure_protocol.type);
|
|
701
|
-
assert.equal('string', propertiesDotJson.definitions.ssl.properties.ciphers.type);
|
|
702
682
|
assert.notEqual(undefined, propertiesDotJson.definitions.mongo);
|
|
703
683
|
assert.notEqual(null, propertiesDotJson.definitions.mongo);
|
|
704
684
|
assert.notEqual('', propertiesDotJson.definitions.mongo);
|
|
@@ -714,6 +694,12 @@ describe('[unit] Okta Adapter Test', () => {
|
|
|
714
694
|
assert.equal('string', propertiesDotJson.definitions.mongo.properties.db_ssl.properties.ca_file.type);
|
|
715
695
|
assert.equal('string', propertiesDotJson.definitions.mongo.properties.db_ssl.properties.key_file.type);
|
|
716
696
|
assert.equal('string', propertiesDotJson.definitions.mongo.properties.db_ssl.properties.cert_file.type);
|
|
697
|
+
assert.notEqual('', propertiesDotJson.definitions.devicebroker);
|
|
698
|
+
assert.equal('array', propertiesDotJson.definitions.devicebroker.properties.getDevice.type);
|
|
699
|
+
assert.equal('array', propertiesDotJson.definitions.devicebroker.properties.getDevicesFiltered.type);
|
|
700
|
+
assert.equal('array', propertiesDotJson.definitions.devicebroker.properties.isAlive.type);
|
|
701
|
+
assert.equal('array', propertiesDotJson.definitions.devicebroker.properties.getConfig.type);
|
|
702
|
+
assert.equal('array', propertiesDotJson.definitions.devicebroker.properties.getCount.type);
|
|
717
703
|
done();
|
|
718
704
|
} catch (error) {
|
|
719
705
|
log.error(`Test Failure: ${error}`);
|
|
@@ -803,17 +789,7 @@ describe('[unit] Okta Adapter Test', () => {
|
|
|
803
789
|
assert.notEqual(undefined, sampleDotJson.properties.host);
|
|
804
790
|
assert.notEqual(undefined, sampleDotJson.properties.port);
|
|
805
791
|
assert.notEqual(undefined, sampleDotJson.properties.stub);
|
|
806
|
-
|
|
807
|
-
assert.notEqual(undefined, sampleDotJson.properties.base_path);
|
|
808
|
-
assert.notEqual(undefined, sampleDotJson.properties.version);
|
|
809
|
-
assert.notEqual(undefined, sampleDotJson.properties.cache_location);
|
|
810
|
-
assert.notEqual(undefined, sampleDotJson.properties.encode_pathvars);
|
|
811
|
-
assert.notEqual(undefined, sampleDotJson.properties.save_metric);
|
|
812
792
|
assert.notEqual(undefined, sampleDotJson.properties.protocol);
|
|
813
|
-
assert.notEqual(undefined, sampleDotJson.properties.stub);
|
|
814
|
-
assert.notEqual(undefined, sampleDotJson.properties.stub);
|
|
815
|
-
assert.notEqual(undefined, sampleDotJson.properties.stub);
|
|
816
|
-
assert.notEqual(undefined, sampleDotJson.properties.stub);
|
|
817
793
|
assert.notEqual(undefined, sampleDotJson.properties.authentication);
|
|
818
794
|
assert.notEqual(null, sampleDotJson.properties.authentication);
|
|
819
795
|
assert.notEqual('', sampleDotJson.properties.authentication);
|
|
@@ -827,6 +803,26 @@ describe('[unit] Okta Adapter Test', () => {
|
|
|
827
803
|
assert.notEqual(undefined, sampleDotJson.properties.authentication.auth_field);
|
|
828
804
|
assert.notEqual(undefined, sampleDotJson.properties.authentication.auth_field_format);
|
|
829
805
|
assert.notEqual(undefined, sampleDotJson.properties.authentication.auth_logging);
|
|
806
|
+
assert.notEqual(undefined, sampleDotJson.properties.authentication.client_id);
|
|
807
|
+
assert.notEqual(undefined, sampleDotJson.properties.authentication.client_secret);
|
|
808
|
+
assert.notEqual(undefined, sampleDotJson.properties.authentication.grant_type);
|
|
809
|
+
assert.notEqual(undefined, sampleDotJson.properties.ssl);
|
|
810
|
+
assert.notEqual(null, sampleDotJson.properties.ssl);
|
|
811
|
+
assert.notEqual('', sampleDotJson.properties.ssl);
|
|
812
|
+
assert.notEqual(undefined, sampleDotJson.properties.ssl.ecdhCurve);
|
|
813
|
+
assert.notEqual(undefined, sampleDotJson.properties.ssl.enabled);
|
|
814
|
+
assert.notEqual(undefined, sampleDotJson.properties.ssl.accept_invalid_cert);
|
|
815
|
+
assert.notEqual(undefined, sampleDotJson.properties.ssl.ca_file);
|
|
816
|
+
assert.notEqual(undefined, sampleDotJson.properties.ssl.key_file);
|
|
817
|
+
assert.notEqual(undefined, sampleDotJson.properties.ssl.cert_file);
|
|
818
|
+
assert.notEqual(undefined, sampleDotJson.properties.ssl.secure_protocol);
|
|
819
|
+
assert.notEqual(undefined, sampleDotJson.properties.ssl.ciphers);
|
|
820
|
+
assert.notEqual(undefined, sampleDotJson.properties.base_path);
|
|
821
|
+
assert.notEqual(undefined, sampleDotJson.properties.version);
|
|
822
|
+
assert.notEqual(undefined, sampleDotJson.properties.cache_location);
|
|
823
|
+
assert.notEqual(undefined, sampleDotJson.properties.encode_pathvars);
|
|
824
|
+
assert.notEqual(undefined, sampleDotJson.properties.encode_queryvars);
|
|
825
|
+
assert.notEqual(undefined, sampleDotJson.properties.save_metric);
|
|
830
826
|
assert.notEqual(undefined, sampleDotJson.properties.healthcheck);
|
|
831
827
|
assert.notEqual(null, sampleDotJson.properties.healthcheck);
|
|
832
828
|
assert.notEqual('', sampleDotJson.properties.healthcheck);
|
|
@@ -870,17 +866,6 @@ describe('[unit] Okta Adapter Test', () => {
|
|
|
870
866
|
assert.notEqual(undefined, sampleDotJson.properties.proxy.protocol);
|
|
871
867
|
assert.notEqual(undefined, sampleDotJson.properties.proxy.username);
|
|
872
868
|
assert.notEqual(undefined, sampleDotJson.properties.proxy.password);
|
|
873
|
-
assert.notEqual(undefined, sampleDotJson.properties.ssl);
|
|
874
|
-
assert.notEqual(null, sampleDotJson.properties.ssl);
|
|
875
|
-
assert.notEqual('', sampleDotJson.properties.ssl);
|
|
876
|
-
assert.notEqual(undefined, sampleDotJson.properties.ssl.ecdhCurve);
|
|
877
|
-
assert.notEqual(undefined, sampleDotJson.properties.ssl.enabled);
|
|
878
|
-
assert.notEqual(undefined, sampleDotJson.properties.ssl.accept_invalid_cert);
|
|
879
|
-
assert.notEqual(undefined, sampleDotJson.properties.ssl.ca_file);
|
|
880
|
-
assert.notEqual(undefined, sampleDotJson.properties.ssl.key_file);
|
|
881
|
-
assert.notEqual(undefined, sampleDotJson.properties.ssl.cert_file);
|
|
882
|
-
assert.notEqual(undefined, sampleDotJson.properties.ssl.secure_protocol);
|
|
883
|
-
assert.notEqual(undefined, sampleDotJson.properties.ssl.ciphers);
|
|
884
869
|
assert.notEqual(undefined, sampleDotJson.properties.mongo);
|
|
885
870
|
assert.notEqual(null, sampleDotJson.properties.mongo);
|
|
886
871
|
assert.notEqual('', sampleDotJson.properties.mongo);
|
|
@@ -896,6 +881,14 @@ describe('[unit] Okta Adapter Test', () => {
|
|
|
896
881
|
assert.notEqual(undefined, sampleDotJson.properties.mongo.db_ssl.ca_file);
|
|
897
882
|
assert.notEqual(undefined, sampleDotJson.properties.mongo.db_ssl.key_file);
|
|
898
883
|
assert.notEqual(undefined, sampleDotJson.properties.mongo.db_ssl.cert_file);
|
|
884
|
+
assert.notEqual(undefined, sampleDotJson.properties.devicebroker);
|
|
885
|
+
assert.notEqual(undefined, sampleDotJson.properties.devicebroker.getDevice);
|
|
886
|
+
assert.notEqual(undefined, sampleDotJson.properties.devicebroker.getDevicesFiltered);
|
|
887
|
+
assert.notEqual(undefined, sampleDotJson.properties.devicebroker.isAlive);
|
|
888
|
+
assert.notEqual(undefined, sampleDotJson.properties.devicebroker.getConfig);
|
|
889
|
+
assert.notEqual(undefined, sampleDotJson.properties.devicebroker.getCount);
|
|
890
|
+
assert.notEqual(undefined, sampleDotJson.properties.cache);
|
|
891
|
+
assert.notEqual(undefined, sampleDotJson.properties.cache.entities);
|
|
899
892
|
done();
|
|
900
893
|
} catch (error) {
|
|
901
894
|
log.error(`Test Failure: ${error}`);
|
|
@@ -989,10 +982,10 @@ describe('[unit] Okta Adapter Test', () => {
|
|
|
989
982
|
});
|
|
990
983
|
});
|
|
991
984
|
|
|
992
|
-
describe('#
|
|
993
|
-
it('should have a
|
|
985
|
+
describe('#iapUpdateAdapterConfiguration', () => {
|
|
986
|
+
it('should have a iapUpdateAdapterConfiguration function', (done) => {
|
|
994
987
|
try {
|
|
995
|
-
assert.equal(true, typeof a.
|
|
988
|
+
assert.equal(true, typeof a.iapUpdateAdapterConfiguration === 'function');
|
|
996
989
|
done();
|
|
997
990
|
} catch (error) {
|
|
998
991
|
log.error(`Test Failure: ${error}`);
|
|
@@ -1001,44 +994,34 @@ describe('[unit] Okta Adapter Test', () => {
|
|
|
1001
994
|
});
|
|
1002
995
|
});
|
|
1003
996
|
|
|
1004
|
-
describe('#
|
|
1005
|
-
it('should have a
|
|
997
|
+
describe('#iapSuspendAdapter', () => {
|
|
998
|
+
it('should have a iapSuspendAdapter function', (done) => {
|
|
1006
999
|
try {
|
|
1007
|
-
assert.equal(true, typeof a.
|
|
1000
|
+
assert.equal(true, typeof a.iapSuspendAdapter === 'function');
|
|
1008
1001
|
done();
|
|
1009
1002
|
} catch (error) {
|
|
1010
1003
|
log.error(`Test Failure: ${error}`);
|
|
1011
1004
|
done(error);
|
|
1012
1005
|
}
|
|
1013
1006
|
});
|
|
1014
|
-
|
|
1007
|
+
});
|
|
1008
|
+
|
|
1009
|
+
describe('#iapUnsuspendAdapter', () => {
|
|
1010
|
+
it('should have a iapUnsuspendAdapter function', (done) => {
|
|
1015
1011
|
try {
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
assert.equal(undefined, error);
|
|
1019
|
-
assert.notEqual(undefined, data);
|
|
1020
|
-
assert.notEqual(null, data);
|
|
1021
|
-
assert.equal(true, data.found);
|
|
1022
|
-
assert.notEqual(undefined, data.foundIn);
|
|
1023
|
-
assert.notEqual(null, data.foundIn);
|
|
1024
|
-
assert.notEqual(0, data.foundIn.length);
|
|
1025
|
-
done();
|
|
1026
|
-
} catch (err) {
|
|
1027
|
-
log.error(`Test Failure: ${err}`);
|
|
1028
|
-
done(err);
|
|
1029
|
-
}
|
|
1030
|
-
});
|
|
1012
|
+
assert.equal(true, typeof a.iapUnsuspendAdapter === 'function');
|
|
1013
|
+
done();
|
|
1031
1014
|
} catch (error) {
|
|
1032
|
-
log.error(`
|
|
1015
|
+
log.error(`Test Failure: ${error}`);
|
|
1033
1016
|
done(error);
|
|
1034
1017
|
}
|
|
1035
|
-
})
|
|
1018
|
+
});
|
|
1036
1019
|
});
|
|
1037
1020
|
|
|
1038
|
-
describe('#
|
|
1039
|
-
it('should have a
|
|
1021
|
+
describe('#iapGetAdapterQueue', () => {
|
|
1022
|
+
it('should have a iapGetAdapterQueue function', (done) => {
|
|
1040
1023
|
try {
|
|
1041
|
-
assert.equal(true, typeof a.
|
|
1024
|
+
assert.equal(true, typeof a.iapGetAdapterQueue === 'function');
|
|
1042
1025
|
done();
|
|
1043
1026
|
} catch (error) {
|
|
1044
1027
|
log.error(`Test Failure: ${error}`);
|
|
@@ -1047,22 +1030,44 @@ describe('[unit] Okta Adapter Test', () => {
|
|
|
1047
1030
|
});
|
|
1048
1031
|
});
|
|
1049
1032
|
|
|
1050
|
-
describe('#
|
|
1051
|
-
it('should have a
|
|
1033
|
+
describe('#iapFindAdapterPath', () => {
|
|
1034
|
+
it('should have a iapFindAdapterPath function', (done) => {
|
|
1052
1035
|
try {
|
|
1053
|
-
assert.equal(true, typeof a.
|
|
1036
|
+
assert.equal(true, typeof a.iapFindAdapterPath === 'function');
|
|
1054
1037
|
done();
|
|
1055
1038
|
} catch (error) {
|
|
1056
1039
|
log.error(`Test Failure: ${error}`);
|
|
1057
1040
|
done(error);
|
|
1058
1041
|
}
|
|
1059
1042
|
});
|
|
1043
|
+
it('iapFindAdapterPath should find atleast one path that matches', (done) => {
|
|
1044
|
+
try {
|
|
1045
|
+
a.iapFindAdapterPath('{base_path}/{version}', (data, error) => {
|
|
1046
|
+
try {
|
|
1047
|
+
assert.equal(undefined, error);
|
|
1048
|
+
assert.notEqual(undefined, data);
|
|
1049
|
+
assert.notEqual(null, data);
|
|
1050
|
+
assert.equal(true, data.found);
|
|
1051
|
+
assert.notEqual(undefined, data.foundIn);
|
|
1052
|
+
assert.notEqual(null, data.foundIn);
|
|
1053
|
+
assert.notEqual(0, data.foundIn.length);
|
|
1054
|
+
done();
|
|
1055
|
+
} catch (err) {
|
|
1056
|
+
log.error(`Test Failure: ${err}`);
|
|
1057
|
+
done(err);
|
|
1058
|
+
}
|
|
1059
|
+
});
|
|
1060
|
+
} catch (error) {
|
|
1061
|
+
log.error(`Adapter Exception: ${error}`);
|
|
1062
|
+
done(error);
|
|
1063
|
+
}
|
|
1064
|
+
}).timeout(attemptTimeout);
|
|
1060
1065
|
});
|
|
1061
1066
|
|
|
1062
|
-
describe('#
|
|
1063
|
-
it('should have a
|
|
1067
|
+
describe('#iapTroubleshootAdapter', () => {
|
|
1068
|
+
it('should have a iapTroubleshootAdapter function', (done) => {
|
|
1064
1069
|
try {
|
|
1065
|
-
assert.equal(true, typeof a.
|
|
1070
|
+
assert.equal(true, typeof a.iapTroubleshootAdapter === 'function');
|
|
1066
1071
|
done();
|
|
1067
1072
|
} catch (error) {
|
|
1068
1073
|
log.error(`Test Failure: ${error}`);
|
|
@@ -1071,10 +1076,10 @@ describe('[unit] Okta Adapter Test', () => {
|
|
|
1071
1076
|
});
|
|
1072
1077
|
});
|
|
1073
1078
|
|
|
1074
|
-
describe('#
|
|
1075
|
-
it('should have a
|
|
1079
|
+
describe('#iapRunAdapterHealthcheck', () => {
|
|
1080
|
+
it('should have a iapRunAdapterHealthcheck function', (done) => {
|
|
1076
1081
|
try {
|
|
1077
|
-
assert.equal(true, typeof a.
|
|
1082
|
+
assert.equal(true, typeof a.iapRunAdapterHealthcheck === 'function');
|
|
1078
1083
|
done();
|
|
1079
1084
|
} catch (error) {
|
|
1080
1085
|
log.error(`Test Failure: ${error}`);
|
|
@@ -1083,10 +1088,10 @@ describe('[unit] Okta Adapter Test', () => {
|
|
|
1083
1088
|
});
|
|
1084
1089
|
});
|
|
1085
1090
|
|
|
1086
|
-
describe('#
|
|
1087
|
-
it('should have a
|
|
1091
|
+
describe('#iapRunAdapterConnectivity', () => {
|
|
1092
|
+
it('should have a iapRunAdapterConnectivity function', (done) => {
|
|
1088
1093
|
try {
|
|
1089
|
-
assert.equal(true, typeof a.
|
|
1094
|
+
assert.equal(true, typeof a.iapRunAdapterConnectivity === 'function');
|
|
1090
1095
|
done();
|
|
1091
1096
|
} catch (error) {
|
|
1092
1097
|
log.error(`Test Failure: ${error}`);
|
|
@@ -1095,10 +1100,10 @@ describe('[unit] Okta Adapter Test', () => {
|
|
|
1095
1100
|
});
|
|
1096
1101
|
});
|
|
1097
1102
|
|
|
1098
|
-
describe('#
|
|
1099
|
-
it('should have a
|
|
1103
|
+
describe('#iapRunAdapterBasicGet', () => {
|
|
1104
|
+
it('should have a iapRunAdapterBasicGet function', (done) => {
|
|
1100
1105
|
try {
|
|
1101
|
-
assert.equal(true, typeof a.
|
|
1106
|
+
assert.equal(true, typeof a.iapRunAdapterBasicGet === 'function');
|
|
1102
1107
|
done();
|
|
1103
1108
|
} catch (error) {
|
|
1104
1109
|
log.error(`Test Failure: ${error}`);
|
|
@@ -1107,10 +1112,10 @@ describe('[unit] Okta Adapter Test', () => {
|
|
|
1107
1112
|
});
|
|
1108
1113
|
});
|
|
1109
1114
|
|
|
1110
|
-
describe('#
|
|
1111
|
-
it('should have a
|
|
1115
|
+
describe('#iapMoveAdapterEntitiesToDB', () => {
|
|
1116
|
+
it('should have a iapMoveAdapterEntitiesToDB function', (done) => {
|
|
1112
1117
|
try {
|
|
1113
|
-
assert.equal(true, typeof a.
|
|
1118
|
+
assert.equal(true, typeof a.iapMoveAdapterEntitiesToDB === 'function');
|
|
1114
1119
|
done();
|
|
1115
1120
|
} catch (error) {
|
|
1116
1121
|
log.error(`Test Failure: ${error}`);
|
|
@@ -1204,50 +1209,293 @@ describe('[unit] Okta Adapter Test', () => {
|
|
|
1204
1209
|
}).timeout(attemptTimeout);
|
|
1205
1210
|
});
|
|
1206
1211
|
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
// try {
|
|
1219
|
-
// a.hasEntity('template_entity', // 'a9e9c33dc61122760072455df62663d2', (data) => {
|
|
1220
|
-
// try {
|
|
1221
|
-
// assert.equal(true, data[0]);
|
|
1222
|
-
// done();
|
|
1223
|
-
// } catch (err) {
|
|
1224
|
-
// log.error(`Test Failure: ${err}`);
|
|
1225
|
-
// done(err);
|
|
1226
|
-
// }
|
|
1227
|
-
// });
|
|
1228
|
-
// } catch (error) {
|
|
1229
|
-
// log.error(`Adapter Exception: ${error}`);
|
|
1230
|
-
// done(error);
|
|
1231
|
-
// }
|
|
1232
|
-
// }).timeout(attemptTimeout);
|
|
1233
|
-
// it('should not find entity', (done) => {
|
|
1234
|
-
// try {
|
|
1235
|
-
// a.hasEntity('template_entity', 'blah', (data) => {
|
|
1236
|
-
// try {
|
|
1237
|
-
// assert.equal(false, data[0]);
|
|
1238
|
-
// done();
|
|
1239
|
-
// } catch (err) {
|
|
1240
|
-
// log.error(`Test Failure: ${err}`);
|
|
1241
|
-
// done(err);
|
|
1242
|
-
// }
|
|
1243
|
-
// });
|
|
1244
|
-
// } catch (error) {
|
|
1245
|
-
// log.error(`Adapter Exception: ${error}`);
|
|
1246
|
-
// done(error);
|
|
1247
|
-
// }
|
|
1248
|
-
// }).timeout(attemptTimeout);
|
|
1249
|
-
// });
|
|
1212
|
+
describe('#iapDeactivateTasks', () => {
|
|
1213
|
+
it('should have a iapDeactivateTasks function', (done) => {
|
|
1214
|
+
try {
|
|
1215
|
+
assert.equal(true, typeof a.iapDeactivateTasks === 'function');
|
|
1216
|
+
done();
|
|
1217
|
+
} catch (error) {
|
|
1218
|
+
log.error(`Test Failure: ${error}`);
|
|
1219
|
+
done(error);
|
|
1220
|
+
}
|
|
1221
|
+
});
|
|
1222
|
+
});
|
|
1250
1223
|
|
|
1224
|
+
describe('#iapActivateTasks', () => {
|
|
1225
|
+
it('should have a iapActivateTasks function', (done) => {
|
|
1226
|
+
try {
|
|
1227
|
+
assert.equal(true, typeof a.iapActivateTasks === 'function');
|
|
1228
|
+
done();
|
|
1229
|
+
} catch (error) {
|
|
1230
|
+
log.error(`Test Failure: ${error}`);
|
|
1231
|
+
done(error);
|
|
1232
|
+
}
|
|
1233
|
+
});
|
|
1234
|
+
});
|
|
1235
|
+
|
|
1236
|
+
describe('#iapPopulateEntityCache', () => {
|
|
1237
|
+
it('should have a iapPopulateEntityCache function', (done) => {
|
|
1238
|
+
try {
|
|
1239
|
+
assert.equal(true, typeof a.iapPopulateEntityCache === 'function');
|
|
1240
|
+
done();
|
|
1241
|
+
} catch (error) {
|
|
1242
|
+
log.error(`Test Failure: ${error}`);
|
|
1243
|
+
done(error);
|
|
1244
|
+
}
|
|
1245
|
+
});
|
|
1246
|
+
});
|
|
1247
|
+
|
|
1248
|
+
describe('#iapRetrieveEntitiesCache', () => {
|
|
1249
|
+
it('should have a iapRetrieveEntitiesCache function', (done) => {
|
|
1250
|
+
try {
|
|
1251
|
+
assert.equal(true, typeof a.iapRetrieveEntitiesCache === 'function');
|
|
1252
|
+
done();
|
|
1253
|
+
} catch (error) {
|
|
1254
|
+
log.error(`Test Failure: ${error}`);
|
|
1255
|
+
done(error);
|
|
1256
|
+
}
|
|
1257
|
+
});
|
|
1258
|
+
});
|
|
1259
|
+
|
|
1260
|
+
describe('#hasEntities', () => {
|
|
1261
|
+
it('should have a hasEntities function', (done) => {
|
|
1262
|
+
try {
|
|
1263
|
+
assert.equal(true, typeof a.hasEntities === 'function');
|
|
1264
|
+
done();
|
|
1265
|
+
} catch (error) {
|
|
1266
|
+
log.error(`Test Failure: ${error}`);
|
|
1267
|
+
done(error);
|
|
1268
|
+
}
|
|
1269
|
+
});
|
|
1270
|
+
});
|
|
1271
|
+
|
|
1272
|
+
describe('#getDevice', () => {
|
|
1273
|
+
it('should have a getDevice function', (done) => {
|
|
1274
|
+
try {
|
|
1275
|
+
assert.equal(true, typeof a.getDevice === 'function');
|
|
1276
|
+
done();
|
|
1277
|
+
} catch (error) {
|
|
1278
|
+
log.error(`Test Failure: ${error}`);
|
|
1279
|
+
done(error);
|
|
1280
|
+
}
|
|
1281
|
+
});
|
|
1282
|
+
});
|
|
1283
|
+
|
|
1284
|
+
describe('#getDevicesFiltered', () => {
|
|
1285
|
+
it('should have a getDevicesFiltered function', (done) => {
|
|
1286
|
+
try {
|
|
1287
|
+
assert.equal(true, typeof a.getDevicesFiltered === 'function');
|
|
1288
|
+
done();
|
|
1289
|
+
} catch (error) {
|
|
1290
|
+
log.error(`Test Failure: ${error}`);
|
|
1291
|
+
done(error);
|
|
1292
|
+
}
|
|
1293
|
+
});
|
|
1294
|
+
});
|
|
1295
|
+
|
|
1296
|
+
describe('#isAlive', () => {
|
|
1297
|
+
it('should have a isAlive function', (done) => {
|
|
1298
|
+
try {
|
|
1299
|
+
assert.equal(true, typeof a.isAlive === 'function');
|
|
1300
|
+
done();
|
|
1301
|
+
} catch (error) {
|
|
1302
|
+
log.error(`Test Failure: ${error}`);
|
|
1303
|
+
done(error);
|
|
1304
|
+
}
|
|
1305
|
+
});
|
|
1306
|
+
});
|
|
1307
|
+
|
|
1308
|
+
describe('#getConfig', () => {
|
|
1309
|
+
it('should have a getConfig function', (done) => {
|
|
1310
|
+
try {
|
|
1311
|
+
assert.equal(true, typeof a.getConfig === 'function');
|
|
1312
|
+
done();
|
|
1313
|
+
} catch (error) {
|
|
1314
|
+
log.error(`Test Failure: ${error}`);
|
|
1315
|
+
done(error);
|
|
1316
|
+
}
|
|
1317
|
+
});
|
|
1318
|
+
});
|
|
1319
|
+
|
|
1320
|
+
describe('#iapGetDeviceCount', () => {
|
|
1321
|
+
it('should have a iapGetDeviceCount function', (done) => {
|
|
1322
|
+
try {
|
|
1323
|
+
assert.equal(true, typeof a.iapGetDeviceCount === 'function');
|
|
1324
|
+
done();
|
|
1325
|
+
} catch (error) {
|
|
1326
|
+
log.error(`Test Failure: ${error}`);
|
|
1327
|
+
done(error);
|
|
1328
|
+
}
|
|
1329
|
+
});
|
|
1330
|
+
});
|
|
1331
|
+
|
|
1332
|
+
describe('#iapExpandedGenericAdapterRequest', () => {
|
|
1333
|
+
it('should have a iapExpandedGenericAdapterRequest function', (done) => {
|
|
1334
|
+
try {
|
|
1335
|
+
assert.equal(true, typeof a.iapExpandedGenericAdapterRequest === 'function');
|
|
1336
|
+
done();
|
|
1337
|
+
} catch (error) {
|
|
1338
|
+
log.error(`Test Failure: ${error}`);
|
|
1339
|
+
done(error);
|
|
1340
|
+
}
|
|
1341
|
+
});
|
|
1342
|
+
});
|
|
1343
|
+
|
|
1344
|
+
describe('#genericAdapterRequest', () => {
|
|
1345
|
+
it('should have a genericAdapterRequest function', (done) => {
|
|
1346
|
+
try {
|
|
1347
|
+
assert.equal(true, typeof a.genericAdapterRequest === 'function');
|
|
1348
|
+
done();
|
|
1349
|
+
} catch (error) {
|
|
1350
|
+
log.error(`Test Failure: ${error}`);
|
|
1351
|
+
done(error);
|
|
1352
|
+
}
|
|
1353
|
+
});
|
|
1354
|
+
});
|
|
1355
|
+
|
|
1356
|
+
describe('#genericAdapterRequestNoBasePath', () => {
|
|
1357
|
+
it('should have a genericAdapterRequestNoBasePath function', (done) => {
|
|
1358
|
+
try {
|
|
1359
|
+
assert.equal(true, typeof a.genericAdapterRequestNoBasePath === 'function');
|
|
1360
|
+
done();
|
|
1361
|
+
} catch (error) {
|
|
1362
|
+
log.error(`Test Failure: ${error}`);
|
|
1363
|
+
done(error);
|
|
1364
|
+
}
|
|
1365
|
+
});
|
|
1366
|
+
});
|
|
1367
|
+
|
|
1368
|
+
describe('#iapRunAdapterLint', () => {
|
|
1369
|
+
it('should have a iapRunAdapterLint function', (done) => {
|
|
1370
|
+
try {
|
|
1371
|
+
assert.equal(true, typeof a.iapRunAdapterLint === 'function');
|
|
1372
|
+
done();
|
|
1373
|
+
} catch (error) {
|
|
1374
|
+
log.error(`Test Failure: ${error}`);
|
|
1375
|
+
done(error);
|
|
1376
|
+
}
|
|
1377
|
+
});
|
|
1378
|
+
it('retrieve the lint results', (done) => {
|
|
1379
|
+
try {
|
|
1380
|
+
a.iapRunAdapterLint((data, error) => {
|
|
1381
|
+
try {
|
|
1382
|
+
assert.equal(undefined, error);
|
|
1383
|
+
assert.notEqual(undefined, data);
|
|
1384
|
+
assert.notEqual(null, data);
|
|
1385
|
+
assert.notEqual(undefined, data.status);
|
|
1386
|
+
assert.notEqual(null, data.status);
|
|
1387
|
+
assert.equal('SUCCESS', data.status);
|
|
1388
|
+
done();
|
|
1389
|
+
} catch (err) {
|
|
1390
|
+
log.error(`Test Failure: ${err}`);
|
|
1391
|
+
done(err);
|
|
1392
|
+
}
|
|
1393
|
+
});
|
|
1394
|
+
} catch (error) {
|
|
1395
|
+
log.error(`Adapter Exception: ${error}`);
|
|
1396
|
+
done(error);
|
|
1397
|
+
}
|
|
1398
|
+
}).timeout(attemptTimeout);
|
|
1399
|
+
});
|
|
1400
|
+
|
|
1401
|
+
describe('#iapRunAdapterTests', () => {
|
|
1402
|
+
it('should have a iapRunAdapterTests function', (done) => {
|
|
1403
|
+
try {
|
|
1404
|
+
assert.equal(true, typeof a.iapRunAdapterTests === 'function');
|
|
1405
|
+
done();
|
|
1406
|
+
} catch (error) {
|
|
1407
|
+
log.error(`Test Failure: ${error}`);
|
|
1408
|
+
done(error);
|
|
1409
|
+
}
|
|
1410
|
+
});
|
|
1411
|
+
});
|
|
1412
|
+
|
|
1413
|
+
describe('#iapGetAdapterInventory', () => {
|
|
1414
|
+
it('should have a iapGetAdapterInventory function', (done) => {
|
|
1415
|
+
try {
|
|
1416
|
+
assert.equal(true, typeof a.iapGetAdapterInventory === 'function');
|
|
1417
|
+
done();
|
|
1418
|
+
} catch (error) {
|
|
1419
|
+
log.error(`Test Failure: ${error}`);
|
|
1420
|
+
done(error);
|
|
1421
|
+
}
|
|
1422
|
+
});
|
|
1423
|
+
it('retrieve the inventory', (done) => {
|
|
1424
|
+
try {
|
|
1425
|
+
a.iapGetAdapterInventory((data, error) => {
|
|
1426
|
+
try {
|
|
1427
|
+
assert.equal(undefined, error);
|
|
1428
|
+
assert.notEqual(undefined, data);
|
|
1429
|
+
assert.notEqual(null, data);
|
|
1430
|
+
done();
|
|
1431
|
+
} catch (err) {
|
|
1432
|
+
log.error(`Test Failure: ${err}`);
|
|
1433
|
+
done(err);
|
|
1434
|
+
}
|
|
1435
|
+
});
|
|
1436
|
+
} catch (error) {
|
|
1437
|
+
log.error(`Adapter Exception: ${error}`);
|
|
1438
|
+
done(error);
|
|
1439
|
+
}
|
|
1440
|
+
}).timeout(attemptTimeout);
|
|
1441
|
+
});
|
|
1442
|
+
describe('metadata.json', () => {
|
|
1443
|
+
it('should have a metadata.json', (done) => {
|
|
1444
|
+
try {
|
|
1445
|
+
fs.exists('metadata.json', (val) => {
|
|
1446
|
+
assert.equal(true, val);
|
|
1447
|
+
done();
|
|
1448
|
+
});
|
|
1449
|
+
} catch (error) {
|
|
1450
|
+
log.error(`Test Failure: ${error}`);
|
|
1451
|
+
done(error);
|
|
1452
|
+
}
|
|
1453
|
+
});
|
|
1454
|
+
it('metadata.json is customized', (done) => {
|
|
1455
|
+
try {
|
|
1456
|
+
const metadataDotJson = require('../../metadata.json');
|
|
1457
|
+
assert.equal('adapter-okta', metadataDotJson.name);
|
|
1458
|
+
assert.notEqual(undefined, metadataDotJson.webName);
|
|
1459
|
+
assert.notEqual(null, metadataDotJson.webName);
|
|
1460
|
+
assert.notEqual('', metadataDotJson.webName);
|
|
1461
|
+
assert.equal('Adapter', metadataDotJson.type);
|
|
1462
|
+
done();
|
|
1463
|
+
} catch (error) {
|
|
1464
|
+
log.error(`Test Failure: ${error}`);
|
|
1465
|
+
done(error);
|
|
1466
|
+
}
|
|
1467
|
+
});
|
|
1468
|
+
it('metadata.json contains accurate documentation', (done) => {
|
|
1469
|
+
try {
|
|
1470
|
+
const metadataDotJson = require('../../metadata.json');
|
|
1471
|
+
assert.notEqual(undefined, metadataDotJson.documentation);
|
|
1472
|
+
assert.equal('https://www.npmjs.com/package/@itentialopensource/adapter-okta', metadataDotJson.documentation.npmLink);
|
|
1473
|
+
assert.equal('https://docs.itential.com/opensource/docs/troubleshooting-an-adapter', metadataDotJson.documentation.faqLink);
|
|
1474
|
+
assert.equal('https://gitlab.com/itentialopensource/adapters/contributing-guide', metadataDotJson.documentation.contributeLink);
|
|
1475
|
+
assert.equal('https://itential.atlassian.net/servicedesk/customer/portals', metadataDotJson.documentation.issueLink);
|
|
1476
|
+
done();
|
|
1477
|
+
} catch (error) {
|
|
1478
|
+
log.error(`Test Failure: ${error}`);
|
|
1479
|
+
done(error);
|
|
1480
|
+
}
|
|
1481
|
+
});
|
|
1482
|
+
it('metadata.json has related items', (done) => {
|
|
1483
|
+
try {
|
|
1484
|
+
const metadataDotJson = require('../../metadata.json');
|
|
1485
|
+
assert.notEqual(undefined, metadataDotJson.relatedItems);
|
|
1486
|
+
assert.notEqual(undefined, metadataDotJson.relatedItems.adapters);
|
|
1487
|
+
assert.notEqual(undefined, metadataDotJson.relatedItems.integrations);
|
|
1488
|
+
assert.notEqual(undefined, metadataDotJson.relatedItems.ecosystemApplications);
|
|
1489
|
+
assert.notEqual(undefined, metadataDotJson.relatedItems.workflowProjects);
|
|
1490
|
+
assert.notEqual(undefined, metadataDotJson.relatedItems.transformationProjects);
|
|
1491
|
+
assert.notEqual(undefined, metadataDotJson.relatedItems.exampleProjects);
|
|
1492
|
+
done();
|
|
1493
|
+
} catch (error) {
|
|
1494
|
+
log.error(`Test Failure: ${error}`);
|
|
1495
|
+
done(error);
|
|
1496
|
+
}
|
|
1497
|
+
});
|
|
1498
|
+
});
|
|
1251
1499
|
/*
|
|
1252
1500
|
-----------------------------------------------------------------------
|
|
1253
1501
|
-----------------------------------------------------------------------
|