Sha256: c49c290d0cea56bf331132b39eeffaba409ed0400f889513d401a9875cc65635

Contents?: true

Size: 1.99 KB

Versions: 3

Compression:

Stored size: 1.99 KB

Contents

require "rails_helper"

module ThinkFeelDoDashboard
  RSpec.describe GroupsController, type: :controller do
    routes { Engine.routes }

    let(:authorized_user) do
      instance_double(User, admin?: true)
    end

    describe "DELETE destroy" do
      describe "when unauthenticated user" do
        before { delete :destroy, id: 1 }

        it_behaves_like "a rejected user action"
      end

      describe "when authenticated user" do
        before do
          sign_in_user authorized_user
        end

        describe "when group record is found" do
          let(:group) do
            instance_double(
              Group,
              arm: instance_double(Arm)
            )
          end

          before do
            expect(Group)
              .to receive(:find) { group }
          end

          describe "when deletion succeeds" do
            before do
              allow(group)
                .to receive(:destroy)
                .and_return(true)

              delete :destroy, id: 1
            end

            it "redirects to the index page" do
              expect(response)
                .to redirect_to(groups_url)
            end
          end

          describe "when deletion fails" do
            before do
              allow(group)
                .to receive(:destroy)
                .and_return(false)

              delete :destroy, id: 1
            end

            it "redirects to the index page" do
              expect(response)
                .to redirect_to(groups_url)
            end
          end

          describe "when deletion raises DeleteRestrictionError" do
            before do
              allow(group)
                .to receive(:destroy)
                .and_raise(ActiveRecord::DeleteRestrictionError, "message")

              delete :destroy, id: 1
            end

            it "redirects to the index page" do
              expect(response)
                .to redirect_to(groups_url)
            end
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
think_feel_do_dashboard-1.2.0.beta1 spec/controllers/think_feel_do_dashboard/groups_controllers_spec.rb
think_feel_do_dashboard-1.1.21 spec/controllers/think_feel_do_dashboard/groups_controllers_spec.rb
think_feel_do_dashboard-1.1.20 spec/controllers/think_feel_do_dashboard/groups_controllers_spec.rb