Sha256: 81b4b7859b18633a9c7fd202c3f84b3813f437867d2463f276b60e04b4be2b1e

Contents?: true

Size: 1.29 KB

Versions: 9

Compression:

Stored size: 1.29 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
        module Test
          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
end

Version data entries

9 entries across 9 versions & 2 rubygems

Version Path
avm-tools-0.106.0 vendor/avm/lib/avm/git/issue/complete/test.rb
avm-0.3.2 lib/avm/git/issue/complete/test.rb
avm-0.3.1 lib/avm/git/issue/complete/test.rb
avm-tools-0.105.0 vendor/avm/lib/avm/git/issue/complete/test.rb
avm-0.3.0 lib/avm/git/issue/complete/test.rb
avm-tools-0.104.0 vendor/avm/lib/avm/git/issue/complete/test.rb
avm-tools-0.103.1 lib/avm/git/issue/complete/test.rb
avm-tools-0.103.0 lib/avm/git/issue/complete/test.rb
avm-tools-0.102.2 lib/avm/git/issue/complete/test.rb