]> git.openstreetmap.org Git - rails.git/blob - test/models/user_preference_test.rb
Add frozen_string_literal comments to ruby files
[rails.git] / test / models / user_preference_test.rb
1 # frozen_string_literal: true
2
3 require "test_helper"
4
5 class UserPreferenceTest < ActiveSupport::TestCase
6   # Checks that you cannot add a new preference, that is a duplicate
7   def test_add_duplicate_preference
8     up = create(:user_preference)
9     new_up = build(:user_preference)
10     new_up.user = up.user
11     new_up.k = up.k
12     new_up.v = "some other value"
13     assert_not_equal new_up.v, up.v
14     assert_raise(ActiveRecord::RecordNotUnique) { new_up.save }
15   end
16
17   def test_check_valid_length
18     key = "k"
19     val = "v"
20     [1, 255].each do |i|
21       up = build(:user_preference)
22       up.user = create(:user)
23       up.k = key * i
24       up.v = val * i
25       assert_predicate up, :valid?
26       assert up.save!
27       resp = UserPreference.find(up.id)
28       assert_equal key * i, resp.k, "User preference with #{i} #{key} chars (i.e. #{key.length * i} bytes) fails"
29       assert_equal val * i, resp.v, "User preference with #{i} #{val} chars (i.e. #{val.length * i} bytes) fails"
30     end
31   end
32
33   def test_check_invalid_length
34     key = "k"
35     val = "v"
36     [0, 256].each do |i|
37       up = build(:user_preference)
38       up.user = create(:user)
39       up.k = key * i
40       up.v = val * i
41       assert_not_predicate up, :valid?
42       assert_raise(ActiveRecord::RecordInvalid) { up.save! }
43     end
44   end
45 end