]> git.openstreetmap.org Git - rails.git/blob - test/system/note_comments_test.rb
Merge remote-tracking branch 'upstream/pull/5420'
[rails.git] / test / system / note_comments_test.rb
1 require "application_system_test_case"
2
3 class NoteCommentsTest < ApplicationSystemTestCase
4   test "open note has login notice" do
5     note = create(:note_with_comments)
6     visit note_path(note)
7
8     within_sidebar do
9       assert_no_button "Resolve"
10       assert_no_button "Comment"
11       assert_link "Log in to comment on this note", :href => login_path(:referer => note_path(note))
12     end
13   end
14
15   test "closed note has no login notice" do
16     note = create(:note_with_comments, :closed)
17     visit note_path(note)
18
19     within_sidebar do
20       assert_no_button "Reactivate"
21       assert_no_link "Log in to comment on this note"
22     end
23   end
24
25   test "can add comment" do
26     note = create(:note_with_comments)
27     user = create(:user)
28     sign_in_as(user)
29     visit note_path(note)
30
31     within_sidebar do
32       assert_no_content "Comment from #{user.display_name}"
33       assert_no_content "Some newly added note comment"
34       assert_button "Resolve"
35       assert_button "Comment", :disabled => true
36
37       fill_in "text", :with => "Some newly added note comment"
38
39       assert_button "Comment & Resolve"
40       assert_button "Comment", :disabled => false
41
42       click_on "Comment"
43
44       assert_content "Comment from #{user.display_name}"
45       assert_content "Some newly added note comment"
46     end
47   end
48
49   test "can't add a comment when blocked" do
50     note = create(:note_with_comments)
51     user = create(:user)
52     sign_in_as(user)
53     visit note_path(note)
54     block = create(:user_block, :user => user)
55
56     within_sidebar do
57       fill_in "text", :with => "Comment that won't be added while blocked"
58
59       assert_no_text "Comment from #{user.display_name}"
60       assert_no_text "Comment that won't be added while blocked"
61       assert_no_text "Your access to the API has been blocked"
62       assert_button "Comment & Resolve", :disabled => false
63       assert_button "Comment", :disabled => false
64
65       click_on "Comment"
66
67       assert_no_text "Comment from #{user.display_name}"
68       assert_no_text "Comment that won't be added while blocked"
69       assert_text "Your access to the API has been blocked"
70       assert_button "Comment & Resolve", :disabled => false
71       assert_button "Comment", :disabled => false
72
73       block.revoke! block.creator
74
75       click_on "Comment"
76
77       assert_text "Comment from #{user.display_name}"
78       assert_text "Comment that won't be added while blocked"
79       assert_no_text "Your access to the API has been blocked"
80     end
81   end
82
83   test "no subscribe button when not logged in" do
84     note = create(:note_with_comments)
85     visit note_path(note)
86
87     within_sidebar do
88       assert_no_button "Subscribe"
89       assert_no_button "Unsubscribe"
90     end
91   end
92
93   test "can subscribe" do
94     note = create(:note_with_comments)
95     user = create(:user)
96     sign_in_as(user)
97     visit note_path(note)
98
99     within_sidebar do
100       assert_button "Subscribe"
101       assert_no_button "Unsubscribe"
102
103       click_on "Subscribe"
104
105       assert_no_button "Subscribe"
106       assert_button "Unsubscribe"
107     end
108   end
109
110   test "can unsubscribe" do
111     note = create(:note_with_comments)
112     user = create(:user)
113     create(:note_subscription, :note => note, :user => user)
114     sign_in_as(user)
115     visit note_path(note)
116
117     within_sidebar do
118       assert_no_button "Subscribe"
119       assert_button "Unsubscribe"
120
121       click_on "Unsubscribe"
122
123       assert_button "Subscribe"
124       assert_no_button "Unsubscribe"
125     end
126   end
127 end