diff options
author | Shuhei Kitagawa <shuheiktgw@users.noreply.github.com> | 2018-05-09 15:41:26 +0900 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2018-05-09 08:41:26 +0200 |
commit | 35eff337d5482ac251e2f75031c5be2ab583e265 (patch) | |
tree | 3c6dc0a5c191d44a063ad491125a6b95edfa4fdf | |
parent | 6832110af46e31831788c599b70ac047c7512e16 (diff) |
Add tests for admin/invites_controller (#7412)
-rw-r--r-- | spec/controllers/admin/invites_controller_spec.rb | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/spec/controllers/admin/invites_controller_spec.rb b/spec/controllers/admin/invites_controller_spec.rb new file mode 100644 index 000000000..e7d995411 --- /dev/null +++ b/spec/controllers/admin/invites_controller_spec.rb @@ -0,0 +1,43 @@ +require 'rails_helper' + +describe Admin::InvitesController do + render_views + + let(:user) { Fabricate(:user, admin: true) } + + before do + sign_in user, scope: :user + end + + describe 'GET #index' do + subject { get :index, params: { available: true } } + + let!(:invite) { Fabricate(:invite) } + + it 'renders index page' do + expect(subject).to render_template :index + expect(assigns(:invites)).to include invite + end + end + + describe 'POST #create' do + subject { post :create, params: { invite: { max_uses: '10', expires_in: 1800 } } } + + it 'succeeds to create a invite' do + expect{ subject }.to change { Invite.count }.by(1) + expect(subject).to redirect_to admin_invites_path + expect(Invite.last).to have_attributes(user_id: user.id, max_uses: 10) + end + end + + describe 'DELETE #destroy' do + let!(:invite) { Fabricate(:invite, expires_at: nil) } + + subject { delete :destroy, params: { id: invite.id } } + + it 'expires invite' do + expect(subject).to redirect_to admin_invites_path + expect(invite.reload).to be_expired + end + end +end |