summaryrefslogtreecommitdiff
path: root/spec/requests/api/snippets_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/requests/api/snippets_spec.rb')
-rw-r--r--spec/requests/api/snippets_spec.rb32
1 files changed, 31 insertions, 1 deletions
diff --git a/spec/requests/api/snippets_spec.rb b/spec/requests/api/snippets_spec.rb
index 21565265b99..cb2a0adc092 100644
--- a/spec/requests/api/snippets_spec.rb
+++ b/spec/requests/api/snippets_spec.rb
@@ -199,9 +199,13 @@ describe API::Snippets do
end
shared_examples 'snippet creation' do
+ let(:snippet) { Snippet.find(json_response["id"]) }
+
+ subject { post api("/snippets/", user), params: params }
+
it 'creates a new snippet' do
expect do
- post api("/snippets/", user), params: params
+ subject
end.to change { PersonalSnippet.count }.by(1)
expect(response).to have_gitlab_http_status(201)
@@ -210,6 +214,32 @@ describe API::Snippets do
expect(json_response['file_name']).to eq(params[:file_name])
expect(json_response['visibility']).to eq(params[:visibility])
end
+
+ it 'creates repository' do
+ subject
+
+ expect(snippet.repository.exists?).to be_truthy
+ end
+
+ it 'commit the files to the repository' do
+ subject
+
+ blob = snippet.repository.blob_at('master', params[:file_name])
+
+ expect(blob.data).to eq params[:content]
+ end
+
+ context 'when feature flag :version_snippets is disabled' do
+ it 'does not create snippet repository' do
+ stub_feature_flags(version_snippets: false)
+
+ expect do
+ subject
+ end.to change { PersonalSnippet.count }.by(1)
+
+ expect(snippet.repository_exists?).to be_falsey
+ end
+ end
end
context 'with restricted visibility settings' do