Sha256: 28090b656dfdf25346a640ad96f8bcf3abfc09231a530d989cfee63c72c2fa40

Contents?: true

Size: 1.74 KB

Versions: 5

Compression:

Stored size: 1.74 KB

Contents

require "rails_helper"

describe Dorsale::CommentsController, type: :controller do
  routes { Dorsale::Engine.routes }

  let(:user) { create(:user) }

  before(:each) { sign_in(user) }

  let(:commentable) { create(:customer_vault_corporation) }
  let(:valid_params){
    {
      :comment => {
        :commentable_id   => commentable.id,
        :commentable_type => commentable.class.to_s,
        :text => "Hello",
      },
      :back_url => "/",
    }
  }

  describe "create" do
    it "should create comment" do
      post :create, params: valid_params
      expect(assigns(:comment)).to be_persisted
    end

    it "should redirect to back_url" do
      post :create, params: valid_params
      expect(response).to redirect_to("/")
    end

    describe "on person" do
      it "should create an event" do
        expect {
          post :create, params: valid_params
        }.to change(Dorsale::CustomerVault::Event, :count).by(1)

        event = Dorsale::CustomerVault::Event.last_created
        expect(event.author).to eq user
        expect(event.person).to eq commentable
        expect(event.comment).to eq Dorsale::Comment.last_created
        expect(event.action).to eq "comment"
      end
    end # describe "on person"
  end

  describe "update" do
    it "should update comment text" do
      comment = create(:dorsale_comment)
      patch :update, params: {id: comment, comment: {text: "New-comment-text"}, back_url: "/"}
      expect(response).to redirect_to("/")
      expect(comment.reload.text).to eq "New-comment-text"
    end
  end

  describe "destroy" do
    it "should destroy comment" do
      comment = create(:dorsale_comment)
      delete :destroy, params: {id: comment, back_url: "/"}
      expect(response).to redirect_to("/")
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
dorsale-3.7.2 spec/controllers/dorsale/comments_controller_spec.rb
dorsale-3.7.1 spec/controllers/dorsale/comments_controller_spec.rb
dorsale-3.7.0 spec/controllers/dorsale/comments_controller_spec.rb
dorsale-3.6.1 spec/controllers/dorsale/comments_controller_spec.rb
dorsale-3.6.0 spec/controllers/dorsale/comments_controller_spec.rb