@itentialopensource/adapter-meraki 1.0.4 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -8,16 +8,18 @@
8
8
 
9
9
  // include required items for testing & logging
10
10
  const assert = require('assert');
11
- const execute = require('child_process').execSync;
12
11
  const path = require('path');
13
12
  const util = require('util');
13
+ const execute = require('child_process').execSync;
14
14
  const fs = require('fs-extra');
15
15
  const mocha = require('mocha');
16
16
  const winston = require('winston');
17
17
  const { expect } = require('chai');
18
18
  const { use } = require('chai');
19
19
  const td = require('testdouble');
20
+ const Ajv = require('ajv');
20
21
 
22
+ const ajv = new Ajv({ strictSchema: false, allErrors: true, allowUnionTypes: true });
21
23
  const anything = td.matchers.anything();
22
24
  let logLevel = 'none';
23
25
  const isRapidFail = false;
@@ -41,7 +43,7 @@ samProps.protocol = 'http';
41
43
  samProps.port = 80;
42
44
  samProps.ssl.enabled = false;
43
45
  samProps.ssl.accept_invalid_cert = false;
44
- samProps.request.attempt_timeout = 60000;
46
+ samProps.request.attempt_timeout = 1200000;
45
47
  const attemptTimeout = samProps.request.attempt_timeout;
46
48
  const { stub } = samProps;
47
49
 
