Commit 69b1a615 authored by Sean McGivern's avatar Sean McGivern

Merge branch '33242-create-project-for-user-api-ignores-path-parameter' into 'master'

Add optional path parameter and fix tests

Closes #33242

See merge request !11868
parents d2f14953 578adc9b
---
title: Fix missing optional path parameter in "Create project for user" API
merge_request: 11868
author:
...@@ -129,6 +129,7 @@ module API ...@@ -129,6 +129,7 @@ module API
params do params do
requires :name, type: String, desc: 'The name of the project' requires :name, type: String, desc: 'The name of the project'
requires :user_id, type: Integer, desc: 'The ID of a user' requires :user_id, type: Integer, desc: 'The ID of a user'
optional :path, type: String, desc: 'The path of the repository'
optional :default_branch, type: String, desc: 'The default branch of the project' optional :default_branch, type: String, desc: 'The default branch of the project'
use :optional_params use :optional_params
use :create_params use :create_params
......
...@@ -316,15 +316,15 @@ describe API::Projects do ...@@ -316,15 +316,15 @@ describe API::Projects do
expect(project.path).to eq('foo_project') expect(project.path).to eq('foo_project')
end end
it 'creates new project name and path and returns 201' do it 'creates new project with name and path and returns 201' do
expect { post api('/projects', user), path: 'foo-Project', name: 'Foo Project' }. expect { post api('/projects', user), path: 'path-project-Foo', name: 'Foo Project' }.
to change { Project.count }.by(1) to change { Project.count }.by(1)
expect(response).to have_http_status(201) expect(response).to have_http_status(201)
project = Project.first project = Project.first
expect(project.name).to eq('Foo Project') expect(project.name).to eq('Foo Project')
expect(project.path).to eq('foo-Project') expect(project.path).to eq('path-project-Foo')
end end
it 'creates last project before reaching project limit' do it 'creates last project before reaching project limit' do
...@@ -470,9 +470,25 @@ describe API::Projects do ...@@ -470,9 +470,25 @@ describe API::Projects do
before { project } before { project }
before { admin } before { admin }
it 'creates new project without path and return 201' do it 'creates new project without path but with name and return 201' do
expect { post api("/projects/user/#{user.id}", admin), name: 'foo' }.to change {Project.count}.by(1) expect { post api("/projects/user/#{user.id}", admin), name: 'Foo Project' }.to change {Project.count}.by(1)
expect(response).to have_http_status(201) expect(response).to have_http_status(201)
project = Project.first
expect(project.name).to eq('Foo Project')
expect(project.path).to eq('foo-project')
end
it 'creates new project with name and path and returns 201' do
expect { post api("/projects/user/#{user.id}", admin), path: 'path-project-Foo', name: 'Foo Project' }.
to change { Project.count }.by(1)
expect(response).to have_http_status(201)
project = Project.first
expect(project.name).to eq('Foo Project')
expect(project.path).to eq('path-project-Foo')
end end
it 'responds with 400 on failure and not project' do it 'responds with 400 on failure and not project' do
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment