662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksarequire 'spec_helper'
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksadescribe TeamsController do
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa context 'not signed in' do
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa context 'on GET to index' do
23305f217b86a2ebf90a848af9036908e0070542Eugen Kuksa before { get :index }
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa
7ca38d75d045fade73b81bff6fdf34f4755d75fbEugen Kuksa it 'sets the flash' do
7ca38d75d045fade73b81bff6fdf34f4755d75fbEugen Kuksa expect(flash[:alert]).to match(/not authorized/)
7ca38d75d045fade73b81bff6fdf34f4755d75fbEugen Kuksa end
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa it { should redirect_to(:root) }
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa end
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa end
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa context 'signed in' do
7c7a19761235efff584ee65a1c6dc4aa1735ff64Eugen Kuksa let(:user) { create :user }
23305f217b86a2ebf90a848af9036908e0070542Eugen Kuksa before { sign_in user }
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa context 'on GET to index without teams' do
23305f217b86a2ebf90a848af9036908e0070542Eugen Kuksa before { get :index }
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa it { should respond_with :success }
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa it { should render_template :index }
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa end
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa context 'on GET to new' do
23305f217b86a2ebf90a848af9036908e0070542Eugen Kuksa before { get :new }
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa it { should respond_with :success }
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa it { should render_template :new }
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa end
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa context 'with teams' do
7c7a19761235efff584ee65a1c6dc4aa1735ff64Eugen Kuksa let(:team) { create :team, admin_user: user }
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa context 'on GET to index' do
23305f217b86a2ebf90a848af9036908e0070542Eugen Kuksa before { get :index }
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa it { should respond_with :success }
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa it { should render_template :index }
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa end
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa context 'on GET to show' do
23305f217b86a2ebf90a848af9036908e0070542Eugen Kuksa before { get :show, id: team.to_param }
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa it { should respond_with :success }
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa it { should render_template :show }
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa end
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa context 'on GET to edit' do
23305f217b86a2ebf90a848af9036908e0070542Eugen Kuksa before { get :edit, id: team.to_param }
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa it { should respond_with :success }
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa it { should render_template :edit }
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa end
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa context 'on DELETE to destroy' do
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa context 'by team admin' do
23305f217b86a2ebf90a848af9036908e0070542Eugen Kuksa before { delete :destroy, id: team.id }
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa it { should redirect_to(Team) }
7ca38d75d045fade73b81bff6fdf34f4755d75fbEugen Kuksa
7ca38d75d045fade73b81bff6fdf34f4755d75fbEugen Kuksa it 'sets the flash' do
7ca38d75d045fade73b81bff6fdf34f4755d75fbEugen Kuksa expect(flash[:notice]).to match(/destroyed/)
7ca38d75d045fade73b81bff6fdf34f4755d75fbEugen Kuksa end
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa end
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa context 'by non-admin' do
7c7a19761235efff584ee65a1c6dc4aa1735ff64Eugen Kuksa let!(:member) { create :user }
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa before do
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa team.users << member
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa sign_in member
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa delete :destroy, id: team.id
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa end
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa it { should redirect_to(:root) }
7ca38d75d045fade73b81bff6fdf34f4755d75fbEugen Kuksa
7ca38d75d045fade73b81bff6fdf34f4755d75fbEugen Kuksa it 'sets the flash' do
7ca38d75d045fade73b81bff6fdf34f4755d75fbEugen Kuksa expect(flash[:alert]).to match(/not authorized/)
7ca38d75d045fade73b81bff6fdf34f4755d75fbEugen Kuksa end
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa end
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa end
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa end
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksa end
662650fe3787e2d223a325383ea15fc44e0989ccEugen Kuksaend