UNPKG

@artilleryio/platform-fargate

Version:
79 lines (68 loc) 1.93 kB
'use strict'; const A = require('async'); const debug = require('debug')('commands:list-tests'); const { getBucketName } = require('../util'); const util = require('../util'); const setDefaultAWSCredentials = require('../utils/aws-set-default-credentials'); function tryListTests(options) { listTests(options); } async function listTests(options) { await setDefaultAWSCredentials(); A.waterfall( [ A.constant({}), async function(context) { context.s3Bucket = await getBucketName(); return context; }, listBucket ], function(err, context) { if (err) { console.error(`Error: ${err.message}`); debug(err); process.exit(1); } else { if (context.testNames.length > 0) { if (options.json) { console.log(JSON.stringify({tests: context.testNames})); } else { console.log('Tests:'); context.testNames.forEach((name, idx) => { console.log(`${idx+1}. ${name}`); }); } } else { if (options.json) { console.log(JSON.stringify({tests: [] })); } else { console.log('No existing tests found'); } } } }); } function listBucket(context, callback) { util.listAllObjectsWithPrefix(context.s3Bucket, 'tests', (err, objects) => { if (err) { return callback(err, context); } const testNames = []; objects.forEach((entry) => { const testName = entry.Key.split('/')[1]; // TODO: This prefix is used in several places and MUST be a constant defined somewhere if (testName.startsWith('aht__')) { return; } if (testNames.indexOf(testName) === -1) { testNames.push(testName); } }); context.testNames = testNames; return callback(null, context); }); } module.exports = { tryListTests };