openstreetmap-website/test/models/note_test.rb
Andy Allan feb3b03227 Use model relations when creating objects from factories
Rather than passing around record ids explicitly, we can use the
model relations and pass around the models. This makes reading the
tests slightly simpler to read.
2016-10-19 11:32:08 +01:00

68 lines
1.8 KiB
Ruby

# -*- coding: utf-8 -*-
require "test_helper"
class NoteTest < ActiveSupport::TestCase
fixtures :users
def test_status_valid
ok = %w(open closed hidden)
bad = %w(expropriated fubared)
ok.each do |status|
note = create(:note)
note.status = status
assert note.valid?, "#{status} is invalid, when it should be"
end
bad.each do |status|
note = create(:note)
note.status = status
assert !note.valid?, "#{status} is valid when it shouldn't be"
end
end
def test_close
note = create(:note)
assert_equal "open", note.status
assert_nil note.closed_at
note.close
assert_equal "closed", note.status
assert_not_nil note.closed_at
end
def test_reopen
note = create(:note, :status => "closed", :closed_at => Time.now)
assert_equal "closed", note.status
assert_not_nil note.closed_at
note.reopen
assert_equal "open", note.status
assert_nil note.closed_at
end
def test_visible?
assert_equal true, create(:note, :status => "open").visible?
assert_equal true, create(:note, :status => "closed").visible?
assert_equal false, create(:note, :status => "hidden").visible?
end
def test_closed?
assert_equal true, create(:note, :status => "closed", :closed_at => Time.now).closed?
assert_equal false, create(:note, :status => "open", :closed_at => nil).closed?
end
def test_author
comment = create(:note_comment)
assert_nil comment.note.author
comment = create(:note_comment, :author => users(:normal_user))
assert_equal users(:normal_user), comment.note.author
end
def test_author_ip
comment = create(:note_comment)
assert_nil comment.note.author_ip
comment = create(:note_comment, :author_ip => IPAddr.new("192.168.1.1"))
assert_equal IPAddr.new("192.168.1.1"), comment.note.author_ip
end
end