diff --git a/src/storage/gcs.js b/src/storage/gcs.js
index 506cb6732..fa92e1b1d 100644
--- a/src/storage/gcs.js
+++ b/src/storage/gcs.js
@@ -40,7 +40,7 @@ const assert = require('assert'),
let GCS = require('@google-cloud/storage').Storage;
// test only
-var originalGCS;
+let originalGCS;
function mockInject(mock) {
originalGCS = GCS;
GCS = mock;
@@ -54,7 +54,7 @@ function mockRestore() {
function getBucket(apiConfig) {
assert.strictEqual(typeof apiConfig, 'object');
- var gcsConfig = {
+ const gcsConfig = {
projectId: apiConfig.projectId,
credentials: {
@@ -95,7 +95,7 @@ function upload(apiConfig, backupFilePath, sourceStream, callback) {
callback(null);
}
- var uploadStream = getBucket(apiConfig).file(backupFilePath)
+ const uploadStream = getBucket(apiConfig).file(backupFilePath)
.createWriteStream({resumable: false})
.on('finish', done)
.on('error', done);
diff --git a/src/test/dns-providers-test.js b/src/test/dns-providers-test.js
index 4db66c15d..965082498 100644
--- a/src/test/dns-providers-test.js
+++ b/src/test/dns-providers-test.js
@@ -46,8 +46,8 @@ describe('dns provider', function () {
});
describe('digitalocean', function () {
- let TOKEN = 'sometoken';
- let DIGITALOCEAN_ENDPOINT = 'https://api.digitalocean.com';
+ const TOKEN = 'sometoken';
+ const DIGITALOCEAN_ENDPOINT = 'https://api.digitalocean.com';
before(async function () {
domainCopy.provider = 'digitalocean';
@@ -61,7 +61,7 @@ describe('dns provider', function () {
it('upsert non-existing record succeeds', async function () {
nock.cleanAll();
- let DOMAIN_RECORD_0 = {
+ const DOMAIN_RECORD_0 = {
id: 3352892,
type: 'A',
name: '@',
@@ -71,10 +71,10 @@ describe('dns provider', function () {
weight: null
};
- let req1 = nock(DIGITALOCEAN_ENDPOINT).filteringRequestBody(function () { return false; })
+ const req1 = nock(DIGITALOCEAN_ENDPOINT).filteringRequestBody(function () { return false; })
.get('/v2/domains/' + domainCopy.zoneName + '/records')
.reply(200, { domain_records: [] });
- let req2 = nock(DIGITALOCEAN_ENDPOINT).filteringRequestBody(function () { return false; })
+ const req2 = nock(DIGITALOCEAN_ENDPOINT).filteringRequestBody(function () { return false; })
.post('/v2/domains/' + domainCopy.zoneName + '/records')
.reply(201, { domain_record: DOMAIN_RECORD_0 });
@@ -86,7 +86,7 @@ describe('dns provider', function () {
it('upsert existing record succeeds', async function () {
nock.cleanAll();
- let DOMAIN_RECORD_0 = {
+ const DOMAIN_RECORD_0 = {
id: 3352892,
type: 'A',
name: '@',
@@ -96,7 +96,7 @@ describe('dns provider', function () {
weight: null
};
- let DOMAIN_RECORD_1 = {
+ const DOMAIN_RECORD_1 = {
id: 3352893,
type: 'A',
name: 'test',
@@ -106,7 +106,7 @@ describe('dns provider', function () {
weight: null
};
- let DOMAIN_RECORD_1_NEW = {
+ const DOMAIN_RECORD_1_NEW = {
id: 3352893,
type: 'A',
name: 'test',
@@ -116,10 +116,10 @@ describe('dns provider', function () {
weight: null
};
- let req1 = nock(DIGITALOCEAN_ENDPOINT).filteringRequestBody(function () { return false; })
+ const req1 = nock(DIGITALOCEAN_ENDPOINT).filteringRequestBody(function () { return false; })
.get('/v2/domains/' + domainCopy.zoneName + '/records')
.reply(200, { domain_records: [DOMAIN_RECORD_0, DOMAIN_RECORD_1] });
- let req2 = nock(DIGITALOCEAN_ENDPOINT).filteringRequestBody(function () { return false; })
+ const req2 = nock(DIGITALOCEAN_ENDPOINT).filteringRequestBody(function () { return false; })
.put('/v2/domains/' + domainCopy.zoneName + '/records/' + DOMAIN_RECORD_1.id)
.reply(200, { domain_record: DOMAIN_RECORD_1_NEW });
@@ -131,7 +131,7 @@ describe('dns provider', function () {
it('upsert multiple record succeeds', async function () {
nock.cleanAll();
- let DOMAIN_RECORD_0 = {
+ const DOMAIN_RECORD_0 = {
id: 3352892,
type: 'A',
name: '@',
@@ -141,7 +141,7 @@ describe('dns provider', function () {
weight: null
};
- let DOMAIN_RECORD_1 = {
+ const DOMAIN_RECORD_1 = {
id: 3352893,
type: 'TXT',
name: '@',
@@ -151,7 +151,7 @@ describe('dns provider', function () {
weight: null
};
- let DOMAIN_RECORD_1_NEW = {
+ const DOMAIN_RECORD_1_NEW = {
id: 3352893,
type: 'TXT',
name: '@',
@@ -161,7 +161,7 @@ describe('dns provider', function () {
weight: null
};
- let DOMAIN_RECORD_2 = {
+ const DOMAIN_RECORD_2 = {
id: 3352894,
type: 'TXT',
name: '@',
@@ -171,7 +171,7 @@ describe('dns provider', function () {
weight: null
};
- let DOMAIN_RECORD_2_NEW = {
+ const DOMAIN_RECORD_2_NEW = {
id: 3352894,
type: 'TXT',
name: '@',
@@ -181,7 +181,7 @@ describe('dns provider', function () {
weight: null
};
- let DOMAIN_RECORD_3_NEW = {
+ const DOMAIN_RECORD_3_NEW = {
id: 3352895,
type: 'TXT',
name: '@',
@@ -191,16 +191,16 @@ describe('dns provider', function () {
weight: null
};
- let req1 = nock(DIGITALOCEAN_ENDPOINT).filteringRequestBody(function () { return false; })
+ const req1 = nock(DIGITALOCEAN_ENDPOINT).filteringRequestBody(function () { return false; })
.get('/v2/domains/' + domainCopy.zoneName + '/records')
.reply(200, { domain_records: [DOMAIN_RECORD_0, DOMAIN_RECORD_1, DOMAIN_RECORD_2] });
- let req2 = nock(DIGITALOCEAN_ENDPOINT).filteringRequestBody(function () { return false; })
+ const req2 = nock(DIGITALOCEAN_ENDPOINT).filteringRequestBody(function () { return false; })
.put('/v2/domains/' + domainCopy.zoneName + '/records/' + DOMAIN_RECORD_1.id)
.reply(200, { domain_record: DOMAIN_RECORD_1_NEW });
- let req3 = nock(DIGITALOCEAN_ENDPOINT).filteringRequestBody(function () { return false; })
+ const req3 = nock(DIGITALOCEAN_ENDPOINT).filteringRequestBody(function () { return false; })
.put('/v2/domains/' + domainCopy.zoneName + '/records/' + DOMAIN_RECORD_2.id)
.reply(200, { domain_record: DOMAIN_RECORD_2_NEW });
- let req4 = nock(DIGITALOCEAN_ENDPOINT).filteringRequestBody(function () { return false; })
+ const req4 = nock(DIGITALOCEAN_ENDPOINT).filteringRequestBody(function () { return false; })
.post('/v2/domains/' + domainCopy.zoneName + '/records')
.reply(201, { domain_record: DOMAIN_RECORD_2_NEW });
@@ -214,7 +214,7 @@ describe('dns provider', function () {
it('get succeeds', async function () {
nock.cleanAll();
- let DOMAIN_RECORD_0 = {
+ const DOMAIN_RECORD_0 = {
id: 3352892,
type: 'A',
name: '@',
@@ -224,7 +224,7 @@ describe('dns provider', function () {
weight: null
};
- let DOMAIN_RECORD_1 = {
+ const DOMAIN_RECORD_1 = {
id: 3352893,
type: 'A',
name: 'test',
@@ -234,7 +234,7 @@ describe('dns provider', function () {
weight: null
};
- let req1 = nock(DIGITALOCEAN_ENDPOINT).filteringRequestBody(function () { return false; })
+ const req1 = nock(DIGITALOCEAN_ENDPOINT).filteringRequestBody(function () { return false; })
.get('/v2/domains/' + domainCopy.zoneName + '/records')
.reply(200, { domain_records: [DOMAIN_RECORD_0, DOMAIN_RECORD_1] });
@@ -248,7 +248,7 @@ describe('dns provider', function () {
it('del succeeds', async function () {
nock.cleanAll();
- let DOMAIN_RECORD_0 = {
+ const DOMAIN_RECORD_0 = {
id: 3352892,
type: 'A',
name: '@',
@@ -258,7 +258,7 @@ describe('dns provider', function () {
weight: null
};
- let DOMAIN_RECORD_1 = {
+ const DOMAIN_RECORD_1 = {
id: 3352893,
type: 'A',
name: 'test',
@@ -268,10 +268,10 @@ describe('dns provider', function () {
weight: null
};
- let req1 = nock(DIGITALOCEAN_ENDPOINT).filteringRequestBody(function () { return false; })
+ const req1 = nock(DIGITALOCEAN_ENDPOINT).filteringRequestBody(function () { return false; })
.get('/v2/domains/' + domainCopy.zoneName + '/records')
.reply(200, { domain_records: [DOMAIN_RECORD_0, DOMAIN_RECORD_1] });
- let req2 = nock(DIGITALOCEAN_ENDPOINT).filteringRequestBody(function () { return false; })
+ const req2 = nock(DIGITALOCEAN_ENDPOINT).filteringRequestBody(function () { return false; })
.delete('/v2/domains/' + domainCopy.zoneName + '/records/' + DOMAIN_RECORD_1.id)
.reply(204, {});
@@ -282,8 +282,8 @@ describe('dns provider', function () {
});
describe('godaddy', function () {
- let KEY = 'somekey', SECRET = 'somesecret';
- let GODADDY_API = 'https://api.godaddy.com/v1/domains';
+ const KEY = 'somekey', SECRET = 'somesecret';
+ const GODADDY_API = 'https://api.godaddy.com/v1/domains';
before(async function () {
domainCopy.provider = 'godaddy';
@@ -298,12 +298,12 @@ describe('dns provider', function () {
it('upsert record succeeds', async function () {
nock.cleanAll();
- let DOMAIN_RECORD_0 = [{
+ const DOMAIN_RECORD_0 = [{
ttl: 600,
data: '1.2.3.4'
}];
- let req1 = nock(GODADDY_API)
+ const req1 = nock(GODADDY_API)
.put('/' + domainCopy.zoneName + '/records/A/test', DOMAIN_RECORD_0)
.reply(200, {});
@@ -314,12 +314,12 @@ describe('dns provider', function () {
it('get succeeds', async function () {
nock.cleanAll();
- let DOMAIN_RECORD_0 = [{
+ const DOMAIN_RECORD_0 = [{
ttl: 600,
data: '1.2.3.4'
}];
- let req1 = nock(GODADDY_API)
+ const req1 = nock(GODADDY_API)
.get('/' + domainCopy.zoneName + '/records/A/test')
.reply(200, DOMAIN_RECORD_0);
@@ -333,21 +333,21 @@ describe('dns provider', function () {
it('del succeeds', async function () {
nock.cleanAll();
- let DOMAIN_RECORD_0 = [{ // existing
+ const DOMAIN_RECORD_0 = [{ // existing
ttl: 600,
data: '1.2.3.4'
}];
- let DOMAIN_RECORD_1 = [{ // replaced
+ const DOMAIN_RECORD_1 = [{ // replaced
ttl: 600,
data: '0.0.0.0'
}];
- let req1 = nock(GODADDY_API)
+ const req1 = nock(GODADDY_API)
.get('/' + domainCopy.zoneName + '/records/A/test')
.reply(200, DOMAIN_RECORD_0);
- let req2 = nock(GODADDY_API)
+ const req2 = nock(GODADDY_API)
.put('/' + domainCopy.zoneName + '/records/A/test', DOMAIN_RECORD_1)
.reply(200, {});
@@ -358,8 +358,8 @@ describe('dns provider', function () {
});
describe('gandi', function () {
- let TOKEN = 'sometoken';
- let GANDI_API = 'https://dns.api.gandi.net/api/v5';
+ const TOKEN = 'sometoken';
+ const GANDI_API = 'https://dns.api.gandi.net/api/v5';
before(async function () {
domainCopy.provider = 'gandi';
@@ -373,12 +373,12 @@ describe('dns provider', function () {
it('upsert record succeeds', async function () {
nock.cleanAll();
- let DOMAIN_RECORD_0 = {
+ const DOMAIN_RECORD_0 = {
'rrset_ttl': 300,
'rrset_values': ['1.2.3.4']
};
- let req1 = nock(GANDI_API)
+ const req1 = nock(GANDI_API)
.put('/domains/' + domainCopy.zoneName + '/records/test/A', DOMAIN_RECORD_0)
.reply(201, { message: 'Zone Record Created' });
@@ -389,14 +389,14 @@ describe('dns provider', function () {
it('get succeeds', async function () {
nock.cleanAll();
- let DOMAIN_RECORD_0 = {
+ const DOMAIN_RECORD_0 = {
'rrset_type': 'A',
'rrset_ttl': 600,
'rrset_name': 'test',
'rrset_values': ['1.2.3.4']
};
- let req1 = nock(GANDI_API)
+ const req1 = nock(GANDI_API)
.get('/domains/' + domainCopy.zoneName + '/records/test/A')
.reply(200, DOMAIN_RECORD_0);
@@ -410,7 +410,7 @@ describe('dns provider', function () {
it('del succeeds', async function () {
nock.cleanAll();
- let req2 = nock(GANDI_API)
+ const req2 = nock(GANDI_API)
.delete('/domains/' + domainCopy.zoneName + '/records/test/A')
.reply(204, {});
@@ -436,18 +436,18 @@ describe('dns provider', function () {
it('upsert record succeeds', async function () {
nock.cleanAll();
- let DOMAIN_RECORD_0 = {
+ const DOMAIN_RECORD_0 = {
host: 'test',
type: 'A',
answer: '1.2.3.4',
ttl: 300
};
- let req1 = nock(NAMECOM_API)
+ const req1 = nock(NAMECOM_API)
.get(`/domains/${domainCopy.zoneName}/records`)
.reply(200, { records: [] });
- let req2 = nock(NAMECOM_API)
+ const req2 = nock(NAMECOM_API)
.post(`/domains/${domainCopy.zoneName}/records`, DOMAIN_RECORD_0)
.reply(200, {});
@@ -459,14 +459,14 @@ describe('dns provider', function () {
it('get succeeds', async function () {
nock.cleanAll();
- let DOMAIN_RECORD_0 = {
+ const DOMAIN_RECORD_0 = {
host: 'test',
type: 'A',
answer: '1.2.3.4',
ttl: 300
};
- let req1 = nock(NAMECOM_API)
+ const req1 = nock(NAMECOM_API)
.get(`/domains/${domainCopy.zoneName}/records`)
.reply(200, { records: [DOMAIN_RECORD_0] });
@@ -480,7 +480,7 @@ describe('dns provider', function () {
it('del succeeds', async function () {
nock.cleanAll();
- let DOMAIN_RECORD_0 = {
+ const DOMAIN_RECORD_0 = {
id: 'someid',
host: 'test',
type: 'A',
@@ -488,11 +488,11 @@ describe('dns provider', function () {
ttl: 300
};
- let req1 = nock(NAMECOM_API)
+ const req1 = nock(NAMECOM_API)
.get(`/domains/${domainCopy.zoneName}/records`)
.reply(200, { records: [DOMAIN_RECORD_0] });
- let req2 = nock(NAMECOM_API)
+ const req2 = nock(NAMECOM_API)
.delete(`/domains/${domainCopy.zoneName}/records/${DOMAIN_RECORD_0.id}`)
.reply(200, {});
@@ -554,7 +554,7 @@ describe('dns provider', function () {
0.16
`;
- let req1 = nock(NAMECHEAP_ENDPOINT).get('/xml.response')
+ const req1 = nock(NAMECHEAP_ENDPOINT).get('/xml.response')
.query({
ApiUser: username,
ApiKey: token,
@@ -566,7 +566,7 @@ describe('dns provider', function () {
})
.reply(200, GET_HOSTS_RETURN);
- let req2 = nock(NAMECHEAP_ENDPOINT).post('/xml.response', (body) => {
+ const req2 = nock(NAMECHEAP_ENDPOINT).post('/xml.response', (body) => {
const expected = {
ApiUser: username,
ApiKey: token,
@@ -619,7 +619,7 @@ describe('dns provider', function () {
0.16
`;
- let req1 = nock(NAMECHEAP_ENDPOINT).get('/xml.response')
+ const req1 = nock(NAMECHEAP_ENDPOINT).get('/xml.response')
.query({
ApiUser: username,
ApiKey: token,
@@ -631,7 +631,7 @@ describe('dns provider', function () {
})
.reply(200, GET_HOSTS_RETURN);
- let req2 = nock(NAMECHEAP_ENDPOINT).post('/xml.response', (body) => {
+ const req2 = nock(NAMECHEAP_ENDPOINT).post('/xml.response', (body) => {
const expected = {
ApiUser: username,
ApiKey: token,
@@ -694,7 +694,7 @@ describe('dns provider', function () {
0.16
`;
- let req1 = nock(NAMECHEAP_ENDPOINT).get('/xml.response')
+ const req1 = nock(NAMECHEAP_ENDPOINT).get('/xml.response')
.query({
ApiUser: username,
ApiKey: token,
@@ -706,7 +706,7 @@ describe('dns provider', function () {
})
.reply(200, GET_HOSTS_RETURN);
- let req2 = nock(NAMECHEAP_ENDPOINT).post('/xml.response', (body) => {
+ const req2 = nock(NAMECHEAP_ENDPOINT).post('/xml.response', (body) => {
const expected = {
ApiUser: username,
ApiKey: token,
@@ -755,7 +755,7 @@ describe('dns provider', function () {
0.16
`;
- let req1 = nock(NAMECHEAP_ENDPOINT).get('/xml.response')
+ const req1 = nock(NAMECHEAP_ENDPOINT).get('/xml.response')
.query({
ApiUser: username,
ApiKey: token,
@@ -791,7 +791,7 @@ describe('dns provider', function () {
0.16
`;
- let req1 = nock(NAMECHEAP_ENDPOINT).get('/xml.response')
+ const req1 = nock(NAMECHEAP_ENDPOINT).get('/xml.response')
.query({
ApiUser: username,
ApiKey: token,
@@ -803,7 +803,7 @@ describe('dns provider', function () {
})
.reply(200, GET_HOSTS_RETURN);
- let req2 = nock(NAMECHEAP_ENDPOINT).post('/xml.response', (body) => {
+ const req2 = nock(NAMECHEAP_ENDPOINT).post('/xml.response', (body) => {
const expected = {
ApiUser: username,
ApiKey: token,
@@ -846,7 +846,7 @@ describe('dns provider', function () {
0.16
`;
- let req1 = nock(NAMECHEAP_ENDPOINT).get('/xml.response')
+ const req1 = nock(NAMECHEAP_ENDPOINT).get('/xml.response')
.query({
ApiUser: username,
ApiKey: token,
@@ -866,7 +866,7 @@ describe('dns provider', function () {
describe('route53', function () {
// do not clear this with [] but .length = 0 so we don't loose the reference in mockery
- let awsAnswerQueue = []; // every element itself is array: [0] is error and [1] is result
+ const awsAnswerQueue = []; // every element itself is array: [0] is error and [1] is result
let AWS_HOSTED_ZONES = null;
@@ -1021,7 +1021,7 @@ describe('dns provider', function () {
describe('gcdns', function () {
let HOSTED_ZONES = [];
- let zoneQueue = []; // every element itself is array: [0] is error and [1] is result
+ const zoneQueue = []; // every element itself is array: [0] is error and [1] is result
let _OriginalGCDNS;
before(async function () {
diff --git a/src/test/storage-test.js b/src/test/storage-test.js
index 1b6f2e76c..9c9e3c27f 100644
--- a/src/test/storage-test.js
+++ b/src/test/storage-test.js
@@ -17,7 +17,7 @@ const BoxError = require('../boxerror.js'),
os = require('os'),
path = require('path'),
rimraf = require('rimraf'),
- recursive_readdir = require('recursive-readdir'),
+ recursiveReaddir = require('recursive-readdir'),
s3 = require('../storage/s3.js'),
safe = require('safetydance'),
settings = require('../settings.js'),
@@ -150,25 +150,19 @@ describe('Storage', function () {
});
});
- it('can remove file', function (done) {
+ it('can remove file', async function () {
const sourceFile = gTmpFolder + '/uploadtest/test-hardlink.txt';
- filesystem.remove(gBackupConfig, sourceFile, function (error) {
- expect(error).to.be(null);
- expect(fs.existsSync(sourceFile)).to.be(false);
- done();
- });
+ await filesystem.remove(gBackupConfig, sourceFile);
+ expect(fs.existsSync(sourceFile)).to.be(false);
});
- it('can remove empty dir', function (done) {
+ it('can remove empty dir', async function () {
const sourceDir = gTmpFolder + '/emptydir';
fs.mkdirSync(sourceDir);
- filesystem.remove(gBackupConfig, sourceDir, function (error) {
- expect(error).to.be(null);
- expect(fs.existsSync(sourceDir)).to.be(false);
- done();
- });
+ await filesystem.remove(gBackupConfig, sourceDir, () => {});
+ expect(fs.existsSync(sourceDir)).to.be(false);
});
});
@@ -206,18 +200,12 @@ describe('Storage', function () {
});
});
- it('can remove file', function (done) {
- noop.remove(gBackupConfig, 'sourceFile', function (error) {
- expect(error).to.be(null);
- done();
- });
+ it('can remove file', async function () {
+ await noop.remove(gBackupConfig, 'sourceFile');
});
- it('can remove empty dir', function (done) {
- noop.remove(gBackupConfig, 'sourceDir', function (error) {
- expect(error).to.be(null);
- done();
- });
+ it('can remove empty dir', async function () {
+ await noop.remove(gBackupConfig, 'sourceDir', () => {});
});
});
@@ -297,19 +285,13 @@ describe('Storage', function () {
});
});
- it('can remove file', function (done) {
- s3.remove(gBackupConfig, 'uploadtest-copy/test.txt', function (error) {
- expect(error).to.be(null);
- expect(fs.existsSync(path.join(gS3Folder, 'uploadtest-copy/test.txt'))).to.be(false);
- done();
- });
+ it('can remove file', async function () {
+ await s3.remove(gBackupConfig, 'uploadtest-copy/test.txt');
+ expect(fs.existsSync(path.join(gS3Folder, 'uploadtest-copy/test.txt'))).to.be(false);
});
- it('can remove non-existent dir', function (done) {
- noop.remove(gBackupConfig, 'blah', function (error) {
- expect(error).to.be(null);
- done();
- });
+ it('can remove non-existent dir', async function () {
+ await noop.remove(gBackupConfig, 'blah', () => {});
});
});
@@ -328,70 +310,71 @@ describe('Storage', function () {
const GCSMockBasePath = path.join(os.tmpdir(), 'gcs-backup-test-buckets/');
before(function () {
- const mockGCS = function(){
- return {bucket: function(){
- const file = function(filename){
+ const mockGCS = function() {
+ return {
+ bucket: function() {
+ const file = function (filename) {
+ function ensurePathWritable(filename) {
+ filename = GCSMockBasePath + filename;
+ fs.mkdirSync(path.dirname(filename), { recursive: true });
+ return filename;
+ }
- const ensurePathWritable = function (filename) {
- filename = GCSMockBasePath + filename;
- fs.mkdirSync(path.dirname(filename), { recursive: true });
- return filename;
+ return {
+ name: filename,
+ createReadStream: function() {
+ return fs.createReadStream(ensurePathWritable(filename))
+ .on('error', function(e){
+ console.log('error createReadStream: '+filename);
+ if (e.code == 'ENOENT') { e.code = 404; }
+ this.emit('error', e);
+ })
+ ;
+ },
+ createWriteStream: function() {
+ return fs.createWriteStream(ensurePathWritable(filename));
+ },
+ delete: async function() {
+ await fs.promises.unlink(ensurePathWritable(filename));
+ },
+ copy: function(dst, cb) {
+ function notFoundHandler(e) {
+ if (e && e.code == 'ENOENT') { e.code = 404; return cb(e); }
+ cb();
+ }
+
+ return fs.createReadStream(ensurePathWritable(filename))
+ .on('end', cb)
+ .on('error', notFoundHandler)
+ .pipe(fs.createWriteStream(ensurePathWritable(dst)))
+ .on('end', cb)
+ .on('error', notFoundHandler)
+ ;
+ }
+ };
};
return {
- name: filename,
- createReadStream: function(){
- return fs.createReadStream(ensurePathWritable(filename))
- .on('error', function(e){
- console.log('error createReadStream: '+filename);
- if (e.code == 'ENOENT') { e.code = 404; }
- this.emit('error', e);
- })
- ;
- },
- createWriteStream: function(){
- return fs.createWriteStream(ensurePathWritable(filename));
- },
- delete: function(cb){
- fs.unlink(ensurePathWritable(filename), cb);
- },
- copy: function(dst, cb){
- const notFoundHandler = function(e){
- if (e && e.code == 'ENOENT') { e.code = 404; return cb(e);}
- cb();
- };
- return fs.createReadStream(ensurePathWritable(filename))
- .on('end', cb)
- .on('error', notFoundHandler)
- .pipe(fs.createWriteStream(ensurePathWritable(dst)))
- .on('end', cb)
- .on('error', notFoundHandler)
- ;
+ file,
+
+ getFiles: function(q, cb) {
+ const target = GCSMockBasePath + q.prefix;
+ recursiveReaddir(target, function(e, files) {
+ const pageToken = q.pageToken || 0;
+
+ const chunkedFiles = chunk(files, q.maxResults);
+ if (q.pageToken >= chunkedFiles.length) return cb(null, []);
+
+ const gFiles = chunkedFiles[pageToken].map(function(f) {
+ return file(path.relative(GCSMockBasePath, f)); //convert to gcs
+ });
+
+ q.pageToken = pageToken + 1;
+ cb(null, gFiles, q.pageToken < chunkedFiles.length ? q : null);
+ });
}
};
- };
-
- return {
- file: file,
- getFiles: function(q, cb){
- const target = GCSMockBasePath + q.prefix;
- recursive_readdir(target, function(e, files){
-
- const pageToken = q.pageToken || 0;
-
- const chunkedFiles = chunk(files, q.maxResults);
- if (q.pageToken >= chunkedFiles.length) return cb(null, []);
-
- const gFiles = chunkedFiles[pageToken].map(function(f){
- return file(path.relative(GCSMockBasePath, f)); //convert to google
- });
-
- q.pageToken = pageToken + 1;
- cb(null, gFiles, q.pageToken < chunkedFiles.length ? q : null);
- });
- }
- };
- }};
+ }};
};
gcs._mockInject(mockGCS);
});
@@ -451,20 +434,13 @@ describe('Storage', function () {
});
});
- it('can remove file', function (done) {
- gcs.remove(gBackupConfig, 'uploadtest-copy/test.txt', function (error) {
- expect(error).to.be(null);
- expect(fs.existsSync(path.join(GCSMockBasePath, 'uploadtest-copy/test.txt'))).to.be(false);
- done();
- });
+ it('can remove file', async function () {
+ await gcs.remove(gBackupConfig, 'uploadtest-copy/test.txt');
+ expect(fs.existsSync(path.join(GCSMockBasePath, 'uploadtest-copy/test.txt'))).to.be(false);
});
- it('can remove non-existent dir', function (done) {
- gcs.remove(gBackupConfig, 'blah', function (error) {
- expect(error).to.be(null);
- done();
- });
+ it('can remove non-existent dir', async function () {
+ await gcs.remove(gBackupConfig, 'blah', () => {});
});
-
});
});