Sha256: 6f265f4347a97d10b70bb8076a328ef641a44f3045660ec89e8a1165d9125eca

Contents?: true

Size: 1.73 KB

Versions: 154

Compression:

Stored size: 1.73 KB

Contents

# frozen_string_literal: true

require 'eac_git/local'
require 'eac_git/local/commit'
require 'tmpdir'

RSpec.describe ::EacGit::Local::Commit, git: true do
  let(:git) { stubbed_git_local_repo }

  let(:first_commit_sha1) do
    git.file('a.txt').write('AAA')
    git.file('b.txt').write('BBB')
    git.command('add', '.').execute!
    git.command('commit', '-m', 'First commit.').execute!
    git.rev_parse('HEAD')
  end

  let(:second_commit_sha1) do
    first_commit_sha1
    git.file('a.txt').write('AAAAA')
    git.file('b.txt').delete
    git.file('ç.txt').write('CCC')
    git.command('add', '.').execute!
    git.command('commit', '-m', 'Second commit.').execute!
    git.rev_parse('HEAD')
  end

  let(:first_commit) { described_class.new(git, first_commit_sha1) }
  let(:second_commit) { described_class.new(git, second_commit_sha1) }

  describe '#changed_files' do
    it { expect(first_commit.changed_files.count).to eq(2) }
    it { expect(second_commit.changed_files.count).to eq(3) }

    {
      'first_commit' => %w[a.txt b.txt],
      'second_commit' => %w[a.txt b.txt ç.txt]
    }.each do |commit_name, filenames|
      filenames.each do |filename|
        it "find file \"#{filename}\" in commit \"#{commit_name}\"" do
          commit = send(commit_name)
          file = commit.changed_files.find { |f| f.path == filename }
          expect(file).to be_a(::EacGit::Local::Commit::ChangedFile)
        end
      end
    end
  end

  describe '#changed_files_size' do
    it { expect(first_commit.changed_files_size).to eq(6) }
    it { expect(second_commit.changed_files_size).to eq(8) }
  end

  describe '#root_child?' do
    it { expect(first_commit.root_child?).to eq(true) }
    it { expect(second_commit.root_child?).to eq(false) }
  end
end

Version data entries

154 entries across 154 versions & 2 rubygems

Version Path
eac_tools-0.84.1 sub/eac_git/spec/lib/eac_git/local/commit_spec.rb
eac_tools-0.84.0 sub/eac_git/spec/lib/eac_git/local/commit_spec.rb
eac_tools-0.83.0 sub/eac_git/spec/lib/eac_git/local/commit_spec.rb
eac_tools-0.82.0 sub/eac_git/spec/lib/eac_git/local/commit_spec.rb
eac_tools-0.81.0 sub/eac_git/spec/lib/eac_git/local/commit_spec.rb
eac_tools-0.80.0 sub/eac_git/spec/lib/eac_git/local/commit_spec.rb
eac_tools-0.79.0 sub/eac_git/spec/lib/eac_git/local/commit_spec.rb
eac_tools-0.78.0 sub/eac_git/spec/lib/eac_git/local/commit_spec.rb
eac_tools-0.77.1 sub/eac_git/spec/lib/eac_git/local/commit_spec.rb
eac_tools-0.77.0 sub/eac_git/spec/lib/eac_git/local/commit_spec.rb
eac_tools-0.76.1 sub/eac_git/spec/lib/eac_git/local/commit_spec.rb
eac_tools-0.76.0 sub/eac_git/spec/lib/eac_git/local/commit_spec.rb
eac_tools-0.75.2 sub/eac_git/spec/lib/eac_git/local/commit_spec.rb
eac_tools-0.75.1 sub/eac_git/spec/lib/eac_git/local/commit_spec.rb
eac_tools-0.75.0 sub/eac_git/spec/lib/eac_git/local/commit_spec.rb
eac_tools-0.74.1 sub/eac_git/spec/lib/eac_git/local/commit_spec.rb
eac_tools-0.74.0 sub/eac_git/spec/lib/eac_git/local/commit_spec.rb
eac_tools-0.73.0 sub/eac_git/spec/lib/eac_git/local/commit_spec.rb
eac_tools-0.72.0 sub/eac_git/spec/lib/eac_git/local/commit_spec.rb
eac_tools-0.70.1 sub/eac_git/spec/lib/eac_git/local/commit_spec.rb