Skip to content
Snippets Groups Projects
Commit 6dc4d1b5 authored by Robert Schilling's avatar Robert Schilling
Browse files

Extend to PUT request

parent ceaee58c
No related branches found
No related tags found
1 merge request!10495Merge Requests - Assignee
Loading
Loading
@@ -59,7 +59,7 @@ module API
params :simple_file_params do
requires :file_path, type: String, desc: 'The url encoded path to the file. Ex. lib%2Fclass%2Erb'
requires :branch, type: String, desc: 'Name of the branch to commit into. To create a new branch, also provide `start_branch`.'
requires :commit_message, type: String, regexp: /^\S+$/, desc: 'Commit message'
requires :commit_message, type: String, allow_blank: false, desc: 'Commit message'
optional :start_branch, type: String, desc: 'Name of the branch to start the new commit from'
optional :author_email, type: String, desc: 'The email of the author'
optional :author_name, type: String, desc: 'The name of the author'
Loading
Loading
Loading
Loading
@@ -313,7 +313,7 @@ describe API::Files do
 
describe "POST /projects/:id/repository/files/:file_path" do
let!(:file_path) { "new_subfolder%2Fnewfile%2Erb" }
let(:valid_params) do
let(:params) do
{
branch: "master",
content: "puts 8",
Loading
Loading
@@ -322,7 +322,7 @@ describe API::Files do
end
 
it "creates a new file in project repo" do
post api(route(file_path), user), valid_params
post api(route(file_path), user), params
 
expect(response).to have_gitlab_http_status(201)
expect(json_response["file_path"]).to eq(CGI.unescape(file_path))
Loading
Loading
@@ -338,13 +338,9 @@ describe API::Files do
end
 
it 'returns a 400 bad request if the commit message is empty' do
invalid_params = {
branch: 'master',
content: 'puts 8',
commit_message: ''
}
params[:commit_message] = ''
 
post api(route(file_path), user), invalid_params
post api(route(file_path), user), params
 
expect(response).to have_gitlab_http_status(400)
end
Loading
Loading
@@ -353,16 +349,16 @@ describe API::Files do
allow_any_instance_of(Repository).to receive(:create_file)
.and_raise(Gitlab::Git::CommitError, 'Cannot create file')
 
post api(route("any%2Etxt"), user), valid_params
post api(route("any%2Etxt"), user), params
 
expect(response).to have_gitlab_http_status(400)
end
 
context "when specifying an author" do
it "creates a new file with the specified author" do
valid_params.merge!(author_email: author_email, author_name: author_name)
params.merge!(author_email: author_email, author_name: author_name)
 
post api(route("new_file_with_author%2Etxt"), user), valid_params
post api(route("new_file_with_author%2Etxt"), user), params
 
expect(response).to have_gitlab_http_status(201)
expect(response.content_type).to eq('application/json')
Loading
Loading
@@ -376,7 +372,7 @@ describe API::Files do
let!(:project) { create(:project_empty_repo, namespace: user.namespace ) }
 
it "creates a new file in project repo" do
post api(route("newfile%2Erb"), user), valid_params
post api(route("newfile%2Erb"), user), params
 
expect(response).to have_gitlab_http_status(201)
expect(json_response['file_path']).to eq('newfile.rb')
Loading
Loading
@@ -388,7 +384,7 @@ describe API::Files do
end
 
describe "PUT /projects/:id/repository/files" do
let(:valid_params) do
let(:params) do
{
branch: 'master',
content: 'puts 8',
Loading
Loading
@@ -397,7 +393,7 @@ describe API::Files do
end
 
it "updates existing file in project repo" do
put api(route(file_path), user), valid_params
put api(route(file_path), user), params
 
expect(response).to have_gitlab_http_status(200)
expect(json_response['file_path']).to eq(CGI.unescape(file_path))
Loading
Loading
@@ -406,8 +402,16 @@ describe API::Files do
expect(last_commit.author_name).to eq(user.name)
end
 
it 'returns a 400 bad request if the commit message is empty' do
params[:commit_message] = ''
put api(route(file_path), user), params
expect(response).to have_gitlab_http_status(400)
end
it "returns a 400 bad request if update existing file with stale last commit id" do
params_with_stale_id = valid_params.merge(last_commit_id: 'stale')
params_with_stale_id = params.merge(last_commit_id: 'stale')
 
put api(route(file_path), user), params_with_stale_id
 
Loading
Loading
@@ -418,7 +422,7 @@ describe API::Files do
it "updates existing file in project repo with accepts correct last commit id" do
last_commit = Gitlab::Git::Commit
.last_for_path(project.repository, 'master', URI.unescape(file_path))
params_with_correct_id = valid_params.merge(last_commit_id: last_commit.id)
params_with_correct_id = params.merge(last_commit_id: last_commit.id)
 
put api(route(file_path), user), params_with_correct_id
 
Loading
Loading
@@ -433,9 +437,9 @@ describe API::Files do
 
context "when specifying an author" do
it "updates a file with the specified author" do
valid_params.merge!(author_email: author_email, author_name: author_name, content: "New content")
params.merge!(author_email: author_email, author_name: author_name, content: "New content")
 
put api(route(file_path), user), valid_params
put api(route(file_path), user), params
 
expect(response).to have_gitlab_http_status(200)
last_commit = project.repository.commit.raw
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment