Skip to content

Commit 5dbb30b

Browse files
fix handeling injection on non strings
1 parent b486fb0 commit 5dbb30b

File tree

3 files changed

+26
-2
lines changed

3 files changed

+26
-2
lines changed

lib/transformers/DockerCompose.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,12 @@ var injectVarsToObject = function(object, vars) {
259259
else {
260260
var field = object[property];
261261
var replaceWith = _.find(vars, function(v){ // jshint ignore:line
262-
return field.includes(v.key);
262+
if (typeof field === 'string' || field instanceof String){
263+
return field.includes(v.key);
264+
}
265+
else {
266+
return false;
267+
}
263268
});
264269
if (replaceWith){
265270
object[property] = object[property].replace(replaceWith.key, replaceWith.value);

test/config/field_not_string.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
version: '2'
2+
services:
3+
image: codefresh/cf-runtime:develop
4+
privileged: true
5+
6+

test/tests.unit.spec.js

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,18 @@ var tests_docker_compose = [
252252
}
253253
}
254254
}
255+
},
256+
{
257+
name: 'field_not_string',
258+
file: 'config/field_not_string.yml',
259+
compositionVars: [{key: 'key', value: 'value'}],
260+
expected: {
261+
"version": "2",
262+
"services": {
263+
"image": "codefresh/cf-runtime:develop",
264+
"privileged": true
265+
}
266+
}
255267
}
256268
];
257269
describe("Transform composition", function () {
@@ -264,7 +276,8 @@ describe("Transform composition", function () {
264276

265277
var transformer = new Transformer({
266278
file: path.join(__dirname, test.file),
267-
handlers: test.handlers
279+
handlers: test.handlers,
280+
compositionVars: test.compositionVars || []
268281
});
269282

270283
transformer.fileToCompose()

0 commit comments

Comments
 (0)