Sha256: 439fc9b98949a3d2400c292b24a45c02cfe156782ddf4e68e0216fc972b3a513

Contents?: true

Size: 1.21 KB

Versions: 8

Compression:

Stored size: 1.21 KB

Contents

# frozen_string_literal: true

require 'avm/apps/sources/configuration'
require 'avm/result'
require 'eac_ruby_utils/fs/temp'

module Avm
  module Git
    module Issue
      class Complete
        def test_result
          test_command = configuration.if_present(&:any_test_command)
          return ::Avm::Result.success('unconfigured') if test_command.blank?

          infom "Running test command \"#{test_command}\"..."
          result = test_command.execute
          test_result_log(result)
          if result.fetch(:exit_code).zero?
            ::Avm::Result.success('yes')
          else
            ::Avm::Result.error('no')
          end
        end

        private

        def test_result_log(result)
          stdout_file = ::EacRubyUtils::Fs::Temp.file
          stderr_file = ::EacRubyUtils::Fs::Temp.file
          stdout_file.write(result.fetch(:stdout))
          stderr_file.write(result.fetch(:stderr))
          infov '  * Exit code', result.fetch(:exit_code)
          infov '  * STDOUT', stdout_file.to_path
          infov '  * STDERR', stderr_file.to_path
        end

        def configuration_uncached
          ::Avm::Apps::Sources::Configuration.find_by_path(@git)
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
avm-tools-0.102.1 lib/avm/git/issue/complete/_test.rb
avm-tools-0.102.0 lib/avm/git/issue/complete/_test.rb
avm-tools-0.101.0 lib/avm/git/issue/complete/_test.rb
avm-tools-0.100.0 lib/avm/git/issue/complete/_test.rb
avm-tools-0.99.1 lib/avm/git/issue/complete/_test.rb
avm-tools-0.99.0 lib/avm/git/issue/complete/_test.rb
avm-tools-0.98.0 lib/avm/git/issue/complete/_test.rb
avm-tools-0.97.0 lib/avm/git/issue/complete/_test.rb