diff --git a/spec/features/proposals_spec.rb b/spec/features/proposals_spec.rb index a7c7880a8..d297a294b 100644 --- a/spec/features/proposals_spec.rb +++ b/spec/features/proposals_spec.rb @@ -1244,6 +1244,34 @@ feature 'Proposals' do expect(Flag.flagged?(user, proposal)).to_not be end + scenario 'Flagging/Unflagging AJAX', :js do + user = create(:user) + proposal = create(:proposal) + + login_as(user) + visit proposal_path(proposal) + + # Flagging + within "#proposal_#{proposal.id}" do + page.find("#flag-expand-proposal-#{proposal.id}").click + page.find("#flag-proposal-#{proposal.id}").click + + expect(page).to have_css("#unflag-expand-proposal-#{proposal.id}") + end + + expect(Flag.flagged?(user, proposal)).to be + + # Unflagging + within "#proposal_#{proposal.id}" do + page.find("#unflag-expand-proposal-#{proposal.id}").click + page.find("#unflag-proposal-#{proposal.id}").click + + expect(page).to have_css("#flag-expand-proposal-#{proposal.id}") + end + + expect(Flag.flagged?(user, proposal)).to_not be + end + it_behaves_like "followable", "proposal", "proposal_path", { "id": "id" } it_behaves_like "documentable", "proposal", "proposal_path", { "id": "id" }