Updates specs

This commit is contained in:
decabeza
2018-02-27 12:56:15 +01:00
parent 1546f67367
commit e79f64c009
2 changed files with 18 additions and 37 deletions

View File

@@ -15,30 +15,24 @@ shared_examples "documentable" do |documentable_factory_name, documentable_path,
end end
end end
context "Show documents tab" do context "Show documents" do
scenario "Download action should be able to anyone" do scenario "Download action should be able to anyone" do
visit send(documentable_path, arguments) visit send(documentable_path, arguments)
within "#tab-documents" do expect(page).to have_link("Download file")
expect(page).to have_link("Download file")
end
end end
scenario "Download file link should have blank target attribute" do scenario "Download file link should have blank target attribute" do
visit send(documentable_path, arguments) visit send(documentable_path, arguments)
within "#tab-documents" do expect(page).to have_selector("a[target=_blank]", text: "Download file")
expect(page).to have_selector("a[target=_blank]", text: "Download file")
end
end end
scenario "Download file links should have rel attribute setted to no follow" do scenario "Download file links should have rel attribute setted to no follow" do
visit send(documentable_path, arguments) visit send(documentable_path, arguments)
within "#tab-documents" do expect(page).to have_selector("a[rel=nofollow]", text: "Download file")
expect(page).to have_selector("a[rel=nofollow]", text: "Download file")
end
end end
describe "Destroy action" do describe "Destroy action" do
@@ -46,36 +40,28 @@ shared_examples "documentable" do |documentable_factory_name, documentable_path,
scenario "Should not be able when no user logged in" do scenario "Should not be able when no user logged in" do
visit send(documentable_path, arguments) visit send(documentable_path, arguments)
within "#tab-documents" do expect(page).not_to have_link("Destroy document")
expect(page).not_to have_link("Destroy")
end
end end
scenario "Should be able when documentable author is logged in" do scenario "Should be able when documentable author is logged in" do
login_as documentable.author login_as documentable.author
visit send(documentable_path, arguments) visit send(documentable_path, arguments)
within "#tab-documents" do expect(page).to have_link("Destroy document")
expect(page).to have_link("Destroy")
end
end end
scenario "Administrators cannot destroy documentables they have not authored" do scenario "Administrators cannot destroy documentables they have not authored" do
login_as(administrator) login_as(administrator)
visit send(documentable_path, arguments) visit send(documentable_path, arguments)
within "#tab-documents" do expect(page).not_to have_link("Destroy document")
expect(page).not_to have_link("Destroy")
end
end end
scenario "Users cannot destroy documentables they have not authored" do scenario "Users cannot destroy documentables they have not authored" do
login_as(create(:user)) login_as(create(:user))
visit send(documentable_path, arguments) visit send(documentable_path, arguments)
within "#tab-documents" do expect(page).not_to have_link("Destroy document")
expect(page).not_to have_link("Destroy")
end
end end
end end
@@ -88,10 +74,9 @@ shared_examples "documentable" do |documentable_factory_name, documentable_path,
login_as documentable.author login_as documentable.author
visit send(documentable_path, arguments) visit send(documentable_path, arguments)
within "#tab-documents" do
within "#document_#{document.id}" do within "#document_#{document.id}" do
click_on "Destroy" click_on "Destroy document"
end
end end
expect(page).to have_content "Document was deleted successfully." expect(page).to have_content "Document was deleted successfully."
@@ -101,23 +86,21 @@ shared_examples "documentable" do |documentable_factory_name, documentable_path,
login_as documentable.author login_as documentable.author
visit send(documentable_path, arguments) visit send(documentable_path, arguments)
within "#tab-documents" do
within "#document_#{document.id}" do within "#document_#{document.id}" do
click_on "Destroy" click_on "Destroy document"
end
end end
expect(page).to have_link "Documents (0)" expect(page).to have_content "Documents (0)"
end end
scenario "Should redirect to documentable path after successful deletion" do scenario "Should redirect to documentable path after successful deletion" do
login_as documentable.author login_as documentable.author
visit send(documentable_path, arguments) visit send(documentable_path, arguments)
within "#tab-documents" do
within "#document_#{document.id}" do within "#document_#{document.id}" do
click_on "Destroy" click_on "Destroy document"
end
end end
within "##{dom_id(documentable)}" do within "##{dom_id(documentable)}" do

View File

@@ -195,8 +195,6 @@ shared_examples "nested documentable" do |login_as_name, documentable_factory_na
documentable_redirected_to_resource_show_or_navigate_to documentable_redirected_to_resource_show_or_navigate_to
expect(page).to have_content "Documents" expect(page).to have_content "Documents"
find("#tab-documents-label").click
expect(page).to have_content "empty.pdf" expect(page).to have_content "empty.pdf"
# Review # Review