Skip to content

Commit 09e6621

Browse files
committed
chore: split tests for aws provider
1 parent 99c7a1c commit 09e6621

File tree

14 files changed

+813
-43
lines changed

14 files changed

+813
-43
lines changed

.mdeprc.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
var glob = require("glob")
2+
13
module.exports = {
24
node: "14.15",
35
auto_compose: true,
@@ -8,6 +10,17 @@ module.exports = {
810
post_exec: 'yarn coverage:report'
911
};
1012

13+
// const genericTests = glob.sync('suites/**/*.js')
14+
15+
console.log('process.env.PROVIDER', process.env.PROVIDER)
16+
17+
if (process.env.PROVIDER === 'aws') {
18+
console.log('provider is aws')
19+
// const awsTests = glob('./test/suites/**/*.js')
20+
// console.log('awsTests', awsTests)
21+
module.exports.tests = './test/suites/providers/aws/*.js';
22+
}
23+
1124
switch (process.env.DB) {
1225
case 'sentinel':
1326
module.exports.services.push('redisSentinel');

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
"test:e2e": "yarn test:e2e:cluster && yarn test:e2e:sentinel",
1111
"test:e2e:cluster": "DB=cluster mdep test run",
1212
"test:e2e:sentinel": "DB=sentinel mdep test run --docker_compose ./test/docker-compose.sentinel.yml",
13+
"test:e2e:aws-provider": "PROVIDER=aws DB=sentinel mdep test run --docker_compose ./test/docker-compose.aws-provider.yml",
1314
"start": "mfleet",
1415
"lint": "eslint ./src ./test",
1516
"prepublishOnly": "yarn compile",
@@ -49,6 +50,7 @@
4950
"dlock": "^12.1.1",
5051
"flatstr": "^1.0.12",
5152
"gcs-resumable-upload": "^3.1.2",
53+
"glob": "^7.1.7",
5254
"ioredis": "4.19.4",
5355
"is": "^3.3.0",
5456
"jaeger-client": "^3.18.1",

src/actions/upload.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ const {
3838
* @return {Promise}
3939
*/
4040
async function initFileUpload({ params }) {
41+
console.log('init file upload');
4142
const {
4243
files,
4344
meta,

src/configs/core.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ exports.transport = [{
9393
* @returns {Provider}
9494
*/
9595
exports.selectTransport = function selectTransport() {
96+
console.log('my provider 1', this.providers[0]);
9697
return this.providers[0];
9798
};
9899

src/providers/aws.js

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ class AWSTransport extends AbstractFileTransfer {
126126

127127
// @todo interface
128128
getDownloadUrlSigned(filename, downloadName) {
129+
console.log('get download url signed');
129130
this.log.warn(`${downloadName} is not implemented yet`);
130131

131132
const params = {
@@ -134,6 +135,8 @@ class AWSTransport extends AbstractFileTransfer {
134135
Key: filename,
135136
};
136137

138+
console.log('params with Key', params);
139+
137140
return new Promise((resolve, reject) => {
138141
this._aws.getSignedUrl('putObject', params, (err, url) => {
139142
if (err) {
@@ -161,6 +164,7 @@ class AWSTransport extends AbstractFileTransfer {
161164
* @return {Promise}
162165
*/
163166
async initResumableUpload(opts) {
167+
console.log('init resumable upload');
164168
const params = {
165169
Bucket: this._config.bucket.name,
166170
Expires: DOWNLOAD_URL_EXPIRES_IN_SEC,
@@ -235,14 +239,16 @@ class AWSTransport extends AbstractFileTransfer {
235239
* return a 403 Forbidden because the request signature you calculate will not match the signature Google calculates.
236240
* @returns {Promise}
237241
*/
238-
createSignedURL(opts) {
242+
createSignedURL() {
243+
// console.log('createSignedURL opts 2', opts.resource.split('/')[opts.resource.length - 1]);
244+
console.log('createSignedURL opts 2');
239245
const params = {
240246
Bucket: this._config.bucket.name,
241247
Expires: DOWNLOAD_URL_EXPIRES_IN_SEC,
242-
Key: opts.filename,
248+
Key: 'test',
243249
};
244250

245-
params.ContentType = opts.contentType;
251+
// params.ContentType = opts.contentType;
246252

247253
return new Promise((resolve, reject) => {
248254
console.log('signed url params', params);

src/utils/fetch-data.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ async function selectMaster(redis) {
102102
* @param {String[]} [fieldsFilter.pick]
103103
*/
104104
module.exports = function fetchData(key, fieldFilter = {}) {
105+
console.log('fetch data for key', key);
105106
const { redis } = this;
106107
const timer = perf(`fetchData:${key}`);
107108

src/utils/process.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ module.exports = function processFile(key, data) {
3131
return Promise
3232
.using(acquireLock(this, `postprocess:${key}`), (lock) => {
3333
const { uploadId } = data;
34+
console.log('port srocess uploadId', uploadId);
3435
const { redis } = this;
3536

3637
return Promise

test/configs/generic/core.js

Lines changed: 30 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -19,29 +19,7 @@ exports.amqp = {
1919
},
2020
};
2121

22-
exports.transport = [
23-
// {
24-
// name: 'gce',
25-
// options: {
26-
// gce: {
27-
// projectId: env.GCLOUD_PROJECT_ID,
28-
// credentials: {
29-
// client_email: env.GCLOUD_PROJECT_EMAIL,
30-
// private_key: env.GCLOUD_PROJECT_PK,
31-
// },
32-
// },
33-
// bucket: {
34-
// name: env.TEST_BUCKET,
35-
// metadata: {
36-
// location: env.GCLOUD_BUCKET_LOCATION || 'EUROPE-WEST1',
37-
// dra: true,
38-
// },
39-
// },
40-
// // test for direct public URLs
41-
// },
42-
// // its not a public name!
43-
// cname: 'gce',
44-
// },
22+
const awsTransport = [
4523
{
4624
name: 'aws',
4725
options: {
@@ -58,7 +36,35 @@ exports.transport = [
5836
},
5937
// its not a public name!
6038
cname: 'aws',
61-
}];
39+
},
40+
];
41+
42+
const gceTransport = [
43+
{
44+
name: 'gce',
45+
options: {
46+
gce: {
47+
projectId: env.GCLOUD_PROJECT_ID,
48+
credentials: {
49+
client_email: env.GCLOUD_PROJECT_EMAIL,
50+
private_key: env.GCLOUD_PROJECT_PK,
51+
},
52+
},
53+
bucket: {
54+
name: env.TEST_BUCKET,
55+
metadata: {
56+
location: env.GCLOUD_BUCKET_LOCATION || 'EUROPE-WEST1',
57+
dra: true,
58+
},
59+
},
60+
// test for direct public URLs
61+
},
62+
// its not a public name!
63+
cname: 'gce',
64+
},
65+
];
66+
67+
exports.transport = env.PROVIDER === 'aws' ? awsTransport : gceTransport;
6268

6369
exports.hooks = {
6470
// return input, assume there are models
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
version: '3'
2+
3+
services:
4+
tester:
5+
volumes:
6+
- ${PWD}:/src
7+
- ${PWD}/test/configs/generic:/configs/core:ro
8+
# - ${PWD}/test/configs/generic:/configs/aws:ro
9+
- ${PWD}/test/configs/redis-sentinel:/configs/redis:ro
10+
environment:
11+
NODE_ENV: "test"
12+
DEBUG: "${DEBUG}"
13+
TEST_BUCKET: "makeomatic-131232"
14+
DOTENV_FILE_PATH: "/src/test/.env"
15+
NCONF_FILE_PATH: '["/configs/core","/configs/redis"]'
16+
PROVIDER: 'aws'

test/helpers/config.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
const set = require('lodash/set');
22
const { transport } = require('../configs/generic/core');
3+
const { transport: awsTransport } = require('../configs/generic/aws');
34

45
exports.enablePubsub = function enablePubsub() {
6+
console.log('overrideAwsTransport', awsTransport);
57
this.configOverride = {
6-
transport: [...transport],
8+
transport: [...awsTransport],
79
};
810

911
set(transport[0], 'options.bucket.channel', {

0 commit comments

Comments
 (0)