diff options
Diffstat (limited to 'spec/models/repository_spec.rb')
-rw-r--r-- | spec/models/repository_spec.rb | 55 |
1 files changed, 54 insertions, 1 deletions
diff --git a/spec/models/repository_spec.rb b/spec/models/repository_spec.rb index c698b40a4c0..964cc5a13ca 100644 --- a/spec/models/repository_spec.rb +++ b/spec/models/repository_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Repository do +RSpec.describe Repository do include RepoHelpers include GitHelpers @@ -252,6 +252,21 @@ describe Repository do end end end + + context 'with filename with pathspec characters' do + let(:filename) { ':wq' } + let(:newrev) { project.repository.commit('master').sha } + + before do + create_file_in_repo(project, 'master', 'master', filename, 'Test file') + end + + subject { repository.last_commit_for_path('master', filename, literal_pathspec: true).id } + + it 'returns a commit SHA' do + expect(subject).to eq(newrev) + end + end end describe '#last_commit_id_for_path' do @@ -276,6 +291,21 @@ describe Repository do end end end + + context 'with filename with pathspec characters' do + let(:filename) { ':wq' } + let(:newrev) { project.repository.commit('master').sha } + + before do + create_file_in_repo(project, 'master', 'master', filename, 'Test file') + end + + subject { repository.last_commit_id_for_path('master', filename, literal_pathspec: true) } + + it 'returns a commit SHA' do + expect(subject).to eq(newrev) + end + end end describe '#commits' do @@ -2865,6 +2895,29 @@ describe Repository do end end + describe '#project' do + it 'returns the project for a project snippet' do + snippet = create(:project_snippet) + + expect(snippet.repository.project).to be(snippet.project) + end + + it 'returns nil for a personal snippet' do + snippet = create(:personal_snippet) + + expect(snippet.repository.project).to be_nil + end + + it 'returns the container if it is a project' do + expect(repository.project).to be(project) + end + + it 'returns nil if the container is not a project' do + expect(repository).to receive(:container).and_return(Group.new) + expect(repository.project).to be_nil + end + end + describe '#submodule_links' do it 'returns an instance of Gitlab::SubmoduleLinks' do expect(repository.submodule_links).to be_a(Gitlab::SubmoduleLinks) |