128 lines
3.8 KiB
Ruby
128 lines
3.8 KiB
Ruby
require "application_system_test_case"
|
|
|
|
class NoteCommentsTest < ApplicationSystemTestCase
|
|
test "open note has login notice" do
|
|
note = create(:note_with_comments)
|
|
visit note_path(note)
|
|
|
|
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
|
|
|
|
click_on "Reactivate"
|
|
|
|
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
|