docbrown/spec/system/comments/user_edits_a_comment_spec.rb
Mac Siri fc39f24ee3 Migrate feature test to system test (#2301)
* Move all features to system

* Remove database_cleaner & apply use_transactional_fixtures

* Move rspec-retry to :test

* Update Capybara config

* Update rails_helper

* Fix user_visits_a_comments_page_spec.rb

* Fix lint
2019-04-04 12:15:10 -04:00

45 lines
1.2 KiB
Ruby

require "rails_helper"
RSpec.describe "Editing A Comment", type: :system, js: true do
let(:user) { create(:user) }
let!(:article) { create(:article, show_comments: true) }
let(:new_comment_text) { Faker::Lorem.paragraph }
let!(:comment) { create(:comment, commentable: article, user: user, body_markdown: Faker::Lorem.paragraph) }
before do
Notification.send_new_comment_notifications(comment)
sign_in user
end
def assert_updated
expect(page).to have_css("textarea[autofocus='autofocus']")
fill_in "text-area", with: new_comment_text
click_button("SUBMIT")
expect(page).to have_text(new_comment_text)
end
context "when user edits comment on the bottom of the article" do
it "updates" do
visit article.path.to_s
click_link("EDIT")
assert_updated
end
end
context "when user edits via permalinks" do
it "updates" do
user.reload
visit user.comments.last.path.to_s
click_link("EDIT")
assert_updated
end
end
context "when user edits via direct path (no referer)" do
it "cancels to the article page" do
user.reload
visit "#{comment.path}/edit"
expect(page).to have_link("CANCEL", href: article.path.to_s)
end
end
end