Has anyone run into this error before? Error: BLANKET-Error parsing instrumented code: TypeError: undefined is not a function at Context.<anonymous> (test/test.js:921:24)
I have the following module which I am trying to test. This module require a lot of other modules I had to write. Don;t understand why I am getting this error as I have performed the same action several times before only not using my own modules as dependencies but third party modules.
S3resizer code:
'use strict';
var async = require('async');
var S3get = require("./S3Handler.js")._get();
var S3put = require("./S3Handler.js")._put();
var readDirFile = require("./readDirectory.js")._get();
var readDirCont = require("./readDirectory.js")._getContent();
var rs = require("./resizer.js").resize();
var sqsCreate = require("./sqsHandler.js")._createQueue();
var sqsSend = require("./sqsHandler.js")._sendMessage();
var S3resizer = {};
S3resizer.rs = function (imgName, bucketName, sizesObj, imageType, obj, cb) {
var dir = "/tmp";
async.waterfall([
function (callback) {
S3get(bucketName, imgName, callback);
},
function (data, callback) {
rs(data, imgName, dir, sizesObj, callback);
},
function (callback) {
readDirFile(dir, callback);
},
function (files, callback) {
async.map(files, function (file, mapNext) {
readDirCont(file, function (data) {
S3put(bucketName, data, file, imgName, imageType, mapNext);
});
}, callback);
},
function (callback) {
sqsCreate(callback);
},
function (obj, callback) {
sqsSend(obj, callback);
}
], function (error) {
if(error) {
cb(error);
} else {
cb();
}
});
};
module.exports = S3resizer;
test code:
describe("S3resizer", function () {
var testedModule, fakeResponse, fakeFiles, S3getStub, rsStub, readDirFileStub, readDirContStub, S3putStub, sqsCreateStub, sqsSendStub, cbSpy, imgName, bucketName, sizesObj, imageType, obj;
before(function () {
S3getStub = sinon.stub();
rsStub = sinon.stub();
readDirContStub = sinon.stub();
readDirFileStub = sinon.stub();
S3putStub = sinon.stub();
sqsCreateStub = sinon.stub();
sqsSendStub = sinon.stub();
cbSpy = sinon.spy();
imgName = "Whatever";
bucketName = "Chappie";
sizesObj = [
{ width: 800, height: 800, name: 'large' },
{ width: 500, height: 500, name: 'medium' },
{ width: 200, height: 200, name: 'small' },
{ width: 45, height: 45, name: 'thumbnail'}
];
imageType = "png";
obj = {
"event":"image_rs.re-sized",
"message": {
"url":"S3://bucketname/images/908798",
"sizes":["large","medium","small","thumbnail"]
}
};
fakeResponse = { Body: 'image content' };
fakeFiles = ["thumbnail_Whatever", "small_Whatever", "medium_Whatever", "large_Whatever"];
testedModule = proxyquire ("../S3resizer", {
"../S3Handler.js" : {
_get: S3getStub,
_put: S3putStub
},
"../readDirectory.js": {
_get: readDirFileStub,
_getContent: readDirContStub
},
"../resizer.js": {
resize: rsStub
},
"../sqsHandler.js": {
_createQueue: sqsCreateStub,
_sendMessage: sqsSendStub
}
});
});
it("calls context.done", function (done) {
S3getStub.callsArgWith(2, null, fakeResponse, imgName);
readDirFileStub.callsArgWith(1, null, fakeFiles);
testedModule.rs(imgName, bucketName, sizesObj, imageType, obj, function () {
cbSpy.apply(null, arguments);
expect(cbSpy).has.been.called;
done();
});
});
});
the error points to the line where testedModule = proxyquire ("../S3resizer.js", {
Aucun commentaire:
Enregistrer un commentaire