Sha256: afdb18563cad439a5db2cdd97bb6faef43792512ea9d4b5662b59ae05a45713c

Contents?: true

Size: 1.34 KB

Versions: 20

Compression:

Stored size: 1.34 KB

Contents

# frozen_string_literal: true

require "spec_helper"

module Decidim
  module Proposals
    module Admin
      describe AnswerProposal do
        describe "call" do
          let(:proposal) { create(:proposal) }
          let(:form) { ProposalAnswerForm.from_params(form_params) }
          let(:form_params) do
            {
              state: "rejected", answer: { en: "Foo" }
            }
          end

          let(:command) { described_class.new(form, proposal) }

          describe "when the form is not valid" do
            before do
              expect(form).to receive(:invalid?).and_return(true)
            end

            it "broadcasts invalid" do
              expect { command.call }.to broadcast(:invalid)
            end

            it "doesn't update the proposal" do
              expect(proposal).not_to receive(:update_attributes!)
              command.call
            end
          end

          describe "when the form is valid" do
            before do
              expect(form).to receive(:invalid?).and_return(false)
            end

            it "broadcasts ok" do
              expect { command.call }.to broadcast(:ok)
            end

            it "updates the proposal" do
              command.call

              expect(proposal.reload).to be_answered
            end
          end
        end
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
decidim-0.6.8 decidim-proposals/spec/commands/decidim/proposals/answer_proposal_spec.rb
decidim-0.6.7 decidim-proposals/spec/commands/decidim/proposals/answer_proposal_spec.rb
decidim-0.6.6 decidim-proposals/spec/commands/decidim/proposals/answer_proposal_spec.rb
decidim-0.6.5 decidim-proposals/spec/commands/decidim/proposals/answer_proposal_spec.rb
decidim-0.6.4 decidim-proposals/spec/commands/decidim/proposals/answer_proposal_spec.rb
decidim-0.6.3 decidim-proposals/spec/commands/decidim/proposals/answer_proposal_spec.rb
decidim-0.6.2 decidim-proposals/spec/commands/decidim/proposals/answer_proposal_spec.rb
decidim-0.6.1 decidim-proposals/spec/commands/decidim/proposals/answer_proposal_spec.rb
decidim-0.6.0 decidim-proposals/spec/commands/decidim/proposals/answer_proposal_spec.rb
decidim-0.5.1 decidim-proposals/spec/commands/decidim/proposals/answer_proposal_spec.rb
decidim-0.5.0 decidim-proposals/spec/commands/decidim/proposals/answer_proposal_spec.rb
decidim-0.4.4 decidim-proposals/spec/commands/decidim/proposals/answer_proposal_spec.rb
decidim-0.4.3 decidim-proposals/spec/commands/decidim/proposals/answer_proposal_spec.rb
decidim-0.4.2 decidim-proposals/spec/commands/decidim/proposals/answer_proposal_spec.rb
decidim-0.4.1 decidim-proposals/spec/commands/decidim/proposals/answer_proposal_spec.rb
decidim-0.4.0 decidim-proposals/spec/commands/decidim/proposals/answer_proposal_spec.rb
decidim-0.3.2 decidim-proposals/spec/commands/decidim/proposals/answer_proposal_spec.rb
decidim-0.3.1 decidim-proposals/spec/commands/decidim/proposals/answer_proposal_spec.rb
decidim-0.3.0 decidim-proposals/spec/commands/decidim/proposals/answer_proposal_spec.rb
decidim-0.2.0 decidim-proposals/spec/commands/decidim/proposals/answer_proposal_spec.rb