]> git.openstreetmap.org Git - rails.git/blob - test/models/redaction_test.rb
Merge pull request #5932 from tomhughes/frozen-strings
[rails.git] / test / models / redaction_test.rb
1 # frozen_string_literal: true
2
3 require "test_helper"
4
5 class RedactionTest < ActiveSupport::TestCase
6   def test_cannot_redact_current
7     n = create(:node)
8     r = create(:redaction)
9     assert_not_predicate(n, :redacted?, "Expected node to not be redacted already.")
10     assert_raise(OSM::APICannotRedactError) do
11       n.redact!(r)
12     end
13   end
14
15   def test_cannot_redact_current_via_old
16     node = create(:node, :with_history)
17     node_v1 = node.old_nodes.find_by(:version => 1)
18     r = create(:redaction)
19     assert_not_predicate(node_v1, :redacted?, "Expected node to not be redacted already.")
20     assert_raise(OSM::APICannotRedactError) do
21       node_v1.redact!(r)
22     end
23   end
24
25   def test_can_redact_old
26     node = create(:node, :with_history, :version => 2)
27     node_v1 = node.old_nodes.find_by(:version => 1)
28     node_v2 = node.old_nodes.find_by(:version => 2)
29     r = create(:redaction)
30
31     assert_not_predicate(node_v1, :redacted?, "Expected node to not be redacted already.")
32     assert_nothing_raised do
33       node_v1.redact!(r)
34     end
35     assert_predicate(node_v1, :redacted?, "Expected node version 1 to be redacted after redact! call.")
36     assert_not_predicate(node_v2, :redacted?, "Expected node version 2 to not be redacted after redact! call.")
37   end
38
39   def test_invalid_with_empty_title
40     redaction = build(:redaction, :title => "")
41     assert_not redaction.valid?
42     assert_includes redaction.errors.messages[:title], "can't be blank"
43   end
44
45   def test_invalid_with_empty_description
46     redaction = build(:redaction, :description => "")
47     assert_not redaction.valid?
48     assert_includes redaction.errors.messages[:description], "can't be blank"
49   end
50 end