Files
grecia/spec/components/legislation/proposals/votes_component_spec.rb
taitus daf9692753 Add aria-pressed to in favor against component
In order to the users using screen readers know whether the button is pressed
or not.
2023-10-06 07:14:07 +02:00

43 lines
1.5 KiB
Ruby

require "rails_helper"
describe Legislation::Proposals::VotesComponent do
let(:proposal) { create(:legislation_proposal, title: "Require wearing masks at home") }
let(:component) { Legislation::Proposals::VotesComponent.new(proposal) }
describe "Agree and disagree buttons" do
it "is not shown when the proposals phase isn't open" do
proposal.process.update!(
proposals_phase_start_date: 2.days.ago,
proposals_phase_end_date: Date.yesterday
)
sign_in(create(:user))
render_inline component
expect(page).not_to have_button "I agree", disabled: :all
expect(page).not_to have_button "I disagree", disabled: :all
end
it "is shown to anonymous users alongside a reminder to sign in" do
render_inline component
expect(page).to have_button "I agree"
expect(page).to have_button "I disagree"
expect(page).to have_content "You must sign in or sign up to continue."
end
it "is shown to identified users" do
sign_in(create(:user))
render_inline component
expect(page).to have_button count: 2
expect(page).to have_button "I agree", title: "I agree"
expect(page).to have_button "I agree with Require wearing masks at home"
expect(page).to have_button "I disagree", title: "I disagree"
expect(page).to have_button "I don't agree with Require wearing masks at home"
expect(page).not_to have_content "You must sign in or sign up to continue."
end
end
end