functional-google-cloud
Version:
Google Cloud Utilities functions in Functional Programming Style
40 lines • 2.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.storage = exports.bucket = exports.failedFile = exports.file = exports.getFailedSignedUrl = exports.download = exports.getSignedUrl = void 0;
const sinon_1 = require("sinon");
const storage_1 = require("@google-cloud/storage");
// getSignedUrl :: String -> GetSignedUrlConfig -> GetSignedUrlResponse
exports.getSignedUrl = (url) => () => Promise.resolve([url]);
// download :: Buffer -> () -> Promise [Buffer]
exports.download = (buffer) => () => Promise.resolve([buffer]);
// getFailedSignedUrl :: Error -> GetSignedUrlConfig -> GetSignedUrlResponse
exports.getFailedSignedUrl = (error) => () => Promise.reject(error);
// file :: ReturnValues -> Stub File
exports.file = (values) => {
const stubInstance = sinon_1.createStubInstance(storage_1.File);
stubInstance.getSignedUrl.callsFake(exports.getSignedUrl(values.url));
stubInstance.download.callsFake(exports.download(values.buffer));
stubInstance.save.callsFake((buffer) => {
stubInstance.download.callsFake(exports.download(buffer));
});
return stubInstance;
};
// failedFile :: Error -> Stub File
exports.failedFile = (error) => {
const stubInstance = sinon_1.createStubInstance(storage_1.File);
stubInstance.getSignedUrl.callsFake(exports.getFailedSignedUrl(error));
return stubInstance;
};
// bucket :: ReturnValues -> Stub Bucket
exports.bucket = (values) => {
const stubInstance = sinon_1.createStubInstance(storage_1.Bucket);
stubInstance.file.callsFake((filename) => exports.file(Object.assign(Object.assign({}, values), { url: `${values.url}/${filename}` })));
return stubInstance;
};
// storage :: ReturnValues -> Stub Storage
exports.storage = (values) => {
const stubInstance = sinon_1.createStubInstance(storage_1.Storage);
stubInstance.bucket.callsFake((bucketname) => exports.bucket(Object.assign(Object.assign({}, values), { url: `${values.url}/${bucketname}` })));
return stubInstance;
};
//# sourceMappingURL=Stubs.js.map