closed_at + DEFAULT_FRESHLY_CLOSED_LIMIT
end
- # Return the note's description, derived from the first comment
+ # Return the note's description
def description
- if user_ip.nil? && user_id.nil?
- all_comments.first.body if all_comments.first&.event == "opened"
- else
- RichText.new("text", super)
- end
- end
-
- # Return the note's author object, derived from the first comment
- def author
- if user_ip.nil? && user_id.nil?
- all_comments.first.author if all_comments.first&.event == "opened"
- else
- super
- end
+ RichText.new("text", super)
end
private
second_user = create(:user)
third_user = create(:user)
- note_with_comments_by_users = create(:note) do |note|
+ note_with_comments_by_users = create(:note, :author => first_user) do |note|
create(:note_comment, :note => note, :author => first_user)
create(:note_comment, :note => note, :author => second_user)
end
factory :note_comment do
sequence(:body) { |n| "This is note comment #{n}" }
visible { true }
- event { "opened" }
+ event { "commented" }
note
end
end
factory :note do
latitude { 1 * GeoRecord::SCALE }
longitude { 1 * GeoRecord::SCALE }
- # tile { QuadTile.tile_for_point(1,1) }
+ description { "Default note's description" }
trait :closed do
transient do
end
after(:create) do |note, evaluator|
- create_list(:note_comment, evaluator.comments_count, :note => note)
+ create(:note_comment, :event => "opened", :note => note)
+ create_list(:note_comment, evaluator.comments_count - 1, :note => note)
end
end
end
def test_reported_user
create(:language, :code => "en")
user = create(:user)
- note = create(:note_comment, :author => create(:user)).note
- anonymous_note = create(:note_comment, :author => nil).note
+ note = create(:note, :author => create(:user))
+ anonymous_note = create(:note, :author => nil)
diary_entry = create(:diary_entry)
diary_comment = create(:diary_comment, :diary_entry => diary_entry)
end
def test_description
+ note = create(:note)
+ assert_equal "Default note's description", note.description
+
+ note = create(:note, :description => "Test description #1")
+ assert_equal "Test description #1", note.description
+
comment = create(:note_comment)
- assert_equal comment.body, comment.note.description
+ assert_equal "Default note's description", comment.note.description
- user = create(:user)
- comment = create(:note_comment, :author => user)
- assert_equal comment.body, comment.note.description
+ comment = create(:note_comment, :note => build(:note, :description => "Test description #2"))
+ assert_equal "Test description #2", comment.note.description
end
def test_author
+ user = create(:user)
+
+ note = create(:note, :author => user)
+ assert_equal user, note.author
+
comment = create(:note_comment)
assert_nil comment.note.author
- user = create(:user)
- comment = create(:note_comment, :author => user)
+ comment = create(:note_comment, :author => user, :note => build(:note, :author => user))
assert_equal user, comment.note.author
end
test "can navigate from hidden note to visible note" do
sign_in_as(create(:moderator_user))
- hidden_note = create(:note, :status => "hidden")
- create(:note_comment, :note => hidden_note, :body => "this-is-a-hidden-note")
+ hidden_note = create(:note, :status => "hidden", :description => "Hidden Note Description")
+ create(:note_comment, :note => hidden_note, :body => "this-is-a-hidden-note", :event => "opened")
position = (1.003 * GeoRecord::SCALE).to_i
- visible_note = create(:note, :latitude => position, :longitude => position)
- create(:note_comment, :note => visible_note, :body => "this-is-a-visible-note")
+ visible_note = create(:note, :latitude => position, :longitude => position, :description => "Visible Note Description")
+ create(:note_comment, :note => visible_note, :body => "this-is-a-visible-note", :event => "opened")
visit root_path(:anchor => "map=15/1/1") # view place of hidden note in case it is not rendered during note_path(hidden_note)
visit note_path(hidden_note)
find(".leaflet-control.control-layers .control-button").click
find("#map-ui .overlay-layers .form-check-label", :text => "Map Notes").click
visible_note_marker = find(".leaflet-marker-icon[title=this-is-a-visible-note]")
- assert_selector "#sidebar", :text => "this-is-a-hidden-note"
+ assert_selector "#sidebar", :text => "Hidden Note Description"
visible_note_marker.click
- assert_selector "#sidebar", :text => "this-is-a-visible-note"
+ assert_selector "#sidebar", :text => "Visible Note Description"
end
end
test "note marker should have description as a title" do
position = (1.1 * GeoRecord::SCALE).to_i
create(:note, :latitude => position, :longitude => position) do |note|
- create(:note_comment, :note => note, :body => "Note description")
+ create(:note_comment, :note => note, :body => "Note description", :event => "opened")
end
visit root_path(:anchor => "map=18/1.1/1.1&layers=N")
test "note marker should not have a title if the note has no visible description" do
position = (1.1 * GeoRecord::SCALE).to_i
create(:note, :latitude => position, :longitude => position) do |note|
- create(:note_comment, :note => note, :body => "Note description is hidden", :visible => false)
- create(:note_comment, :note => note, :body => "Note comment visible", :event => "commented")
+ create(:note_comment, :note => note, :body => "Note description is hidden", :event => "opened", :visible => false)
+ create(:note_comment, :note => note, :body => "Note comment visible")
end
visit root_path(:anchor => "map=18/1.1/1.1&layers=N")
test "note marker should not have a title if the note has no visible description and comments" do
position = (1.1 * GeoRecord::SCALE).to_i
create(:note, :latitude => position, :longitude => position) do |note|
- create(:note_comment, :note => note, :body => "Note description is hidden", :visible => false)
+ create(:note_comment, :note => note, :body => "Note description is hidden", :event => "opened", :visible => false)
end
visit root_path(:anchor => "map=18/1.1/1.1&layers=N")
end
def test_can_report_notes_with_author
- note = create(:note_comment, :author => create(:user)).note
+ user = create(:user)
+ note = create(:note_comment, :author => user, :note => build(:note, :author => user)).note
sign_in_as(create(:user))
visit note_path(note)