Merge pull request #3174 from consul/backport-1736-pending_specs_proposal_notification_limits

[Backport] Add pending specs proposal notification limits
This commit is contained in:
Julian Nicolas Herrero
2019-01-18 11:06:03 +01:00
committed by GitHub
3 changed files with 50 additions and 5 deletions

View File

@@ -355,7 +355,7 @@ en:
proposal_notification:
attributes:
minimum_interval:
invalid: "You have to wait a minium of %{interval} days between notifications"
invalid: "You have to wait a minimum of %{interval} days between notifications"
signature:
attributes:
document_number:

View File

@@ -422,8 +422,53 @@ feature 'Proposal Notifications' do
context "Limits" do
pending "Cannot send more than one notification within established interval"
pending "use timecop to make sure notifications can be sent after time interval"
scenario "Cannot send more than one notification within established interval" do
author = create(:user)
proposal = create(:proposal, author: author)
login_as author.reload
visit new_proposal_notification_path(proposal_id: proposal.id)
fill_in "Title", with: "Thank you for supporting my proposal"
fill_in "Message", with: "Please share it with others so we can make it happen!"
click_button "Send message"
expect(page).to have_content "Your message has been sent correctly."
visit new_proposal_notification_path(proposal_id: proposal.id)
fill_in "Title", with: "Thank you again for supporting my proposal"
fill_in "Message", with: "Please share it again with others so we can make it happen!"
click_button "Send message"
expect(page).to have_content "You have to wait a minimum of 3 days between notifications"
expect(page).not_to have_content "Your message has been sent correctly."
end
scenario "Use time traveling to make sure notifications can be sent after time interval" do
author = create(:user)
proposal = create(:proposal, author: author)
login_as author.reload
visit new_proposal_notification_path(proposal_id: proposal.id)
fill_in "Title", with: "Thank you for supporting my proposal"
fill_in "Message", with: "Please share it with others so we can make it happen!"
click_button "Send message"
expect(page).to have_content "Your message has been sent correctly."
travel 3.days + 1.second
visit new_proposal_notification_path(proposal_id: proposal.id)
fill_in "Title", with: "Thank you again for supporting my proposal"
fill_in "Message", with: "Please share it again with others so we can make it happen!"
click_button "Send message"
expect(page).to have_content "Your message has been sent correctly."
expect(page).not_to have_content "You have to wait a minimum of 3 days between notifications"
travel_back
end
end

View File

@@ -50,7 +50,7 @@ describe ProposalNotification do
Setting[:proposal_notification_minimum_interval_in_days] = 3
end
it "is not valid if below minium interval" do
it "is not valid if below minimum interval" do
proposal = create(:proposal)
notification1 = create(:proposal_notification, proposal: proposal)
@@ -60,7 +60,7 @@ describe ProposalNotification do
expect(notification2).not_to be_valid
end
it "is valid if notifications above minium interval" do
it "is valid if notifications above minimum interval" do
proposal = create(:proposal)
notification1 = create(:proposal_notification, proposal: proposal, created_at: 4.days.ago)