Move dashboard poll partial to component

This commit is contained in:
taitus
2025-06-30 11:22:37 +02:00
committed by Javi Martín
parent 150af75e3e
commit fc0d79b47b
7 changed files with 98 additions and 88 deletions

View File

@@ -0,0 +1,60 @@
require "rails_helper"
describe Dashboard::PollComponent do
include Rails.application.routes.url_helpers
let(:proposal) { create(:proposal, :draft) }
before { sign_in(proposal.author) }
describe "Poll card content" do
describe "actions visibility" do
it "shows edit link for upcoming polls" do
upcoming = create(:poll, related: proposal, starts_at: 1.week.from_now)
render_inline Dashboard::PollComponent.new(upcoming)
page.find("div#poll_#{upcoming.id}") do |poll_card|
expect(poll_card).to have_link "Edit survey",
href: edit_proposal_dashboard_poll_path(proposal, upcoming)
expect(poll_card).not_to have_link "View results"
end
end
it "shows results link for current polls" do
current = create(:poll, related: proposal)
render_inline Dashboard::PollComponent.new(current)
page.find("div#poll_#{current.id}") do |poll_card|
expect(poll_card).not_to have_link "Edit survey"
expect(poll_card).to have_link "View results", href: results_proposal_poll_path(proposal, current)
end
end
it "shows results link for expired polls" do
expired = create(:poll, :expired, related: proposal)
render_inline Dashboard::PollComponent.new(expired)
page.find("div#poll_#{expired.id}") do |poll_card|
expect(poll_card).not_to have_link "Edit survey"
expect(poll_card).to have_link "View results", href: results_proposal_poll_path(proposal, expired)
end
end
end
it "renders poll title and dates" do
expired = create(:poll, :expired, related: proposal)
render_inline Dashboard::PollComponent.new(expired)
page.find("div#poll_#{expired.id}") do |poll_card|
expect(page).to have_content I18n.l(expired.starts_at.to_date)
expect(page).to have_content I18n.l(expired.ends_at.to_date)
expect(page).to have_link expired.title
expect(page).to have_link expired.title, href: proposal_poll_path(proposal, expired)
end
end
end
end