require "application_system_test_case"
class NoteCommentsTest < ApplicationSystemTestCase
- def test_action_text
+ test "open note has login notice" do
note = create(:note_with_comments)
- sign_in_as(create(:user))
visit note_path(note)
- assert_button "Resolve"
- assert_button "Comment", :disabled => true
+ within_sidebar do
+ assert_no_button "Resolve"
+ assert_no_button "Comment"
+ assert_link "Log in to comment on this note", :href => login_path(:referer => note_path(note))
+ end
+ end
+
+ test "closed note has no login notice" do
+ note = create(:note_with_comments, :closed)
+ visit note_path(note)
+
+ within_sidebar do
+ assert_no_button "Reactivate"
+ assert_no_link "Log in to comment on this note"
+ end
+ end
+
+ def test_add_comment
+ note = create(:note_with_comments)
+ user = create(:user)
+ sign_in_as(user)
+ visit note_path(note)
+
+ within_sidebar do
+ assert_no_content "Comment from #{user.display_name}"
+ assert_no_content "Some newly added note comment"
+ assert_button "Resolve"
+ assert_button "Comment", :disabled => true
+
+ fill_in "text", :with => "Some newly added note comment"
+
+ assert_button "Comment & Resolve"
+ assert_button "Comment", :disabled => false
+
+ click_on "Comment"
+
+ assert_content "Comment from #{user.display_name}"
+ assert_content "Some newly added note comment"
+ end
+ end
+
+ test "can't add a comment when blocked" do
+ note = create(:note_with_comments)
+ user = create(:user)
+ sign_in_as(user)
+ visit note_path(note)
+ block = create(:user_block, :user => user)
+
+ within_sidebar do
+ fill_in "text", :with => "Comment that won't be added while blocked"
+
+ assert_no_text "Comment from #{user.display_name}"
+ assert_no_text "Comment that won't be added while blocked"
+ assert_no_text "Your access to the API has been blocked"
+ assert_button "Comment & Resolve", :disabled => false
+ assert_button "Comment", :disabled => false
+
+ click_on "Comment"
+
+ assert_no_text "Comment from #{user.display_name}"
+ assert_no_text "Comment that won't be added while blocked"
+ assert_text "Your access to the API has been blocked"
+ assert_button "Comment & Resolve", :disabled => false
+ assert_button "Comment", :disabled => false
+
+ block.revoke! block.creator
+
+ click_on "Comment"
+
+ assert_text "Comment from #{user.display_name}"
+ assert_text "Comment that won't be added while blocked"
+ assert_no_text "Your access to the API has been blocked"
+ end
+ end
+
+ test "can't resolve a note when blocked" do
+ note = create(:note_with_comments)
+ user = create(:user)
+ sign_in_as(user)
+ visit note_path(note)
+ create(:user_block, :user => user)
+
+ within_sidebar do
+ assert_text "Unresolved note"
+ assert_no_text "Resolved note"
+ assert_no_text "Your access to the API has been blocked"
+ assert_button "Resolve", :disabled => false
+ assert_button "Comment", :disabled => true
+
+ click_on "Resolve"
+
+ assert_text "Unresolved note"
+ assert_no_text "Resolved note"
+ assert_text "Your access to the API has been blocked"
+ assert_button "Resolve", :disabled => false
+ assert_button "Comment", :disabled => true
+ end
+ end
+
+ test "can't reactivate a note when blocked" do
+ note = create(:note_with_comments, :closed)
+ user = create(:user)
+ sign_in_as(user)
+ visit note_path(note)
+ create(:user_block, :user => user)
+
+ within_sidebar do
+ assert_no_text "Unresolved note"
+ assert_text "Resolved note"
+ assert_no_text "Your access to the API has been blocked"
+ assert_button "Reactivate", :disabled => false
- fill_in "text", :with => "Some text"
+ click_on "Reactivate"
- assert_button "Comment & Resolve"
- assert_button "Comment"
+ assert_no_text "Unresolved note"
+ assert_text "Resolved note"
+ assert_text "Your access to the API has been blocked"
+ assert_button "Reactivate", :disabled => false
+ end
end
end