Files
grecia/spec/features/admin/signature_sheets_spec.rb
Javi Martín 307cf24846 Use describe on feature tests
The `type: :feature` is automatically detected by RSpec because these
tests are inside the `spec/features` folder. Using `feature` re-adds a
`type: :feature` to these files, which will result in a conflict when we
upgrade to Rails 5.1's system tests.

Because of this change, we also need to change `background` to `before`
or else these tests will fail.
2019-05-28 16:36:54 +02:00

110 lines
3.1 KiB
Ruby

require "rails_helper"
describe "Signature sheets" do
before do
admin = create(:administrator)
login_as(admin.user)
end
context "Index" do
scenario "Lists all signature_sheets" do
3.times { create(:signature_sheet) }
visit admin_signature_sheets_path
expect(page).to have_css(".signature_sheet", count: 3)
SignatureSheet.find_each do |signature_sheet|
expect(page).to have_content signature_sheet.name
end
end
scenario "Orders signature_sheets by created_at DESC" do
signature_sheet1 = create(:signature_sheet)
signature_sheet2 = create(:signature_sheet)
signature_sheet3 = create(:signature_sheet)
visit admin_signature_sheets_path
expect(signature_sheet3.name).to appear_before(signature_sheet2.name)
expect(signature_sheet2.name).to appear_before(signature_sheet1.name)
end
end
context "Create" do
scenario "Proposal" do
proposal = create(:proposal)
visit new_admin_signature_sheet_path
select "Citizen proposal", from: "signature_sheet_signable_type"
fill_in "signature_sheet_signable_id", with: proposal.id
fill_in "signature_sheet_document_numbers", with: "12345678Z, 99999999Z"
click_button "Create signature sheet"
expect(page).to have_content "Signature sheet created successfully"
visit proposal_path(proposal)
expect(page).to have_content "1 support"
end
scenario "Budget Investment" do
investment = create(:budget_investment)
budget = investment.budget
budget.update(phase: "selecting")
visit new_admin_signature_sheet_path
select "Investment", from: "signature_sheet_signable_type"
fill_in "signature_sheet_signable_id", with: investment.id
fill_in "signature_sheet_document_numbers", with: "12345678Z, 99999999Z"
click_button "Create signature sheet"
expect(page).to have_content "Signature sheet created successfully"
visit budget_investment_path(budget, investment)
expect(page).to have_content "1 support"
end
end
scenario "Errors on create" do
visit new_admin_signature_sheet_path
click_button "Create signature sheet"
expect(page).to have_content error_message
end
scenario "Show" do
proposal = create(:proposal)
user = Administrator.first.user
signature_sheet = create(:signature_sheet,
signable: proposal,
document_numbers: "12345678Z, 123A, 123B",
author: user)
signature_sheet.verify_signatures
visit admin_signature_sheet_path(signature_sheet)
expect(page).to have_content "Citizen proposal #{proposal.id}"
expect(page).to have_content "12345678Z, 123A, 123B"
expect(page).to have_content signature_sheet.created_at.strftime("%B %d, %Y %H:%M")
expect(page).to have_content user.name
within("#document_count") do
expect(page).to have_content 3
end
within("#verified_signatures") do
expect(page).to have_content 1
end
within("#unverified_signatures") do
expect(page).to have_content 2
end
end
end