diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-03-06 18:08:08 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-03-06 18:08:08 +0000 |
commit | 83731155d997ae24c7e0cd5ffa6f0dba41bec6dc (patch) | |
tree | 31f785012137fda4ac9a470f4f07c961b42d0299 /spec/models/snippet_repository_spec.rb | |
parent | 57a37ce99f297cddae12cb4d982b6d572f932bb4 (diff) | |
download | gitlab-ce-83731155d997ae24c7e0cd5ffa6f0dba41bec6dc.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/models/snippet_repository_spec.rb')
-rw-r--r-- | spec/models/snippet_repository_spec.rb | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/spec/models/snippet_repository_spec.rb b/spec/models/snippet_repository_spec.rb index 5b16b945efe..120175fdd05 100644 --- a/spec/models/snippet_repository_spec.rb +++ b/spec/models/snippet_repository_spec.rb @@ -26,6 +26,44 @@ describe SnippetRepository do end end + describe '#create_file' do + let(:snippet) { create(:personal_snippet, :empty_repo, author: user) } + + it 'creates the file' do + snippet_repository.create_file(user, 'foo', 'bar', commit_opts) + blob = first_blob(snippet) + + aggregate_failures do + expect(blob).not_to be_nil + expect(blob.path).to eq 'foo' + expect(blob.data).to eq 'bar' + end + end + + it 'fills the file path if empty' do + snippet_repository.create_file(user, nil, 'bar', commit_opts) + blob = first_blob(snippet) + + aggregate_failures do + expect(blob).not_to be_nil + expect(blob.path).to eq 'snippetfile1.txt' + expect(blob.data).to eq 'bar' + end + end + + context 'when the file exists' do + let(:snippet) { create(:personal_snippet, :repository, author: user) } + + it 'captures the git exception and raises a SnippetRepository::CommitError' do + existing_blob = first_blob(snippet) + + expect do + snippet_repository.create_file(user, existing_blob.path, existing_blob.data, commit_opts) + end.to raise_error described_class::CommitError + end + end + end + describe '#multi_files_action' do let(:new_file) { { file_path: 'new_file_test', content: 'bar' } } let(:move_file) { { previous_path: 'CHANGELOG', file_path: 'CHANGELOG_new', content: 'bar' } } |