]> git.openstreetmap.org Git - rails.git/blob - test/system/resolve_note_test.rb
Merge branch 'pull/5428'
[rails.git] / test / system / resolve_note_test.rb
1 require "application_system_test_case"
2
3 class ResolveNoteTest < ApplicationSystemTestCase
4   test "can resolve an open note" do
5     note = create(:note_with_comments)
6     user = create(:user)
7     sign_in_as(user)
8     visit note_path(note)
9
10     within_sidebar do
11       assert_button "Resolve"
12       assert_no_button "Comment & Resolve"
13       assert_no_button "Reactivate"
14
15       click_on "Resolve"
16
17       assert_content "Resolved note ##{note.id}"
18     end
19   end
20
21   test "can resolve an open note with a comment" do
22     note = create(:note_with_comments)
23     user = create(:user)
24     sign_in_as(user)
25     visit note_path(note)
26
27     within_sidebar do
28       assert_button "Resolve"
29       assert_no_button "Comment & Resolve"
30       assert_no_button "Reactivate"
31
32       fill_in "text", :with => "Note resolve text"
33
34       assert_button "Comment & Resolve"
35
36       click_on "Comment & Resolve"
37
38       assert_content "Resolved note ##{note.id}"
39       assert_content "Note resolve text"
40     end
41   end
42
43   test "can reactivate a closed note" do
44     note = create(:note_with_comments, :closed)
45     user = create(:user)
46     sign_in_as(user)
47     visit note_path(note)
48
49     within_sidebar do
50       assert_no_button "Resolve"
51       assert_no_button "Comment & Resolve"
52       assert_button "Reactivate"
53
54       click_on "Reactivate"
55
56       assert_content "Unresolved note ##{note.id}"
57       assert_no_content "<iframe" # leak from share textarea
58     end
59   end
60
61   test "can hide an open note as moderator" do
62     note = create(:note_with_comments)
63     user = create(:moderator_user)
64     sign_in_as(user)
65     visit note_path(note)
66
67     within_sidebar do
68       assert_button "Hide"
69
70       click_on "Hide"
71
72       assert_content "Hidden note ##{note.id}"
73     end
74   end
75
76   test "can hide a closed note as moderator" do
77     note = create(:note_with_comments, :closed)
78     user = create(:moderator_user)
79     sign_in_as(user)
80     visit note_path(note)
81
82     within_sidebar do
83       assert_button "Hide"
84
85       click_on "Hide"
86
87       assert_content "Hidden note ##{note.id}"
88       assert_no_content "<iframe" # leak from share textarea
89     end
90   end
91
92   test "can't resolve a note when blocked" do
93     note = create(:note_with_comments)
94     user = create(:user)
95     sign_in_as(user)
96     visit note_path(note)
97     create(:user_block, :user => user)
98
99     within_sidebar do
100       assert_text "Unresolved note"
101       assert_no_text "Resolved note"
102       assert_no_text "Your access to the API has been blocked"
103       assert_button "Resolve", :disabled => false
104       assert_button "Comment", :disabled => true
105
106       click_on "Resolve"
107
108       assert_text "Unresolved note"
109       assert_no_text "Resolved note"
110       assert_text "Your access to the API has been blocked"
111       assert_button "Resolve", :disabled => false
112       assert_button "Comment", :disabled => true
113     end
114   end
115
116   test "can't reactivate a note when blocked" do
117     note = create(:note_with_comments, :closed)
118     user = create(:user)
119     sign_in_as(user)
120     visit note_path(note)
121     create(:user_block, :user => user)
122
123     within_sidebar do
124       assert_no_text "Unresolved note"
125       assert_text "Resolved note"
126       assert_no_text "Your access to the API has been blocked"
127       assert_button "Reactivate", :disabled => false
128
129       click_on "Reactivate"
130
131       assert_no_text "Unresolved note"
132       assert_text "Resolved note"
133       assert_text "Your access to the API has been blocked"
134       assert_button "Reactivate", :disabled => false
135     end
136   end
137 end