gitlab-ce/spec/lib/gitlab/git/changed_path_spec.rb

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