У меня есть эта функция, которую я хочу протестировать.
async function PutBucketPolicy(putBucketPolicyParams) {
logger.debug("---- PutBucketPolicy");
return new Promise(async(resolve, reject) => {
s3.putBucketPolicy(putBucketPolicyParams, function(err, data) {
if (err)
{
resolve(err);
logger.debug("Error occured!");
logger.debug(err, err.stack); // an error occurred
}
else
{
resolve(data);
logger.debug("Data: ", data);
logger.debug(data); // successful response
}
});
});
}
Как я хочу ее протестировать:
describe("Testing PutBucketPolicy function", () => {
describe("when called with a valid bucket policy object and an event then it", () => {
it("sets the bucket policy through an aws call.", async() => {
AWSMock.mock("S3","putBucketPolicy",{ "Body": Buffer.from("somestring") });
const result = await PutBucketPolicy(helper.putBucketPolicyParams);
expect( result).toMatchObject(helper.resultPolicyObject);
AWSMock.restore('S3');
});
});
});
Проблема в том, что она всегда возвращает [ ExpiredToken: срок действия предоставленного токена истек.] , поскольку само mocking не будет работать, и оно пытается go вывести inte rnet и выполнить функцию s3.putBucketPolicy.
Я новичок к этому. Что я должен сделать, чтобы это работало?