66 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
# frozen_string_literal: true
 | 
						|
 | 
						|
require 'fast_spec_helper'
 | 
						|
 | 
						|
RSpec.describe Gitlab::Git::ChangedPath do
 | 
						|
  subject(:changed_path) do
 | 
						|
    described_class.new(
 | 
						|
      path: path,
 | 
						|
      status: status,
 | 
						|
      old_mode: old_mode,
 | 
						|
      new_mode: new_mode,
 | 
						|
      old_blob_id: old_blob_id,
 | 
						|
      new_blob_id: new_blob_id
 | 
						|
    )
 | 
						|
  end
 | 
						|
 | 
						|
  let(:path) { 'test_path' }
 | 
						|
  let(:status) { :MODIFIED }
 | 
						|
  let(:old_mode) { '100644' }
 | 
						|
  let(:new_mode) { '100644' }
 | 
						|
  let(:old_blob_id) { '0000000000000000000000000000000000000000' }
 | 
						|
  let(:new_blob_id) { '645f6c4c82fd3f5e06f67134450a570b795e55a6' }
 | 
						|
 | 
						|
  describe '#new_file?' do
 | 
						|
    subject(:new_file?) { changed_path.new_file? }
 | 
						|
 | 
						|
    context 'when it is a new file' do
 | 
						|
      let(:status) { :ADDED }
 | 
						|
 | 
						|
      it 'returns true' do
 | 
						|
        expect(new_file?).to eq(true)
 | 
						|
      end
 | 
						|
    end
 | 
						|
 | 
						|
    context 'when it is not a new file' do
 | 
						|
      it 'returns false' do
 | 
						|
        expect(new_file?).to eq(false)
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  describe '#submodule_change?' do
 | 
						|
    subject(:submodule_change?) { changed_path.submodule_change? }
 | 
						|
 | 
						|
    context 'with a regular file change' do
 | 
						|
      it { is_expected.to eq false }
 | 
						|
    end
 | 
						|
 | 
						|
    context 'with a submodule addition' do
 | 
						|
      let(:status) { :ADDED }
 | 
						|
      let(:old_mode) { '0' }
 | 
						|
      let(:new_mode) { '160000' }
 | 
						|
 | 
						|
      it { is_expected.to eq true }
 | 
						|
    end
 | 
						|
 | 
						|
    context 'with a submodule deletion' do
 | 
						|
      let(:status) { :MODIFIED }
 | 
						|
      let(:old_mode) { '160000' }
 | 
						|
      let(:new_mode) { '0' }
 | 
						|
 | 
						|
      it { is_expected.to eq true }
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |