1 # frozen_string_literal: true
5 class ChangesetTagTest < ActiveSupport::TestCase
6 def test_length_key_valid
7 tag = create(:changeset_tag)
10 assert_predicate tag, :valid?
14 def test_length_value_valid
15 tag = create(:changeset_tag)
18 assert_predicate tag, :valid?
22 def test_length_key_invalid
23 tag = create(:changeset_tag)
25 assert_not_predicate tag, :valid?, "Key should be too long"
26 assert_predicate tag.errors[:k], :any?
29 def test_length_value_invalid
30 tag = create(:changeset_tag)
32 assert_not_predicate tag, :valid?, "Value should be too long"
33 assert_predicate tag.errors[:v], :any?
36 def test_orphaned_tag_invalid
37 tag = create(:changeset_tag)
39 assert_not_predicate tag, :valid?, "Orphaned tag should be invalid"
40 assert_predicate tag.errors[:changeset], :any?
44 existing = create(:changeset_tag)
45 tag = build(:changeset_tag, :changeset => existing.changeset, :k => existing.k, :v => existing.v)
46 assert_predicate tag, :new_record?
47 assert_not_predicate tag, :valid?
48 assert_raise(ActiveRecord::RecordInvalid) { tag.save! }
49 assert_predicate tag, :new_record?