diff --git a/app/javascript/packs/app/routes.js b/app/javascript/packs/app/routes.js index db4d9c0b9..9515ea989 100644 --- a/app/javascript/packs/app/routes.js +++ b/app/javascript/packs/app/routes.js @@ -51,11 +51,8 @@ export const CONTACT_US_LINK = // user teams export const LEAVE_TEAM_PATH = "/client_api/users/leave_team"; -<<<<<<< HEAD export const UPDATE_USER_TEAM_ROLE_PATH = "/client_api/users/update_role"; export const REMOVE_USER_FROM_TEAM_PATH = "/client_api/users/remove_user"; -======= ->>>>>>> 39c9b708bdce519ada61382da731ec73052bd9b5 // settings export const SETTINGS_ACCOUNT_PROFILE = "/settings/account/profile"; diff --git a/app/javascript/packs/src/settings/components/MainNav.jsx b/app/javascript/packs/src/settings/components/MainNav.jsx index 13bf225e5..9a00647d8 100644 --- a/app/javascript/packs/src/settings/components/MainNav.jsx +++ b/app/javascript/packs/src/settings/components/MainNav.jsx @@ -70,8 +70,11 @@ export default class MainNav extends Component { path={SETTINGS_PATH} render={() => } /> - - + + diff --git a/spec/controllers/client_api/users/user_teams_controller_spec.rb b/spec/controllers/client_api/users/user_teams_controller_spec.rb index d1e0604bd..6e9fccea7 100644 --- a/spec/controllers/client_api/users/user_teams_controller_spec.rb +++ b/spec/controllers/client_api/users/user_teams_controller_spec.rb @@ -1,32 +1,82 @@ require 'rails_helper' describe ClientApi::Users::UserTeamsController, type: :controller do + login_user + let(:user_one) { User.first } + let(:user_two) { create :user, email: Faker::Internet.email } + let(:team) { create :team } + let(:user_team) { create :user_team, team: team, user: user_one } + describe 'DELETE #leave_team' do - login_user - before do - @user_one = User.first - @user_two = FactoryGirl.create(:user, email: 'sec_user@asdf.com') - @team = FactoryGirl.create :team - FactoryGirl.create :user_team, team: @team, user: @user_one, role: 2 - end - - it 'Returns HTTP success if user can leave the team' do - FactoryGirl.create :user_team, team: @team, user: @user_two, role: 2 - delete :leave_team, params: { team: @team.id }, format: :json + it 'should return HTTP success if user can leave the team' do + create :user_team, team: team, user: user_two + delete :leave_team, + params: { team: team.id, user_team: user_team.id }, + format: :json expect(response).to be_success - expect(response).to have_http_status(200) + expect(response).to have_http_status(:ok) end - it 'Returns HTTP unprocessable_entity if user can\'t leave the team' do - delete :leave_team, params: { team: @team.id }, format: :json + it 'should return HTTP unprocessable_entity if user can\'t ' \ + 'leave the team' do + delete :leave_team, + params: { team: team.id, user_team: user_team.id }, + format: :json expect(response).to_not be_success expect(response).to have_http_status(:unprocessable_entity) end - it 'Returns HTTP unprocessable_entity if no params given' do + it 'should return HTTP unprocessable_entity if no params given' do delete :leave_team, format: :json expect(response).to_not be_success expect(response).to have_http_status(:unprocessable_entity) end end + + describe 'POST #update_role' do + it 'should return HTTP success if user can leave the team' do + user_team_two = create :user_team, team: team, user: user_two, role: 2 + post :update_role, + params: { team: team.id, + user_team: user_team_two.id, + role: 'normal_user' }, + format: :json + expect(response).to be_success + expect(response).to have_http_status(:ok) + end + + it 'should return HTTP unprocessable_entity if user can\'t ' \ + 'leave the team' do + post :update_role, + params: { team: team.id, + user_team: user_team.id, + role: 'normal_user' }, + format: :json + expect(response).to_not be_success + expect(response).to have_http_status(:unprocessable_entity) + end + end + + describe 'DELETE #remove_user' do + it 'should return HTTP success if user can be removed' do + user_team + user_team_two = create :user_team, team: team, user: user_two + post :remove_user, + params: { team: team.id, user_team: user_team_two.id }, + format: :json + expect(response).to be_success + expect(response).to have_http_status(:ok) + end + + it 'should return HTTP unprocessable_entity if user can\'t ' \ + 'be removed' do + post :remove_user, + params: { team: team.id, + user_team: user_team.id, + role: 'normal_user' }, + format: :json + expect(response).to_not be_success + expect(response).to have_http_status(:unprocessable_entity) + end + end end