enumerize 2.2.1 → 2.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ruby.yml +73 -0
- data/CHANGELOG.md +35 -1
- data/Gemfile +2 -3
- data/Gemfile.global +2 -10
- data/Gemfile.mongo_mapper +2 -3
- data/Gemfile.rails60 +6 -0
- data/Gemfile.rails61 +6 -0
- data/Gemfile.rails70 +9 -0
- data/Gemfile.railsmaster +5 -0
- data/README.md +205 -94
- data/Rakefile +2 -0
- data/lib/enumerize/activemodel.rb +2 -0
- data/lib/enumerize/activerecord.rb +36 -2
- data/lib/enumerize/attribute.rb +19 -11
- data/lib/enumerize/attribute_map.rb +2 -0
- data/lib/enumerize/base.rb +6 -6
- data/lib/enumerize/hooks/formtastic.rb +4 -1
- data/lib/enumerize/hooks/sequel_dataset.rb +2 -0
- data/lib/enumerize/hooks/simple_form.rb +4 -1
- data/lib/enumerize/hooks/uniqueness.rb +2 -0
- data/lib/enumerize/integrations/rails_admin.rb +2 -0
- data/lib/enumerize/integrations/rspec/matcher.rb +7 -2
- data/lib/enumerize/integrations/rspec.rb +2 -0
- data/lib/enumerize/module.rb +2 -0
- data/lib/enumerize/module_attributes.rb +2 -0
- data/lib/enumerize/mongoid.rb +16 -0
- data/lib/enumerize/predicatable.rb +3 -1
- data/lib/enumerize/predicates.rb +2 -0
- data/lib/enumerize/scope/activerecord.rb +16 -0
- data/lib/enumerize/scope/mongoid.rb +15 -0
- data/lib/enumerize/scope/sequel.rb +16 -0
- data/lib/enumerize/sequel.rb +9 -4
- data/lib/enumerize/set.rb +2 -0
- data/lib/enumerize/utils.rb +12 -0
- data/lib/enumerize/value.rb +14 -15
- data/lib/enumerize/version.rb +1 -1
- data/lib/enumerize.rb +4 -0
- data/lib/sequel/plugins/enumerize.rb +2 -0
- data/spec/enumerize/integrations/rspec/matcher_spec.rb +13 -10
- data/spec/spec_helper.rb +2 -0
- data/test/activemodel_test.rb +24 -22
- data/test/activerecord_test.rb +229 -92
- data/test/attribute_map_test.rb +9 -7
- data/test/attribute_test.rb +37 -30
- data/test/base_test.rb +38 -36
- data/test/formtastic_test.rb +17 -0
- data/test/module_attributes_test.rb +10 -8
- data/test/mongo_mapper_test.rb +19 -10
- data/test/mongoid_test.rb +51 -22
- data/test/multiple_test.rb +15 -7
- data/test/predicates_test.rb +20 -18
- data/test/rails_admin_test.rb +4 -2
- data/test/sequel_test.rb +100 -47
- data/test/set_test.rb +25 -23
- data/test/simple_form_test.rb +17 -0
- data/test/support/mock_controller.rb +2 -0
- data/test/support/shared_enums.rb +43 -0
- data/test/support/view_test_helper.rb +14 -1
- data/test/test_helper.rb +2 -0
- data/test/value_test.rb +51 -30
- metadata +11 -30
- data/.travis.yml +0 -35
- data/Gemfile.rails42 +0 -7
- data/Gemfile.rails50 +0 -7
- data/Gemfile.rails52 +0 -7
data/test/activemodel_test.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'test_helper'
|
2
4
|
|
3
5
|
if defined?(::ActiveModel::Attributes)
|
@@ -22,50 +24,50 @@ describe Enumerize do
|
|
22
24
|
|
23
25
|
it 'initialize value' do
|
24
26
|
user = model.new(:name => 'active_model_user', :sex => :male, :role => :user, :interests => [:music, :programming])
|
25
|
-
user.sex.must_equal 'male'
|
26
|
-
user.sex_text.must_equal 'Male'
|
27
|
-
user.role.must_equal 'user'
|
28
|
-
user.role_text.must_equal 'User'
|
29
|
-
user.interests.must_equal %w(music programming)
|
27
|
+
expect(user.sex).must_equal 'male'
|
28
|
+
expect(user.sex_text).must_equal 'Male'
|
29
|
+
expect(user.role).must_equal 'user'
|
30
|
+
expect(user.role_text).must_equal 'User'
|
31
|
+
expect(user.interests).must_equal %w(music programming)
|
30
32
|
end
|
31
33
|
|
32
34
|
it 'sets nil if invalid value is passed' do
|
33
35
|
user = model.new
|
34
36
|
user.sex = :invalid
|
35
|
-
user.sex.must_be_nil
|
37
|
+
expect(user.sex).must_be_nil
|
36
38
|
end
|
37
39
|
|
38
40
|
it 'stores value' do
|
39
41
|
user = model.new
|
40
42
|
user.sex = :female
|
41
|
-
user.sex.must_equal 'female'
|
43
|
+
expect(user.sex).must_equal 'female'
|
42
44
|
end
|
43
45
|
|
44
46
|
it 'has default value' do
|
45
|
-
model.new.role.must_equal 'user'
|
47
|
+
expect(model.new.role).must_equal 'user'
|
46
48
|
end
|
47
49
|
|
48
50
|
it 'validates inclusion' do
|
49
51
|
user = model.new
|
50
52
|
user.role = 'wrong'
|
51
|
-
user.wont_be :valid?
|
53
|
+
expect(user).wont_be :valid?
|
52
54
|
end
|
53
55
|
|
54
56
|
it 'supports multiple attributes' do
|
55
57
|
user = ActiveModelUser.new
|
56
|
-
user.interests.must_be_instance_of Enumerize::Set
|
57
|
-
user.interests.must_be_empty
|
58
|
+
expect(user.interests).must_be_instance_of Enumerize::Set
|
59
|
+
expect(user.interests).must_be_empty
|
58
60
|
user.interests << :music
|
59
|
-
user.interests.must_equal %w(music)
|
61
|
+
expect(user.interests).must_equal %w(music)
|
60
62
|
user.interests << :sports
|
61
|
-
user.interests.must_equal %w(music sports)
|
63
|
+
expect(user.interests).must_equal %w(music sports)
|
62
64
|
|
63
65
|
user.interests = []
|
64
66
|
interests = user.interests
|
65
67
|
interests << :music
|
66
|
-
interests.must_equal %w(music)
|
68
|
+
expect(interests).must_equal %w(music)
|
67
69
|
interests << :dancing
|
68
|
-
interests.must_equal %w(music dancing)
|
70
|
+
expect(interests).must_equal %w(music dancing)
|
69
71
|
end
|
70
72
|
|
71
73
|
it 'returns invalid multiple value for validation' do
|
@@ -73,19 +75,19 @@ describe Enumerize do
|
|
73
75
|
user.interests << :music
|
74
76
|
user.interests << :invalid
|
75
77
|
values = user.read_attribute_for_validation(:interests)
|
76
|
-
values.must_equal %w(music invalid)
|
78
|
+
expect(values).must_equal %w(music invalid)
|
77
79
|
end
|
78
80
|
|
79
81
|
it 'validates multiple attributes' do
|
80
82
|
user = ActiveModelUser.new
|
81
83
|
user.interests << :invalid
|
82
|
-
user.wont_be :valid?
|
84
|
+
expect(user).wont_be :valid?
|
83
85
|
|
84
86
|
user.interests = Object.new
|
85
|
-
user.wont_be :valid?
|
87
|
+
expect(user).wont_be :valid?
|
86
88
|
|
87
89
|
user.interests = ['music', '']
|
88
|
-
user.must_be :valid?
|
90
|
+
expect(user).must_be :valid?
|
89
91
|
end
|
90
92
|
|
91
93
|
it 'validates presence with multiple attributes' do
|
@@ -93,17 +95,17 @@ describe Enumerize do
|
|
93
95
|
user.interests = []
|
94
96
|
user.valid?
|
95
97
|
|
96
|
-
user.errors[:interests].wont_be :empty?
|
98
|
+
expect(user.errors[:interests]).wont_be :empty?
|
97
99
|
|
98
100
|
user.interests = ['']
|
99
101
|
user.valid?
|
100
102
|
|
101
|
-
user.errors[:interests].wont_be :empty?
|
103
|
+
expect(user.errors[:interests]).wont_be :empty?
|
102
104
|
|
103
105
|
user.interests = [:dancing, :programming]
|
104
106
|
user.valid?
|
105
107
|
|
106
|
-
user.errors[:interests].must_be_empty
|
108
|
+
expect(user.errors[:interests]).must_be_empty
|
107
109
|
end
|
108
110
|
end
|
109
111
|
|