2016-05-20 3 views
1

Попытки запустить s3 загрузить из теста мокко:AWS-SDK загрузка s3 не работает из теста мокко

'use strict'; 

describe('S3 test', function() { 
    it.only('S3 test 1', function*() { 
     var AWS = require('aws-sdk'); 
     //AWS.config.region = 'us-west-2'; 
     var s3 = new AWS.S3({ 
      params: { Bucket: 'test-1-myBucket', Key: 'myKey' } 
     }); 
     s3.createBucket(function(err) { 
      if (err) { 
       console.log("Error:", err); 
      } else { 
       s3.upload({ 
        Body: 'Hello!' 
       }, function() { 
        console.log("Successfully uploaded data to myBucket/myKey"); 
       }); 
      } 
     }); 
    }); 
}); 

, но ничего не происходит, он не посылает запрос HTTP на всех. Почему это?

ответ

1

может отсутствовать accessKeyId и secretAccessKey

var s3 = new AWS.S3({ 
    accessKeyId: "", 
    secretAccessKey: "" 
}); 

затем

s3.upload({ 
    Bucket: 'test-1-myBucket', 
    Key: 'myKey' 
    Body: 'Hello!',  
} 
+0

ну, нет. У меня их есть в моей среде, и если бы я этого не сделал, я ожидал получить ошибку. Но я ничего не понимаю. Тот же код отлично работает за пределами мокко. –

2

Doh. Его асинхронный, поэтому мне нужно использовать сделанный обратный вызов:

'use strict'; 

describe('S3 test', function() { 
    it.only('S3 test 1', function(done) { 
     var AWS = require('aws-sdk'); 
     //AWS.config.region = 'us-west-2'; 
     var s3 = new AWS.S3({ 
      params: { 
       Bucket: 'mkruk-myBucket', 
       Key: 'myKey' 
      } 
     }); 
     s3.createBucket(function(err) { 
      if (err) { 
       console.log("Error:", err); 
       done(); 
      } else { 
       s3.upload({ 
        Body: 'Hello!' 
       }, function() { 
        console.log("Successfully uploaded data to myBucket/myKey"); 
        done(); 
       }); 
      } 
     }); 
    }); 
});