Sha256: 5aa8a4cf257707b3b6bef4ba22ab46f5ab413e8f9878c6870b8832cb04d095a6

Contents?: true

Size: 1.27 KB

Versions: 17

Compression:

Stored size: 1.27 KB

Contents

# frozen_string_literal: true

require 'avm/tools/runner'

RSpec.describe ::Avm::Tools::Runner::Ruby::Gems::Generate do
  let(:targets_root) { ::Pathname.new('generate_spec_files').expand_path(__dir__) }

  %w[mygem dashed-mygem].each do |gem_name|
    context "when runner is executed for #{gem_name}" do
      let(:target_dir) { targets_root.join(gem_name) }
      let(:temp_dir) { ::EacRubyUtils::Fs::Temp.directory }
      let(:gem_path) { temp_dir.join(gem_name) }
      let(:argv) do
        %w[ruby gems generate --eac-ruby-utils-version=0.35.0
           --eac-ruby-gem-support-version=0.2.0] + [gem_path.to_path]
      end

      before do
        ::Avm::Tools::Runner.run(argv: argv)
      end

      after do
        temp_dir.remove
      end

      it do
        expect(directory_to_h(gem_path)).to eq(directory_to_h(target_dir))
      end
    end
  end

  def directory_to_h(dir)
    dir.children.map do |child|
      [child.basename.to_path, fs_object_to_h(child)]
    end.to_h
  end

  def fs_object_to_h(obj)
    if obj.file?
      file_to_h(obj)
    elsif obj.directory?
      directory_to_h(obj)
    else
      raise "Unknown filesystem object \"#{obj}\""
    end
  end

  def file_to_h(file)
    return "TRUNCATED\n" if file.basename.to_path == 'Gemfile.lock'

    file.read
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
eac_tools-0.16.1 sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec.rb
eac_tools-0.16.0 sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec.rb
eac_tools-0.15.0 sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec.rb
eac_tools-0.14.0 sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec.rb
eac_tools-0.13.0 sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec.rb
eac_tools-0.12.0 sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec.rb
eac_tools-0.11.1 sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec.rb
eac_tools-0.11.0 sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec.rb
eac_tools-0.10.0 sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec.rb
eac_tools-0.9.0 sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec.rb
eac_tools-0.8.0 sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec.rb
eac_tools-0.7.0 sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec.rb
eac_tools-0.6.0 sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec.rb
eac_tools-0.5.0 sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec.rb
eac_tools-0.4.0 sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec.rb
eac_tools-0.3.0 sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec.rb
eac_tools-0.2.2 sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec.rb