Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/models/repository_spec.rb')
-rw-r--r--spec/models/repository_spec.rb55
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)