summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2016-10-10 13:35:26 +0200
committerRémy Coutable <remy@rymai.me>2016-10-10 13:35:53 +0200
commit33ce1976451ee8fc0275e0ae012755053d50ec34 (patch)
tree668e6842c32cc501978cdc7d5d41748d85ba7343 /spec
parent2e55580b90d8605f0f37d9469e135354deabdb0b (diff)
downloadgitlab-ce-33ce1976451ee8fc0275e0ae012755053d50ec34.tar.gz
API: New /users/:id/events endpoint
Signed-off-by: Rémy Coutable <remy@rymai.me>
Diffstat (limited to 'spec')
-rw-r--r--spec/requests/api/users_spec.rb55
1 files changed, 55 insertions, 0 deletions
diff --git a/spec/requests/api/users_spec.rb b/spec/requests/api/users_spec.rb
index f4ea3bebb4c..56b2ec6271e 100644
--- a/spec/requests/api/users_spec.rb
+++ b/spec/requests/api/users_spec.rb
@@ -895,4 +895,59 @@ describe API::API, api: true do
expect{put api("/users/ASDF/block", admin) }.to raise_error(ActionController::RoutingError)
end
end
+
+ describe 'GET /user/:id/events' do
+ let(:user) { create(:user) }
+ let(:lambda_user) { create(:user) }
+ let(:project) { create(:empty_project) }
+ let(:note) { create(:note_on_issue, note: 'What an awesome day!', project: project) }
+
+ before do
+ project.add_user(user, :developer)
+ EventCreateService.new.leave_note(note, user)
+ end
+
+ context "as a user than cannot see the event's project" do
+ it 'returns no events' do
+ get api("/users/#{user.id}/events", lambda_user)
+
+ expect(response).to have_http_status(200)
+ expect(json_response).to be_empty
+ end
+ end
+
+ context "as a user than can see the event's project" do
+ it_behaves_like 'a paginated resources' do
+ let(:request) { get api("/users/#{user.id}/events", user) }
+ end
+
+ context 'joined event' do
+ it 'returns the "joined" event' do
+ get api("/users/#{user.id}/events", user)
+
+ first_event = json_response.first
+
+ expect(first_event['action_name']).to eq('commented on')
+ expect(first_event['project_id'].to_i).to eq(project.id)
+ expect(first_event['author_username']).to eq(user.username)
+ expect(first_event['note']['id']).to eq(note.id)
+ expect(first_event['note']['body']).to eq('What an awesome day!')
+
+ last_event = json_response.last
+
+ expect(last_event['action_name']).to eq('joined')
+ expect(last_event['project_id'].to_i).to eq(project.id)
+ expect(last_event['author_username']).to eq(user.username)
+ expect(last_event['author']['name']).to eq(user.name)
+ end
+ end
+ end
+
+ it 'returns a 404 error if not found' do
+ get api('/users/42/events', user)
+
+ expect(response).to have_http_status(404)
+ expect(json_response['message']).to eq('404 User Not Found')
+ end
+ end
end