From 0be05038b028a05ed97aef183f8d86545973af3e Mon Sep 17 00:00:00 2001 From: Pau Perez Date: Mon, 21 Sep 2020 11:32:03 +0200 Subject: [PATCH] Add system spec to test delegation vote --- .../decidim/action_delegator/questions.js.es6 | 1 + .../_delegations_modal.html.erb | 2 +- .../action_delegator/delegations_spec.rb | 40 +++++++++++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 spec/system/decidim/action_delegator/delegations_spec.rb diff --git a/app/assets/javascripts/decidim/action_delegator/questions.js.es6 b/app/assets/javascripts/decidim/action_delegator/questions.js.es6 index 9c6b0c43..fff4ebd7 100644 --- a/app/assets/javascripts/decidim/action_delegator/questions.js.es6 +++ b/app/assets/javascripts/decidim/action_delegator/questions.js.es6 @@ -13,6 +13,7 @@ $(() => { }); delegationVoteButtons.click((e) => { + delegationDialog.foundation("close"); voteDialog.foundation("open"); delegationField.val($(e.currentTarget).data("delegation-id")); delegationCalloutsMessage.text($(e.currentTarget).data("delegation-granter-name")); diff --git a/app/views/decidim/action_delegator/_delegations_modal.html.erb b/app/views/decidim/action_delegator/_delegations_modal.html.erb index 2868e561..f8c78a52 100644 --- a/app/views/decidim/action_delegator/_delegations_modal.html.erb +++ b/app/views/decidim/action_delegator/_delegations_modal.html.erb @@ -45,7 +45,7 @@ method: :delete, remote: true, data: { disable: true }, - class: "button expanded success unvote_button" do %> + class: "button expanded success delegation_unvote_button" do %> <%= hidden_field_tag "decidim_consultations_delegation_id", delegation.id, id: "decidim_consultations_delegation_id_delete_#{delegation.id}" %>
" diff --git a/spec/system/decidim/action_delegator/delegations_spec.rb b/spec/system/decidim/action_delegator/delegations_spec.rb new file mode 100644 index 00000000..c8909b26 --- /dev/null +++ b/spec/system/decidim/action_delegator/delegations_spec.rb @@ -0,0 +1,40 @@ +# frozen_string_literal: true + +require "spec_helper" + +describe "Delegation vote", type: :system do + let(:organization) { create(:organization) } + let(:question) { create :question, :published, consultation: consultation } + + context "when active consultation" do + let(:consultation) { create(:consultation, :active, organization: organization) } + let(:user) { create(:user, :confirmed, organization: organization) } + + context "and authenticated user" do + context "and never voted before" do + let!(:response) { create :response, question: question } + let(:setting) { create(:setting, consultation: consultation) } + let(:granter) { create(:user, :confirmed, organization: organization) } + let!(:delegation) { create(:delegation, setting: setting, granter: granter, grantee: user) } + + before do + switch_to_host(organization.host) + login_as user, scope: :user + visit decidim_consultations.question_path(question) + end + + it "lets the user vote on behalf of some other member" do + click_link(id: "delegations-button") + click_link(class: "delegation-vote-button") + + expect(page).to have_content(I18n.t("decidim.action_delegator.delegations_modal.callout")) + + click_button translated(response.title) + click_button "Confirm" + + expect(page).to have_button(class: "delegation_unvote_button", visible: :hidden) + end + end + end + end +end