Commit dc2ca594 authored by Felipe Artur's avatar Felipe Artur

Expose notification setting events in API

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