diff --git a/lib/migr8.rb b/lib/migr8.rb index d0e0642..98201d4 100755 --- a/lib/migr8.rb +++ b/lib/migr8.rb @@ -2167,7 +2167,7 @@ def expand_vars(vars) d.each do |k, v| dict[k] = expand_value(v, dict) end - end + end if vars return dict end diff --git a/test/Util_test.rb b/test/Util_test.rb index 3f376df..6031def 100644 --- a/test/Util_test.rb +++ b/test/Util_test.rb @@ -7,6 +7,49 @@ Oktest.scope do + topic Migr8::Util::Expander do + + + topic '.expand_vars()' do + + spec "returns Hash object, even when arg is nil." do + ok {Migr8::Util::Expander.expand_vars([{}])} == {} + ok {Migr8::Util::Expander.expand_vars([{'x'=>123}])} == {'x'=>123} + ok {Migr8::Util::Expander.expand_vars([])} == {} + ok {Migr8::Util::Expander.expand_vars(nil)} == {} + end + + spec "expands variables in Hash object." do + vars = [ + {'table' => 'users'}, + {'column' => 'name'}, + {'index' => '${table}_${column}_idx'}, + ] + expanded = { + 'table' => 'users', + 'column' => 'name', + 'index' => 'users_name_idx', + } + ok {Migr8::Util::Expander.expand_vars(vars)} == expanded + end + + spec "raises error when unknown variable name exists." do + vars = [ + {'table' => 'users'}, + #{'column' => 'name'}, + {'index' => '${table}_${column}_idx'}, + ] + expected = Migr8::Util::Expander::UnknownVariableError + pr = proc { Migr8::Util::Expander.expand_vars(vars) } + ok {pr}.raise?(expected, '${column}: no such variable.') + end + + end + + + end + + topic Migr8::Util::CommandOptionDefinition do klass = Migr8::Util::CommandOptionDefinition