# frozen_string_literal: true require "rails_helper" RSpec.describe MrCommon::Reminders::RemindersController, type: :controller do before(:all) do @user = create(:user) end describe "as admin" do before(:each) do sign_in @user end it "#index" do get :index expect(response.status).to eq 200 end it "#show" do reminder = create(:reminder) get :show, params: { id: reminder } expect(response.status).to eq 200 end it "#edit" do reminder = create(:reminder) get :edit, params: { id: reminder } expect(response.status).to eq 200 end it "#create" do reminder = attributes_for(:reminder) post :create, params: { reminder: reminder } expect(response).to redirect_to reminder_path(MrCommon::Reminder.last) end it "#update" do reminder = create(:reminder) reminder_params = attributes_for(:reminder, summary: "new summary") post :update, params: { id: reminder, reminder: reminder_params } expect(response).to redirect_to reminder_path(reminder) end it "#destroy" do reminder = create(:reminder) get :destroy, params: { id: reminder } expect(response).to redirect_to reminders_path end end describe "as anonymous" do it "#index" do get :index expect(response.status).to eq 302 end it "#show" do reminder = create(:reminder) get :show, params: { id: reminder } expect(response.status).to eq 302 end it "#edit" do reminder = create(:reminder) get :edit, params: { id: reminder } expect(response.status).to eq 302 end it "#update" do reminder = create(:reminder) reminder_params = attributes_for(:reminder, first_name: "new summary") post :update, params: { id: reminder, reminder: reminder_params } expect(response).to redirect_to main_app.new_user_session_path end it "#create" do reminder = attributes_for(:reminder) post :create, params: { reminder: reminder } expect(response).to redirect_to main_app.new_user_session_path end it "#destroy" do reminder = create(:reminder) get :destroy, params: { id: reminder } expect(response.status).to redirect_to main_app.new_user_session_path end end end