Skip to content

Commit 7be8755

Browse files
author
mahsa shadi
committed
export assembleQueryData method and add tests
1 parent b2bd640 commit 7be8755

File tree

2 files changed

+52
-20
lines changed

2 files changed

+52
-20
lines changed

__tests__/utils/vfs.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,4 +243,36 @@ describe('VFS Utils', () => {
243243
test('parseFields - POST w/Form', () => {
244244
// TODO
245245
});
246+
247+
test('assembleQueryData', () => {
248+
const result = utils.assembleQueryData({
249+
'a': 'b',
250+
'b.a': 'foo',
251+
'b.b.a': 'foo',
252+
'b.b.b': 'foo',
253+
'b.b.c': 'foo',
254+
'b.b.d': 'foo',
255+
'b.b.e': 'foo',
256+
'c': 'null',
257+
'd': 'true',
258+
'e': '1'
259+
});
260+
261+
expect(result).toEqual({
262+
a: 'b',
263+
b: {
264+
a: 'foo',
265+
b: {
266+
a: 'foo',
267+
b: 'foo',
268+
c: 'foo',
269+
d: 'foo',
270+
e: 'foo'
271+
}
272+
},
273+
c: 'null',
274+
d: 'true',
275+
e: '1'
276+
});
277+
});
246278
});

src/utils/vfs.js

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -171,42 +171,41 @@ const mountpointResolver = core => async (path) => {
171171
return Object.freeze({mount, adapter});
172172
};
173173

174-
/*
175-
* Parses URL Body
176-
*/
177-
const parseGet = req => {
178-
const {query} = url.parse(req.url, true);
179-
const assembledQuery = assembleQueryData(query);
180-
181-
return Promise.resolve({fields: assembledQuery, files: {}});
182-
};
183-
184174
/*
185175
* Assembles a given object query
186176
*/
187177
const assembleQueryData = (object) => {
188-
const assembled = {}
189-
const keys = Object.keys(object)
178+
const assembled = {};
179+
const keys = Object.keys(object);
190180

191181
for (let i = 0; i < keys.length; i++) {
192-
const key = keys[i]
193-
const dots = key.split('.')
182+
const key = keys[i];
183+
const dots = key.split('.');
194184

195-
let last = assembled
185+
let last = assembled;
196186
for (let j = 0; j < dots.length; j++) {
197-
const dot = dots[j]
187+
const dot = dots[j];
198188
if (j >= dots.length - 1) {
199-
last[dot] = object[key]
189+
last[dot] = object[key];
200190
} else {
201-
last[dot] = last[dot] || {}
191+
last[dot] = last[dot] || {};
202192
}
203193

204-
last = last[dot]
194+
last = last[dot];
205195
}
206196
}
207197
return assembled;
208198
}
209199

200+
/*
201+
* Parses URL Body
202+
*/
203+
const parseGet = req => {
204+
const {query} = url.parse(req.url, true);
205+
const assembledQuery = assembleQueryData(query);
206+
return Promise.resolve({fields: assembledQuery, files: {}});
207+
};
208+
210209
/*
211210
* Parses Json Body
212211
*/
@@ -281,5 +280,6 @@ module.exports = {
281280
getPrefix,
282281
parseFields,
283282
errorCodes,
284-
methodArguments
283+
methodArguments,
284+
assembleQueryData
285285
};

0 commit comments

Comments
 (0)