Sha256: f05c50a174c0ef91246ca6d810c0cbc004bce99786e2f3b2083aea0581c9219b
Contents?: true
Size: 1.51 KB
Versions: 2
Compression:
Stored size: 1.51 KB
Contents
require "spec_helper" describe Decidim::Admin::CreateParticipatoryProcessAdmin do let(:my_process) { create :participatory_process } let!(:email) { "my_email@example.org" } let!(:user) { create :user, email: "my_email@example.org", organization: my_process.organization } let(:form) do double( :invalid? => invalid, email: email ) end let(:invalid) { false } subject { described_class.new(form, my_process) } context "when to form is not valid" do let(:invalid) { true } it "is not valid" do expect { subject.call }.to broadcast(:invalid) end end context "when there is no user with the given email" do let(:email) { "does_not_exist@example.com" } it "is not valid" do expect { subject.call }.to broadcast(:invalid) end end context "when a user and a role already exist" do before do create( :participatory_process_user_role, user: user, role: :admin, participatory_process: my_process ) end it "is not valid" do form_errors = double expect(form_errors).to receive(:add).with(:email, :taken) expect(form).to receive(:errors).and_return(form_errors) expect { subject.call }.to broadcast(:invalid) end end context "when everything is ok" do it "creates the user role" do subject.call roles = Decidim::Admin::ParticipatoryProcessUserRole.where(user: user) expect(roles.count).to eq 1 expect(roles.first.role).to eq "admin" end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
decidim-0.0.5 | decidim-admin/spec/commands/create_participatory_process_admin_spec.rb |
decidim-0.0.4 | decidim-admin/spec/commands/create_participatory_process_admin_spec.rb |