Reduce number of requests in dashboard tests
Using separate tests to check every link on the page made the tests slower. We were also adding a useless initial request on tests which started by visiting a different URL. This useless initial request meant in some tests the browser was started before using factories to create data. Accessing the database in the test after the browser starts might cause concurrency issues in JavaScript tests.
This commit is contained in:
@@ -1,31 +1,25 @@
|
||||
require "rails_helper"
|
||||
|
||||
describe "Proposal's dashboard" do
|
||||
let!(:proposal) { create(:proposal, :draft) }
|
||||
let(:proposal) { create(:proposal, :draft) }
|
||||
before { login_as(proposal.author) }
|
||||
|
||||
before do
|
||||
login_as(proposal.author)
|
||||
scenario "Navigation" do
|
||||
visit proposal_dashboard_path(proposal)
|
||||
end
|
||||
|
||||
scenario "Dashboard has a link to my proposal" do
|
||||
expect(page).to have_link("Edit my proposal")
|
||||
end
|
||||
|
||||
scenario "My proposal has a link to edit the proposal" do
|
||||
expect(page).to have_link("Edit proposal")
|
||||
end
|
||||
|
||||
scenario "My proposal has a link to retire the proposal" do
|
||||
expect(page).to have_link("Retire proposal")
|
||||
end
|
||||
|
||||
scenario "My proposal has a link to publish the proposal" do
|
||||
expect(page).to have_link("Publish proposal")
|
||||
expect(page).to have_link("Polls")
|
||||
expect(page).to have_link("E-mail")
|
||||
expect(page).to have_link("Poster")
|
||||
end
|
||||
|
||||
scenario "Publish link dissapears after proposal's publication" do
|
||||
visit proposal_dashboard_path(proposal)
|
||||
click_link "Publish proposal"
|
||||
|
||||
expect(page).not_to have_link("Publish proposal")
|
||||
end
|
||||
|
||||
@@ -261,18 +255,6 @@ describe "Proposal's dashboard" do
|
||||
end
|
||||
end
|
||||
|
||||
scenario "Dashboard has a link to polls feature" do
|
||||
expect(page).to have_link("Polls")
|
||||
end
|
||||
|
||||
scenario "Dashboard has a link to e-mail feature" do
|
||||
expect(page).to have_link("E-mail")
|
||||
end
|
||||
|
||||
scenario "Dashboard has a link to poster feature" do
|
||||
expect(page).to have_link("Poster")
|
||||
end
|
||||
|
||||
scenario "Dashboard has a link to resources on main menu" do
|
||||
feature = create(:dashboard_action, :resource, :active)
|
||||
|
||||
@@ -342,7 +324,8 @@ describe "Proposal's dashboard" do
|
||||
end
|
||||
|
||||
scenario "Dashboard has a link to dashboard community", js: true do
|
||||
expect(page).to have_link("Community")
|
||||
visit proposal_dashboard_path(proposal)
|
||||
|
||||
click_link "Community"
|
||||
|
||||
expect(page).to have_content("Participants")
|
||||
@@ -364,6 +347,8 @@ describe "Proposal's dashboard" do
|
||||
end
|
||||
|
||||
scenario "Dashboard has a link to messages" do
|
||||
visit proposal_dashboard_path(proposal)
|
||||
|
||||
expect(page).to have_link("Message to users")
|
||||
|
||||
within("#side_menu") do
|
||||
@@ -404,6 +389,8 @@ describe "Proposal's dashboard" do
|
||||
create(:related_content, parent_relationable: proposal,
|
||||
child_relationable: related_proposal, author: build(:user))
|
||||
|
||||
visit proposal_dashboard_path(proposal)
|
||||
|
||||
within("#side_menu") do
|
||||
click_link "Related content"
|
||||
end
|
||||
@@ -497,7 +484,8 @@ describe "Proposal's dashboard" do
|
||||
|
||||
describe "detect_new_actions_after_last_login" do
|
||||
before do
|
||||
proposal.author.update(last_sign_in_at: Date.yesterday)
|
||||
visit proposal_dashboard_path(proposal)
|
||||
proposal.author.update!(last_sign_in_at: Date.yesterday)
|
||||
end
|
||||
|
||||
scenario "Display tag 'new' on resouce when it is new for author since last login" do
|
||||
|
||||
Reference in New Issue
Block a user