btrz-pact-s3
Advanced tools
Comparing version 0.4.2 to 0.4.3
94
index.js
@@ -160,8 +160,4 @@ "use strict"; | ||
function resolver(resolve, reject) { | ||
s3Client.listObjects({Bucket: self.bucket}, (err, data) => { | ||
if (err) { | ||
return reject(err); | ||
} | ||
return s3Client.listObjects({Bucket: self.bucket}).promise() | ||
.then((data) => { | ||
let keysFromProvider = data.Contents.filter((content) => { | ||
@@ -175,25 +171,71 @@ return (content.Key.indexOf(`${providerName.toLowerCase()}/`) === 0); | ||
let pactFiles = []; | ||
for (var i=0; i < keysFromProvider.length; i++) { | ||
let filePath = `${__dirname}/pacts-to-verify/${path.basename(keysFromProvider[i])}`; | ||
let file = fs.createWriteStream(filePath); | ||
s3Client.getObject({Bucket: self.bucket, Key: keysFromProvider[i]}).createReadStream().pipe(file); | ||
pactFiles.push(filePath); | ||
} | ||
var opts = { | ||
return Promise.all(keysFromProvider.map((key) => { | ||
return s3Client.getObject({Bucket: self.bucket, Key: key}).promise() | ||
.then((data) => { | ||
let filePath = `${__dirname}/pacts-to-verify/${path.basename(key)}`; | ||
fs.createWriteStream(filePath).write(data); | ||
return filePath; | ||
}); | ||
}) | ||
); | ||
}) | ||
.then((filePaths) => { | ||
let opts = { | ||
providerBaseUrl: providerBaseUrl, | ||
pactUrls: pactFiles | ||
pactUrls: filePaths | ||
}; | ||
return pact.verifyPacts(opts); | ||
}) | ||
.catch((err) => { | ||
if (this.logger) { | ||
this.logger.error(`Error on BtrzPactS3::verifyPacts()`, err); | ||
} | ||
throw err; | ||
}); | ||
pact.verifyPacts(opts) | ||
.then((result) => { | ||
return resolve(result); | ||
}) | ||
.catch((err) => { | ||
return reject(err); | ||
}); | ||
}); | ||
} | ||
return new Promise(resolver); | ||
// function resolver(resolve, reject) { | ||
// s3Client.listObjects({Bucket: self.bucket}, (err, data) => { | ||
// if (err) { | ||
// if (self.logger) { | ||
// self.logger.error(`Error on BtrzPactS3::verifyPacts()`, err); | ||
// } | ||
// return reject(err); | ||
// } | ||
// let keysFromProvider = data.Contents.filter((content) => { | ||
// return (content.Key.indexOf(`${providerName.toLowerCase()}/`) === 0); | ||
// }).map((content) => {return content.Key}); | ||
// if (keysFromProvider.length === 0) { | ||
// return reject(new Error(`There are no pacts for the provider ${providerName}`)); | ||
// } | ||
// let pactFiles = []; | ||
// for (var i=0; i < keysFromProvider.length; i++) { | ||
// let filePath = `${__dirname}/pacts-to-verify/${path.basename(keysFromProvider[i])}`; | ||
// let file = fs.createWriteStream(filePath); | ||
// //s3Client.getObject({Bucket: self.bucket, Key: keysFromProvider[i]}).createReadStream().pipe(file); | ||
// s3Client.getObject({Bucket: self.bucket, Key: keysFromProvider[i]}).promise() | ||
// .then((data) => { | ||
// file.write(data); | ||
// pactFiles.push(filePath); | ||
// }); | ||
// } | ||
// var opts = { | ||
// providerBaseUrl: providerBaseUrl, | ||
// pactUrls: pactFiles | ||
// }; | ||
// pact.verifyPacts(opts) | ||
// .then((result) => { | ||
// return resolve(result); | ||
// }) | ||
// .catch((err) => { | ||
// return reject(err); | ||
// }); | ||
// }); | ||
// } | ||
// return new Promise(resolver); | ||
} | ||
@@ -200,0 +242,0 @@ |
{ | ||
"name": "btrz-pact-s3", | ||
"version": "0.4.2", | ||
"version": "0.4.3", | ||
"description": "A consumer-driven Pact library for NodeJs to publish pacts to AWS S3 and verify them", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -164,19 +164,17 @@ "use strict"; | ||
sinon.stub(s3Client, "listObjects", (opts, cb) => { | ||
sinon.stub(s3Client, "listObjects", (opts) => { | ||
expect(opts.Bucket).to.be.eql(options.bucket); | ||
s3Client.listObjects.restore(); | ||
cb(null,{ Contents: [{Key: "provider/consumer/pact-file.json"}]}); | ||
return { | ||
promise: function () {return Promise.resolve({ Contents: [{Key: "provider/consumer/pact-file.json"}]});} | ||
}; | ||
}); | ||
sinon.stub(s3Client, "getObject", (opts, cb) => { | ||
sinon.stub(s3Client, "getObject", (opts) => { | ||
expect(opts.Bucket).to.be.eql(options.bucket); | ||
expect(opts.Key).to.be.eql("provider/consumer/pact-file.json"); | ||
s3Client.getObject.restore(); | ||
class S3MockObject { | ||
static createReadStream() { | ||
return require("fs").createReadStream("./"); | ||
} | ||
} | ||
return S3MockObject; | ||
return { | ||
promise: function () {return Promise.resolve("{testing:true}");} | ||
}; | ||
}); | ||
@@ -208,6 +206,8 @@ | ||
sinon.stub(s3Client, "listObjects", (opts, cb) => { | ||
sinon.stub(s3Client, "listObjects", (opts) => { | ||
expect(opts.Bucket).to.be.eql(options.bucket); | ||
s3Client.listObjects.restore(); | ||
cb(null,{ Contents: [{Key: "another_provider/consumer/pact-file.json"}]}); | ||
return { | ||
promise: function () {return Promise.resolve({ Contents: [{Key: "another_provider/consumer/pact-file.json"}]});} | ||
}; | ||
}); | ||
@@ -230,6 +230,8 @@ | ||
sinon.stub(s3Client, "listObjects", (opts, cb) => { | ||
sinon.stub(s3Client, "listObjects", (opts) => { | ||
expect(opts.Bucket).to.be.eql(options.bucket); | ||
s3Client.listObjects.restore(); | ||
cb(new Error("error!"), {}); | ||
return { | ||
promise: function () {return Promise.reject(new Error("error!"));} | ||
}; | ||
}); | ||
@@ -236,0 +238,0 @@ |
21759
599
1