Sha256: d1ee2545a350ef1a0c968c89712336645e3dfa12af7b19f44684958b5aff1903

Contents?: true

Size: 1.28 KB

Versions: 10

Compression:

Stored size: 1.28 KB

Contents

# frozen_string_literal: true

require 'eac_ruby_utils/core_ext'
require 'eac_ruby_utils/fs/logs'
require 'eac_ruby_utils/listable'
require 'eac_ruby_utils/on_clean_ruby_environment'

module EacRubyGemsUtils
  module Tests
    class Base
      include ::EacRubyUtils::Listable

      enable_simple_cache
      lists.add_string :result, :failed, :nonexistent, :successful

      common_constructor :gem

      def elegible?
        dependency_present? && gem.root.join(test_directory).exist?
      end

      def dependency_present?
        gem.gemfile_path.exist? && gem.gemfile_lock_gem_version(dependency_gem).present?
      end

      def name
        self.class.name.demodulize.gsub(/Test\z/, '')
      end

      def to_s
        "#{gem}[#{name}]"
      end

      private

      def logs_uncached
        ::EacRubyUtils::Fs::Logs.new.add(:stdout).add(:stderr)
      end

      def result_uncached
        return RESULT_NONEXISTENT unless elegible?

        exec_run_with_log ? RESULT_SUCCESSFUL : RESULT_FAILED
      end

      def exec_run
        gem.bundle('exec', *bundle_exec_args).chdir_root.execute
      end

      def exec_run_with_log
        r = exec_run
        logs[:stdout].write(r[:stdout])
        logs[:stderr].write(r[:stderr])
        r[:exit_code].zero?
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 3 rubygems

Version Path
avm-tools-0.110.0 vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests/base.rb
eac_ruby_gems_utils-0.9.7 lib/eac_ruby_gems_utils/tests/base.rb
avm-tools-0.109.1 vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests/base.rb
avm-tools-0.109.0 vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests/base.rb
ehbrs-tools-0.28.2 vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests/base.rb
avm-tools-0.108.0 vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests/base.rb
ehbrs-tools-0.28.1 vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests/base.rb
avm-tools-0.107.0 vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests/base.rb
eac_ruby_gems_utils-0.9.6 lib/eac_ruby_gems_utils/tests/base.rb
ehbrs-tools-0.28.0 vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests/base.rb