functional-google-cloud
Version:
Google Cloud Utilities functions in Functional Programming Style
37 lines • 1.79 kB
JavaScript
import { createStubInstance } from 'sinon';
import { Bucket, File, Storage, } from '@google-cloud/storage';
// getSignedUrl :: String -> GetSignedUrlConfig -> GetSignedUrlResponse
export const getSignedUrl = (url) => () => Promise.resolve([url]);
// download :: Buffer -> () -> Promise [Buffer]
export const download = (buffer) => () => Promise.resolve([buffer]);
// getFailedSignedUrl :: Error -> GetSignedUrlConfig -> GetSignedUrlResponse
export const getFailedSignedUrl = (error) => () => Promise.reject(error);
// file :: ReturnValues -> Stub File
export const file = (values) => {
const stubInstance = createStubInstance(File);
stubInstance.getSignedUrl.callsFake(getSignedUrl(values.url));
stubInstance.download.callsFake(download(values.buffer));
stubInstance.save.callsFake((buffer) => {
stubInstance.download.callsFake(download(buffer));
});
return stubInstance;
};
// failedFile :: Error -> Stub File
export const failedFile = (error) => {
const stubInstance = createStubInstance(File);
stubInstance.getSignedUrl.callsFake(getFailedSignedUrl(error));
return stubInstance;
};
// bucket :: ReturnValues -> Stub Bucket
export const bucket = (values) => {
const stubInstance = createStubInstance(Bucket);
stubInstance.file.callsFake((filename) => file(Object.assign(Object.assign({}, values), { url: `${values.url}/${filename}` })));
return stubInstance;
};
// storage :: ReturnValues -> Stub Storage
export const storage = (values) => {
const stubInstance = createStubInstance(Storage);
stubInstance.bucket.callsFake((bucketname) => bucket(Object.assign(Object.assign({}, values), { url: `${values.url}/${bucketname}` })));
return stubInstance;
};
//# sourceMappingURL=Stubs.js.map