Commit dc2ca594 authored by Felipe Artur's avatar Felipe Artur

Expose notification setting events in API

parent e60999ec
...@@ -275,7 +275,8 @@ module API ...@@ -275,7 +275,8 @@ module API
expose :access_level expose :access_level
expose :notification_level do |member, options| expose :notification_level do |member, options|
if member.notification_setting if member.notification_setting
NotificationSetting.levels[member.notification_setting.level] setting = member.notification_setting
{ level: NotificationSetting.levels[setting.level], events: setting.events }
end end
end end
end end
......
...@@ -428,8 +428,9 @@ describe API::API, api: true do ...@@ -428,8 +428,9 @@ describe API::API, api: true do
describe 'permissions' do describe 'permissions' do
context 'all projects' do context 'all projects' do
it 'Contains permission information' do before { project.team << [user, :master] }
project.team << [user, :master]
it 'contains permission information' do
get api("/projects", user) get api("/projects", user)
expect(response.status).to eq(200) expect(response.status).to eq(200)
...@@ -437,10 +438,18 @@ describe API::API, api: true do ...@@ -437,10 +438,18 @@ describe API::API, api: true do
to eq(Gitlab::Access::MASTER) to eq(Gitlab::Access::MASTER)
expect(json_response.first['permissions']['group_access']).to be_nil expect(json_response.first['permissions']['group_access']).to be_nil
end end
it 'contains notification level information' do
get api("/projects", user)
expect(response.status).to eq(200)
expect(json_response.first['permissions']['project_access']['notification_level']['level']).to eq(NotificationSetting.levels[:global])
expect(json_response.first['permissions']['project_access']['notification_level'].keys).to include('events')
end
end end
context 'personal project' do context 'personal project' do
it 'Sets project access and returns 200' do it 'sets project access and returns 200' do
project.team << [user, :master] project.team << [user, :master]
get api("/projects/#{project.id}", user) get api("/projects/#{project.id}", user)
...@@ -452,9 +461,11 @@ describe API::API, api: true do ...@@ -452,9 +461,11 @@ describe API::API, api: true do
end end
context 'group project' do context 'group project' do
let(:project2) { create(:project, group: create(:group)) }
before { project2.group.add_owner(user) }
it 'should set the owner and return 200' do it 'should set the owner and return 200' do
project2 = create(:project, group: create(:group))
project2.group.add_owner(user)
get api("/projects/#{project2.id}", user) get api("/projects/#{project2.id}", user)
expect(response.status).to eq(200) expect(response.status).to eq(200)
...@@ -462,6 +473,14 @@ describe API::API, api: true do ...@@ -462,6 +473,14 @@ describe API::API, api: true do
expect(json_response['permissions']['group_access']['access_level']). expect(json_response['permissions']['group_access']['access_level']).
to eq(Gitlab::Access::OWNER) to eq(Gitlab::Access::OWNER)
end end
it 'shows notification level information' do
get api("/projects/#{project2.id}", user)
expect(response.status).to eq(200)
expect(json_response['permissions']['group_access']['notification_level']['level']).to eq(NotificationSetting.levels[:global])
expect(json_response['permissions']['group_access']['notification_level'].keys).to include('events')
end
end end
end end
end end
......
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