Open nguyeti opened 6 years ago
Here is the module I want to test
'use strict'; var AWS = require('aws-sdk'); var async = require('async'); var s3 = new AWS.S3(); const BUCKET_NAME = process.env.BUCKET_NAME; var workletData = {}; exports.workletData = workletData; exports.loadWorkletData = loadWorkletData; function loadWorkletData() { async.waterfall([ function getBucketItemList(callback) { var params = { Bucket: BUCKET_NAME }; s3.listObjects(params, function(err, data) { if (err) { callback(err, null); } else { var bucketContent = data.Contents; callback(null, bucketContent); } }); }, function getBucketObjectDetails(bucketContent, callback) { async.forEach(bucketContent, function(item, callback) { var params = { Bucket: BUCKET_NAME, Key: item.Key }; s3.getObject(params, function(err, data) { if (err) { return callback(err); } else { var fileContent = data.Body.toString(); var json = JSON.parse(fileContent); workletData[json.name] = json; callback(); } }); }, function(err, data) { if (err) { console.log(err); callback(err); } else { callback(); } }); } ], function(err, result) { if (err) { throw err; } else { console.log('Worklet data loaded.'); } }); };
this is the test
describe('workletLoader', function () { it('should invoke a lambda function', function(done) { before(function() { AWS.mock('S3', 'listObjectsV2', function (params, callback) { callback(null, 'listObjects'); }); AWS.mock('S3', 'getObject', function (params, callback) { callback(null, 'getObject'); }); }); after(function(){ AWS.restore('S3', 'listObjectsV2'); AWS.restore('S3', 'getObject'); }); workletLoader.loadWorkletData(function(err, data) { should.not.exist(err); done(); }); }); });
I am getting ExpiredToken: The provided token has expired.
Looks like the methods are not properly mocked. Any suggestions>?
@nguyeti could you try to move this line of code var s3 = new AWS.S3(); into your loadWorkletData function and see what the result is?
var s3 = new AWS.S3();
loadWorkletData
Here is the module I want to test
this is the test
I am getting ExpiredToken: The provided token has expired.
Looks like the methods are not properly mocked. Any suggestions>?