@@ -220,19 +222,24 @@ describe('[unit] Meraki Adapter Test', () => {
220
222
  it('package.json should be validated', (done) => {
221
223
  try {
222
224
  const packageDotJson = require('../../package.json');
223
- const { PJV } = require('package-json-validator');
224
- const options = {
225
- warnings: true, // show warnings
226
- recommendations: true // show recommendations
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']
227
234
  };
228
- const results = PJV.validate(JSON.stringify(packageDotJson), 'npm', options);
235
+ const validate = ajv.compile(packageJsonSchema);
236
+ const isValid = validate(packageDotJson);
229
237
 
230
- if (results.valid === false) {
231
- log.error('The package.json contains the following errors: ');
232
- log.error(util.inspect(results));
233
- assert.equal(true, results.valid);
238
+ if (isValid === false) {
239
+ log.error('The package.json contains errors');
240
+ assert.equal(true, isValid);
234
241
  } else {
235
- assert.equal(true, results.valid);
242
+ assert.equal(true, isValid);
236
243
  }
237
244
 
238
245
  done();
@@ -271,7 +278,7 @@ describe('[unit] Meraki Adapter Test', () => {
271
278
  assert.notEqual(undefined, packageDotJson.scripts);
272
279
  assert.notEqual(null, packageDotJson.scripts);
273
280
  assert.notEqual('', packageDotJson.scripts);
274
- assert.equal('node utils/setup.js && npm install --package-lock-only --ignore-scripts && npx npm-force-resolutions', packageDotJson.scripts.preinstall);
281
+ assert.equal('node utils/setup.js', packageDotJson.scripts.preinstall);
275
282
  assert.equal('node --max_old_space_size=4096 ./node_modules/eslint/bin/eslint.js . --ext .json --ext .js', packageDotJson.scripts.lint);
276
283
  assert.equal('node --max_old_space_size=4096 ./node_modules/eslint/bin/eslint.js . --ext .json --ext .js --quiet', packageDotJson.scripts['lint:errors']);
277
284
  assert.equal('mocha test/unit/adapterBaseTestUnit.js --LOG=error', packageDotJson.scripts['test:baseunit']);
@@ -308,17 +315,17 @@ describe('[unit] Meraki Adapter Test', () => {
308
315
  assert.notEqual(undefined, packageDotJson.dependencies);
309
316
  assert.notEqual(null, packageDotJson.dependencies);
310
317
  assert.notEqual('', packageDotJson.dependencies);
311
- assert.equal('^6.12.0', packageDotJson.dependencies.ajv);
312
- assert.equal('^0.21.0', packageDotJson.dependencies.axios);
313
- assert.equal('^2.20.0', packageDotJson.dependencies.commander);
314
- assert.equal('^8.1.0', packageDotJson.dependencies['fs-extra']);
315
- assert.equal('^9.0.1', packageDotJson.dependencies.mocha);
318
+ assert.equal('^8.12.0', packageDotJson.dependencies.ajv);
319
+ assert.equal('^1.4.0', 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);
316
323
  assert.equal('^2.0.1', packageDotJson.dependencies['mocha-param']);
317
- assert.equal('^0.5.3', packageDotJson.dependencies['network-diagnostics']);
318
324
  assert.equal('^15.1.0', packageDotJson.dependencies.nyc);
325
+ assert.equal('^0.4.4', packageDotJson.dependencies.ping);
319
326
  assert.equal('^1.4.10', packageDotJson.dependencies['readline-sync']);
320
- assert.equal('^7.3.2', packageDotJson.dependencies.semver);
321
- assert.equal('^3.3.3', packageDotJson.dependencies.winston);
327
+ assert.equal('^7.5.3', packageDotJson.dependencies.semver);
328
+ assert.equal('^3.9.0', packageDotJson.dependencies.winston);
322
329
  done();
323
330
  } catch (error) {
324
331
  log.error(`Test Failure: ${error}`);
@@ -331,13 +338,12 @@ describe('[unit] Meraki Adapter Test', () => {
331
338
  assert.notEqual(undefined, packageDotJson.devDependencies);
332
339
  assert.notEqual(null, packageDotJson.devDependencies);
333
340
  assert.notEqual('', packageDotJson.devDependencies);
334
- assert.equal('^4.3.4', packageDotJson.devDependencies.chai);
335
- assert.equal('^7.29.0', packageDotJson.devDependencies.eslint);
336
- assert.equal('^14.2.1', packageDotJson.devDependencies['eslint-config-airbnb-base']);
337
- assert.equal('^2.23.4', packageDotJson.devDependencies['eslint-plugin-import']);
338
- assert.equal('^3.0.0', packageDotJson.devDependencies['eslint-plugin-json']);
339
- assert.equal('^0.6.3', packageDotJson.devDependencies['package-json-validator']);
340
- 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);
341
347
  done();
342
348
  } catch (error) {
343
349
  log.error(`Test Failure: ${error}`);
@@ -381,16 +387,30 @@ describe('[unit] Meraki Adapter Test', () => {
381
387
  assert.equal(true, Array.isArray(pronghornDotJson.methods));
382
388
  assert.notEqual(0, pronghornDotJson.methods.length);
383
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'));
384
393
  assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapFindAdapterPath'));
385
394
  assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapTroubleshootAdapter'));
386
395
  assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapRunAdapterHealthcheck'));
387
396
  assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapRunAdapterConnectivity'));
388
397
  assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapRunAdapterBasicGet'));
389
- assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapSuspendAdapter'));
390
- assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapUnsuspendAdapter'));
391
- assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapGetAdapterQueue'));
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'));
392
409
  assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'genericAdapterRequest'));
393
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'));
394
414
  done();
395
415
  } catch (error) {
396
416
  log.error(`Test Failure: ${error}`);
@@ -511,6 +531,39 @@ describe('[unit] Meraki Adapter Test', () => {
511
531
  done(error);
512
532
  }
513
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
+ });
514
567
  });
515
568
 
516
569
  describe('propertiesSchema.json', () => {
@@ -546,6 +599,7 @@ describe('[unit] Meraki Adapter Test', () => {
546
599
  assert.equal('string', propertiesDotJson.properties.host.type);
547
600
  assert.equal('integer', propertiesDotJson.properties.port.type);
548
601
  assert.equal('boolean', propertiesDotJson.properties.stub.type);
602
+ assert.equal('string', propertiesDotJson.properties.protocol.type);
549
603
  assert.notEqual(undefined, propertiesDotJson.definitions.authentication);
550
604
  assert.notEqual(null, propertiesDotJson.definitions.authentication);
551
605
  assert.notEqual('', propertiesDotJson.definitions.authentication);
@@ -579,7 +633,6 @@ describe('[unit] Meraki Adapter Test', () => {
579
633
  assert.equal('boolean', propertiesDotJson.properties.encode_pathvars.type);
580
634
  assert.equal('boolean', propertiesDotJson.properties.encode_queryvars.type);
581
635
  assert.equal(true, Array.isArray(propertiesDotJson.properties.save_metric.type));
582
- assert.equal('string', propertiesDotJson.properties.protocol.type);
583
636
  assert.notEqual(undefined, propertiesDotJson.definitions);
584
637
  assert.notEqual(null, propertiesDotJson.definitions);
585
638
  assert.notEqual('', propertiesDotJson.definitions);
@@ -736,6 +789,7 @@ describe('[unit] Meraki Adapter Test', () => {
736
789
  assert.notEqual(undefined, sampleDotJson.properties.host);
737
790
  assert.notEqual(undefined, sampleDotJson.properties.port);
738
791
  assert.notEqual(undefined, sampleDotJson.properties.stub);
792
+ assert.notEqual(undefined, sampleDotJson.properties.protocol);
739
793
  assert.notEqual(undefined, sampleDotJson.properties.authentication);
740
794
  assert.notEqual(null, sampleDotJson.properties.authentication);
741
795
  assert.notEqual('', sampleDotJson.properties.authentication);
@@ -769,7 +823,6 @@ describe('[unit] Meraki Adapter Test', () => {
769
823
  assert.notEqual(undefined, sampleDotJson.properties.encode_pathvars);
770
824
  assert.notEqual(undefined, sampleDotJson.properties.encode_queryvars);
771
825
  assert.notEqual(undefined, sampleDotJson.properties.save_metric);
772
- assert.notEqual(undefined, sampleDotJson.properties.protocol);
773
826
  assert.notEqual(undefined, sampleDotJson.properties.healthcheck);
774
827
  assert.notEqual(null, sampleDotJson.properties.healthcheck);
775
828
  assert.notEqual('', sampleDotJson.properties.healthcheck);
@@ -834,6 +887,8 @@ describe('[unit] Meraki Adapter Test', () => {
834
887
  assert.notEqual(undefined, sampleDotJson.properties.devicebroker.isAlive);
835
888
  assert.notEqual(undefined, sampleDotJson.properties.devicebroker.getConfig);
836
889
  assert.notEqual(undefined, sampleDotJson.properties.devicebroker.getCount);
890
+ assert.notEqual(undefined, sampleDotJson.properties.cache);
891
+ assert.notEqual(undefined, sampleDotJson.properties.cache.entities);
837
892
  done();
838
893
  } catch (error) {
839
894
  log.error(`Test Failure: ${error}`);
@@ -939,40 +994,6 @@ describe('[unit] Meraki Adapter Test', () => {
939
994
  });
940
995
  });
941
996
 
942
- describe('#iapFindAdapterPath', () => {
943
- it('should have a iapFindAdapterPath function', (done) => {
944
- try {
945
- assert.equal(true, typeof a.iapFindAdapterPath === 'function');
946
- done();
947
- } catch (error) {
948
- log.error(`Test Failure: ${error}`);
949
- done(error);
950
- }
951
- });
952
- it('iapFindAdapterPath should find atleast one path that matches', (done) => {
953
- try {
954
- a.iapFindAdapterPath('{base_path}/{version}', (data, error) => {
955
- try {
956
- assert.equal(undefined, error);
957
- assert.notEqual(undefined, data);
958
- assert.notEqual(null, data);
959
- assert.equal(true, data.found);
960
- assert.notEqual(undefined, data.foundIn);
961
- assert.notEqual(null, data.foundIn);
962
- assert.notEqual(0, data.foundIn.length);
963
- done();
964
- } catch (err) {
965
- log.error(`Test Failure: ${err}`);
966
- done(err);
967
- }
968
- });
969
- } catch (error) {
970
- log.error(`Adapter Exception: ${error}`);
971
- done(error);
972
- }
973
- }).timeout(attemptTimeout);
974
- });
975
-
976
997
  describe('#iapSuspendAdapter', () => {
977
998
  it('should have a iapSuspendAdapter function', (done) => {
978
999
  try {
@@ -1009,6 +1030,40 @@ describe('[unit] Meraki Adapter Test', () => {
1009
1030
  });
1010
1031
  });
1011
1032
 
1033
+ describe('#iapFindAdapterPath', () => {
1034
+ it('should have a iapFindAdapterPath function', (done) => {
1035
+ try {
1036
+ assert.equal(true, typeof a.iapFindAdapterPath === 'function');
1037
+ done();
1038
+ } catch (error) {
1039
+ log.error(`Test Failure: ${error}`);
1040
+ done(error);
1041
+ }
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);
1065
+ });
1066
+
1012
1067
  describe('#iapTroubleshootAdapter', () => {
1013
1068
  it('should have a iapTroubleshootAdapter function', (done) => {
1014
1069
  try {
@@ -1154,49 +1209,53 @@ describe('[unit] Meraki Adapter Test', () => {
1154
1209
  }).timeout(attemptTimeout);
1155
1210
  });
1156
1211
 
1157
- // describe('#iapHasAdapterEntity', () => {
1158
- // it('should have a iapHasAdapterEntity function', (done) => {
1159
- // try {
1160
- // assert.equal(true, typeof a.iapHasAdapterEntity === 'function');
1161
- // done();
1162
- // } catch (error) {
1163
- // log.error(`Test Failure: ${error}`);
1164
- // done(error);
1165
- // }
1166
- // });
1167
- // it('should find entity', (done) => {
1168
- // try {
1169
- // a.iapHasAdapterEntity('template_entity', // 'a9e9c33dc61122760072455df62663d2', (data) => {
1170
- // try {
1171
- // assert.equal(true, data[0]);
1172
- // done();
1173
- // } catch (err) {
1174
- // log.error(`Test Failure: ${err}`);
1175
- // done(err);
1176
- // }
1177
- // });
1178
- // } catch (error) {
1179
- // log.error(`Adapter Exception: ${error}`);
1180
- // done(error);
1181
- // }
1182
- // }).timeout(attemptTimeout);
1183
- // it('should not find entity', (done) => {
1184
- // try {
1185
- // a.iapHasAdapterEntity('template_entity', 'blah', (data) => {
1186
- // try {
1187
- // assert.equal(false, data[0]);
1188
- // done();
1189
- // } catch (err) {
1190
- // log.error(`Test Failure: ${err}`);
1191
- // done(err);
1192
- // }
1193
- // });
1194
- // } catch (error) {
1195
- // log.error(`Adapter Exception: ${error}`);
1196
- // done(error);
1197
- // }
1198
- // }).timeout(attemptTimeout);
1199
- // });
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
+ });
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
+ });
1200
1259
 
1201
1260
  describe('#hasEntities', () => {
1202
1261
  it('should have a hasEntities function', (done) => {
@@ -1270,6 +1329,173 @@ describe('[unit] Meraki Adapter Test', () => {
1270
1329
  });
1271
1330
  });
1272
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-meraki', 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-meraki', 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
+ });
1273
1499
  /*
1274
1500
  -----------------------------------------------------------------------
1275
1501
  -----------------------------------------------------------------------
@@ -7,6 +7,7 @@
7
7
  /* eslint global-require: warn */
8
8
  /* eslint no-unused-vars: warn */
9
9
  /* eslint import/no-unresolved: warn */
10
+ /* eslint no-promise-executor-return: warn */
10
11
 
11
12
  /**
12
13
  * This script is used to read through an adapter's entities files
@@ -164,8 +165,7 @@ const moveEntitiesToDB = async (targetPath, options) => {
164
165
  });
165
166
 
166
167
  // Upload documents to db collection
167
- const iapDir = utils.getIAPHome();
168
- const db = await utils.connect(iapDir, currentProps).catch((err) => { console.error(err); throw err; });
168
+ const db = await utils.connect(currentProps).catch((err) => { console.error(err); throw err; });
169
169
  if (!db) {
170
170
  console.error('Error occured when connectiong to database', currentProps);
171
171
  throw new Error('Database not found');