lib/rspec/terraform/helpers/destroy.rb in rspec-terraform-0.1.0.pre.26 vs lib/rspec/terraform/helpers/destroy.rb in rspec-terraform-0.1.0.pre.27

- old
+ new

@@ -21,11 +21,10 @@ end def execute(&block) parameters = with_configuration_provider_parameters(overrides) parameters = with_resolved_vars(parameters, &block) - parameters = with_mandatory_parameters(parameters) ensure_required_parameters(parameters) clean(parameters) init(parameters) @@ -44,17 +43,10 @@ var_captor = Configuration::VarCaptor.new(parameters[:vars] || {}) block.call(var_captor) parameters.merge(vars: var_captor.to_h) end - def with_mandatory_parameters(parameters) - parameters.merge( - input: false, - auto_approve: true - ) - end - def required_parameters(execution_mode) { in_place: [:configuration_directory], isolated: %i[source_directory configuration_directory] }[execution_mode] || [] @@ -88,39 +80,55 @@ FileUtils.rm_rf(parameters[:configuration_directory]) FileUtils.mkdir_p(parameters[:configuration_directory]) end def init(parameters) - execution_parameters = { - chdir: parameters[:configuration_directory], - input: parameters[:input] - } - if execution_mode == :isolated - execution_parameters = - execution_parameters - .merge(from_module: parameters[:source_directory]) - end - - init_command.execute(execution_parameters) + init_command.execute(init_parameters(parameters)) end def destroy(parameters) - destroy_command.execute( - chdir: parameters[:configuration_directory], - state: parameters[:state_file], - vars: parameters[:vars], - input: parameters[:input], - auto_approve: parameters[:auto_approve] - ) + destroy_command.execute(destroy_parameters(parameters)) end def init_command RubyTerraform::Commands::Init.new(binary: binary) end def destroy_command RubyTerraform::Commands::Destroy.new(binary: binary) end + + def init_parameters(parameters) + init_parameters = + parameters.merge( + chdir: parameters[:configuration_directory], + input: false + ) + if execution_mode == :isolated + init_parameters = + init_parameters.merge(from_module: parameters[:source_directory]) + end + + init_parameters + end + + # rubocop:disable Metrics/MethodLength + def destroy_parameters(parameters) + destroy_parameters = + parameters.merge( + chdir: parameters[:configuration_directory], + input: false, + auto_approve: true + ) + + if parameters[:state_file] + destroy_parameters = + destroy_parameters.merge(state: parameters[:state_file]) + end + + destroy_parameters + end + # rubocop:enable Metrics/MethodLength end end end end