Таким образом, когда я пытаюсь проверить, должен ли console.log вызываться с ошибкой из обещания, он возвращается со следующей ошибкой:
1) Main getFileFromS3 с ошибкой в случае ошибки с бла: AssertionError: ожидаемый журнал будет вызван с аргументами бла-бла
Это мой основной код:
const Promise = require('bluebird');
const AWS = require('aws-sdk');
const s3 = new AWS.S3({
});
const s3GetObject = Promise.promisify(s3.getObject.bind(s3));
async function getS3File(){
try {
const contentType = await s3GetObject(s3Params);
await console.log('CONTENT:', contentType);
return contentType;
} catch (err) {
await console.log(err);
}
};
И это мой тест:
const rewire = require('rewire');
const chai = require('chai');
const sinonChai = require('sinon-chai');
const sinon = require('sinon');
const chaiAsPromised = require('chai-as-promised');
chai.should();
chai.use(sinonChai);
chai.use(chaiAsPromised);
describe('Main', () => {
describe('getFileFromS3', () => {
let sut, getS3FileStub, callS3Stub;
beforeEach(() => {
sut = rewire('../../main');
getS3FileStub = sut.__get__('getS3File');
sinon.spy(console, 'log');
});
afterEach(() => {
console.log.restore();
});
it('should be a function', () => {
getS3FileStub.should.be.a('function');
});
describe('with error', () => {
beforeEach(() => {
s3GetObjectStub = sinon.stub().rejects('blah');
sut.__set__('s3GetObject', s3GetObjectStub);
getS3FileStub = sut.__get__('getS3File');
});
it('should error with blah', async () => {
await getS3FileStub();
console.log.should.be.calledWith('blah');
});
});
});
});