1 # frozen_string_literal: true
3 require "application_system_test_case"
5 class ChangesetCommentsTest < ApplicationSystemTestCase
6 test "open changeset has a still open notice" do
7 changeset = create(:changeset)
8 sign_in_as(create(:user))
9 visit changeset_path(changeset)
12 assert_no_button "Comment"
13 assert_text "Changeset still open"
17 test "changeset has a login notice" do
18 changeset = create(:changeset, :closed)
19 visit changeset_path(changeset)
22 assert_no_button "Subscribe"
23 assert_no_button "Comment"
24 assert_link "Log in to join the discussion", :href => login_path(:referer => changeset_path(changeset))
28 test "can add a comment to a changeset" do
29 changeset = create(:changeset, :closed)
32 visit changeset_path(changeset)
35 assert_no_content "Comment from #{user.display_name}"
36 assert_no_content "Some newly added changeset comment"
37 assert_button "Comment", :disabled => true
39 fill_in "text", :with => "Some newly added changeset comment"
41 assert_button "Comment", :disabled => false
45 assert_content "Comment from #{user.display_name}"
46 assert_content "Some newly added changeset comment"
50 test "regular users can't hide comments" do
51 changeset = create(:changeset, :closed)
52 create(:changeset_comment, :changeset => changeset, :body => "Unwanted comment")
53 sign_in_as(create(:user))
54 visit changeset_path(changeset)
57 assert_text "Unwanted comment"
58 assert_no_button "hide"
62 test "moderators can hide comments" do
63 changeset = create(:changeset, :closed)
64 create(:changeset_comment, :changeset => changeset, :body => "Unwanted comment")
66 visit changeset_path(changeset)
69 assert_text "Unwanted comment"
72 sign_in_as(create(:moderator_user))
73 visit changeset_path(changeset)
76 assert_text "Unwanted comment"
77 assert_button "hide", :exact => true
78 assert_no_button "unhide", :exact => true
80 click_on "hide", :exact => true
82 assert_text "Unwanted comment"
83 assert_no_button "hide", :exact => true
84 assert_button "unhide", :exact => true
88 visit changeset_path(changeset)
91 assert_no_text "Unwanted comment"
95 test "moderators can unhide comments" do
96 changeset = create(:changeset, :closed)
97 create(:changeset_comment, :changeset => changeset, :body => "Wanted comment", :visible => false)
99 visit changeset_path(changeset)
102 assert_no_text "Wanted comment"
105 sign_in_as(create(:moderator_user))
106 visit changeset_path(changeset)
109 assert_text "Wanted comment"
110 assert_no_button "hide", :exact => true
111 assert_button "unhide", :exact => true
113 click_on "unhide", :exact => true
115 assert_text "Wanted comment"
116 assert_button "hide", :exact => true
117 assert_no_button "unhide", :exact => true
121 visit changeset_path(changeset)
124 assert_text "Wanted comment"
128 test "can subscribe" do
129 changeset = create(:changeset, :closed)
132 visit changeset_path(changeset)
135 assert_button "Subscribe"
136 assert_no_button "Unsubscribe"
140 assert_no_button "Subscribe"
141 assert_button "Unsubscribe"
145 test "can't subscribe when blocked" do
146 changeset = create(:changeset, :closed)
149 visit changeset_path(changeset)
150 create(:user_block, :user => user)
153 assert_no_text "Your access to the API has been blocked"
154 assert_button "Subscribe"
155 assert_no_button "Unsubscribe"
159 assert_text "Your access to the API has been blocked"
160 assert_button "Subscribe"
161 assert_no_button "Unsubscribe"