Sha256: de57218fd5251d5ae1aa76455723f6f5ec0514573472d7d9c92bbdd6070d14b0

Contents?: true

Size: 1.61 KB

Versions: 9

Compression:

Stored size: 1.61 KB

Contents

# frozen_string_literal: true

require 'avm/git/commit'

RSpec.describe Avm::Git::Commit, :git 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 '#files' do
    it { expect(first_commit.files.count).to eq(2) }
    it { expect(second_commit.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.files.find { |f| f.path == filename }
          expect(file).to be_a(Avm::Git::Commit::File)
        end
      end
    end
  end

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

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

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
eac_tools-0.94.0 sub/avm-git/spec/lib/avm/git/commit_spec.rb
eac_tools-0.86.5 sub/avm-git/spec/lib/avm/git/commit_spec.rb
eac_tools-0.86.4 sub/avm-git/spec/lib/avm/git/commit_spec.rb
eac_tools-0.86.3 sub/avm-git/spec/lib/avm/git/commit_spec.rb
eac_tools-0.86.2 sub/avm-git/spec/lib/avm/git/commit_spec.rb
eac_tools-0.84.0 sub/avm-git/spec/lib/avm/git/commit_spec.rb
eac_tools-0.83.0 sub/avm-git/spec/lib/avm/git/commit_spec.rb
eac_tools-0.82.0 sub/avm-git/spec/lib/avm/git/commit_spec.rb
eac_tools-0.81.0 sub/avm-git/spec/lib/avm/git/commit_spec.rb