rails_admin 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of rails_admin might be problematic. Click here for more details.
- data/README.md +8 -57
- data/app/assets/stylesheets/rails_admin/base/{README → README.txt} +1 -1
- data/app/assets/stylesheets/rails_admin/imports.css.scss.erb +4 -2
- data/app/assets/stylesheets/rails_admin/themes/cerulean/theming.css.scss +2 -2
- data/app/helpers/rails_admin/application_helper.rb +22 -28
- data/app/views/rails_admin/main/_form_filtering_multiselect.html.haml +1 -1
- data/app/views/rails_admin/main/_form_filtering_select.html.haml +1 -1
- data/lib/generators/rails_admin/install_generator.rb +4 -3
- data/lib/rails_admin/adapters/mongoid.rb +2 -1
- data/lib/rails_admin/engine.rb +1 -0
- data/lib/rails_admin/version.rb +1 -1
- data/spec/controllers/application_controller_spec.rb +4 -4
- data/spec/controllers/main_controller_spec.rb +26 -26
- data/spec/dummy_app/config/routes.rb +1 -1
- data/spec/dummy_app/db/test.sqlite3 +0 -0
- data/spec/dummy_app/log/test.log +161818 -0
- data/spec/helpers/application_helper_spec.rb +46 -46
- data/spec/helpers/form_builder_spec.rb +2 -2
- data/spec/integration/authorization/cancan_spec.rb +22 -22
- data/spec/integration/basic/bulk_destroy/rails_admin_basic_bulk_destroy_spec.rb +6 -6
- data/spec/integration/basic/create/rails_admin_basic_create_spec.rb +16 -16
- data/spec/integration/basic/delete/rails_admin_basic_delete_spec.rb +1 -1
- data/spec/integration/basic/destroy/rails_admin_basic_destroy_spec.rb +6 -6
- data/spec/integration/basic/edit/rails_admin_basic_edit_spec.rb +8 -8
- data/spec/integration/basic/export/rails_admin_basic_export_spec.rb +10 -10
- data/spec/integration/basic/list/rails_admin_basic_list_spec.rb +16 -16
- data/spec/integration/basic/new/rails_admin_basic_new_spec.rb +3 -3
- data/spec/integration/basic/new/rails_admin_namespaced_model_new_spec.rb +2 -2
- data/spec/integration/basic/show/rails_admin_basic_show_spec.rb +1 -2
- data/spec/integration/basic/update/rails_admin_basic_update_spec.rb +27 -27
- data/spec/integration/config/edit/rails_admin_config_edit_spec.rb +45 -45
- data/spec/integration/config/list/rails_admin_config_list_spec.rb +35 -38
- data/spec/integration/config/show/rails_admin_config_show_spec.rb +2 -2
- data/spec/integration/history/rails_admin_history_spec.rb +9 -9
- data/spec/integration/rails_admin_spec.rb +4 -4
- data/spec/integration/relation_spec.rb +3 -3
- data/spec/spec_helper.rb +3 -1
- data/spec/unit/abstract_model_spec.rb +10 -10
- data/spec/unit/active_record_extension_spec.rb +1 -1
- data/spec/unit/adapters/active_record/abstract_object_spec.rb +24 -24
- data/spec/unit/adapters/active_record_spec.rb +131 -132
- data/spec/unit/adapters/mongoid/abstract_object_spec.rb +5 -5
- data/spec/unit/adapters/mongoid_spec.rb +180 -180
- data/spec/unit/config/actions/base_spec.rb +6 -6
- data/spec/unit/config/actions_spec.rb +31 -32
- data/spec/unit/config/fields/base_spec.rb +69 -70
- data/spec/unit/config/fields/date_spec.rb +5 -5
- data/spec/unit/config/fields/datetime_spec.rb +4 -4
- data/spec/unit/config/fields/time_spec.rb +3 -3
- data/spec/unit/config/fields/timestamp_spec.rb +1 -1
- data/spec/unit/config/model_spec.rb +12 -12
- data/spec/unit/config/sections_spec.rb +17 -17
- data/spec/unit/config_spec.rb +23 -24
- data/spec/unit/support/csv_converter_spec.rb +2 -2
- metadata +19 -3
@@ -11,9 +11,9 @@ describe RailsAdmin::Config::Actions::Base do
|
|
11
11
|
end
|
12
12
|
end
|
13
13
|
end
|
14
|
-
RailsAdmin::Config::Actions.find(:index, {:controller => double(:authorized? => true), :abstract_model => RailsAdmin::AbstractModel.new(Player)}).
|
15
|
-
RailsAdmin::Config::Actions.find(:index, {:controller => double(:authorized? => true), :abstract_model => RailsAdmin::AbstractModel.new(Team)}).
|
16
|
-
RailsAdmin::Config::Actions.find(:index, {:controller => double(:authorized? => true), :abstract_model => RailsAdmin::AbstractModel.new(Cms::BasicPage)}).
|
14
|
+
expect(RailsAdmin::Config::Actions.find(:index, {:controller => double(:authorized? => true), :abstract_model => RailsAdmin::AbstractModel.new(Player)})).to be_visible
|
15
|
+
expect(RailsAdmin::Config::Actions.find(:index, {:controller => double(:authorized? => true), :abstract_model => RailsAdmin::AbstractModel.new(Team)})).to be_nil
|
16
|
+
expect(RailsAdmin::Config::Actions.find(:index, {:controller => double(:authorized? => true), :abstract_model => RailsAdmin::AbstractModel.new(Cms::BasicPage)})).to be_visible
|
17
17
|
end
|
18
18
|
|
19
19
|
it 'should exclude models referenced in the except array' do
|
@@ -24,9 +24,9 @@ describe RailsAdmin::Config::Actions::Base do
|
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
27
|
-
RailsAdmin::Config::Actions.find(:index, {:controller => double(:authorized? => true), :abstract_model => RailsAdmin::AbstractModel.new(Player)}).
|
28
|
-
RailsAdmin::Config::Actions.find(:index, {:controller => double(:authorized? => true), :abstract_model => RailsAdmin::AbstractModel.new(Team)}).
|
29
|
-
RailsAdmin::Config::Actions.find(:index, {:controller => double(:authorized? => true), :abstract_model => RailsAdmin::AbstractModel.new(Cms::BasicPage)}).
|
27
|
+
expect(RailsAdmin::Config::Actions.find(:index, {:controller => double(:authorized? => true), :abstract_model => RailsAdmin::AbstractModel.new(Player)})).to be_nil
|
28
|
+
expect(RailsAdmin::Config::Actions.find(:index, {:controller => double(:authorized? => true), :abstract_model => RailsAdmin::AbstractModel.new(Team)})).to be_visible
|
29
|
+
expect(RailsAdmin::Config::Actions.find(:index, {:controller => double(:authorized? => true), :abstract_model => RailsAdmin::AbstractModel.new(Cms::BasicPage)})).to be_nil
|
30
30
|
end
|
31
31
|
end
|
32
32
|
end
|
@@ -4,7 +4,7 @@ describe RailsAdmin::Config::Actions do
|
|
4
4
|
|
5
5
|
describe "default" do
|
6
6
|
it 'should be as before' do
|
7
|
-
RailsAdmin::Config::Actions.all.map(&:key).
|
7
|
+
expect(RailsAdmin::Config::Actions.all.map(&:key)).to eq([:dashboard, :index, :show, :new, :edit, :export, :delete, :bulk_delete, :history_show, :history_index, :show_in_app])
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
@@ -22,13 +22,13 @@ describe RailsAdmin::Config::Actions do
|
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
|
-
RailsAdmin::Config::Actions.find(:custom_dashboard).
|
26
|
-
RailsAdmin::Config::Actions.find(:custom_collection).
|
27
|
-
RailsAdmin::Config::Actions.find(:show).
|
25
|
+
expect(RailsAdmin::Config::Actions.find(:custom_dashboard)).to be_a(RailsAdmin::Config::Actions::Dashboard)
|
26
|
+
expect(RailsAdmin::Config::Actions.find(:custom_collection)).to be_a(RailsAdmin::Config::Actions::Index)
|
27
|
+
expect(RailsAdmin::Config::Actions.find(:show)).to be_a(RailsAdmin::Config::Actions::Show)
|
28
28
|
end
|
29
29
|
|
30
30
|
it 'should return nil when no action is found by the custom key' do
|
31
|
-
RailsAdmin::Config::Actions.find(:non_existent_action_key).
|
31
|
+
expect(RailsAdmin::Config::Actions.find(:non_existent_action_key)).to be_nil
|
32
32
|
end
|
33
33
|
|
34
34
|
it 'should return visible action passing binding if controller binding is given, and pass action visible or not if no' do
|
@@ -41,9 +41,9 @@ describe RailsAdmin::Config::Actions do
|
|
41
41
|
end
|
42
42
|
end
|
43
43
|
end
|
44
|
-
RailsAdmin::Config::Actions.find(:custom_root).
|
45
|
-
RailsAdmin::Config::Actions.find(:custom_root, {:controller => "not_controller"}).
|
46
|
-
RailsAdmin::Config::Actions.find(:custom_root, {:controller => "controller"}).
|
44
|
+
expect(RailsAdmin::Config::Actions.find(:custom_root)).to be_a(RailsAdmin::Config::Actions::Base)
|
45
|
+
expect(RailsAdmin::Config::Actions.find(:custom_root, {:controller => "not_controller"})).to be_nil
|
46
|
+
expect(RailsAdmin::Config::Actions.find(:custom_root, {:controller => "controller"})).to be_a(RailsAdmin::Config::Actions::Base)
|
47
47
|
end
|
48
48
|
|
49
49
|
it 'should check bindings[:abstract_model] visibility while checking action\'s visibility' do
|
@@ -51,16 +51,16 @@ describe RailsAdmin::Config::Actions do
|
|
51
51
|
hide
|
52
52
|
end
|
53
53
|
|
54
|
-
RailsAdmin::Config::Actions.find(:index, {:controller => double(:authorized? => true), :abstract_model => RailsAdmin::AbstractModel.new(Comment)}).
|
55
|
-
RailsAdmin::Config::Actions.find(:index, {:controller => double(:authorized? => true), :abstract_model => RailsAdmin::AbstractModel.new(Team)}).
|
54
|
+
expect(RailsAdmin::Config::Actions.find(:index, {:controller => double(:authorized? => true), :abstract_model => RailsAdmin::AbstractModel.new(Comment)})).to be_a(RailsAdmin::Config::Actions::Index) #decoy
|
55
|
+
expect(RailsAdmin::Config::Actions.find(:index, {:controller => double(:authorized? => true), :abstract_model => RailsAdmin::AbstractModel.new(Team)})).to be_nil
|
56
56
|
end
|
57
57
|
|
58
58
|
it 'should check bindings[:abstract_model] presence while checking action\'s visibility' do
|
59
59
|
RailsAdmin.config do |config|
|
60
60
|
config.excluded_models << Team
|
61
61
|
end
|
62
|
-
RailsAdmin::Config::Actions.find(:index, {:controller => double(:authorized? => true), :abstract_model => RailsAdmin::AbstractModel.new(Comment)}).
|
63
|
-
RailsAdmin::Config::Actions.find(:index, {:controller => double(:authorized? => true), :abstract_model => RailsAdmin::AbstractModel.new(Team)}).
|
62
|
+
expect(RailsAdmin::Config::Actions.find(:index, {:controller => double(:authorized? => true), :abstract_model => RailsAdmin::AbstractModel.new(Comment)})).to be_a(RailsAdmin::Config::Actions::Index) #decoy
|
63
|
+
expect(RailsAdmin::Config::Actions.find(:index, {:controller => double(:authorized? => true), :abstract_model => RailsAdmin::AbstractModel.new(Team)})).to be_nil
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
@@ -73,7 +73,7 @@ describe RailsAdmin::Config::Actions do
|
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
76
|
-
RailsAdmin::Config::Actions.all.map(&:key).
|
76
|
+
expect(RailsAdmin::Config::Actions.all.map(&:key)).to eq([:dashboard, :index])
|
77
77
|
end
|
78
78
|
|
79
79
|
it 'should restrict by scope' do
|
@@ -84,9 +84,9 @@ describe RailsAdmin::Config::Actions do
|
|
84
84
|
member :custom_member
|
85
85
|
end
|
86
86
|
end
|
87
|
-
RailsAdmin::Config::Actions.all(:root).map(&:key).
|
88
|
-
RailsAdmin::Config::Actions.all(:collection).map(&:key).
|
89
|
-
RailsAdmin::Config::Actions.all(:member).map(&:key).
|
87
|
+
expect(RailsAdmin::Config::Actions.all(:root).map(&:key)).to eq([:custom_root])
|
88
|
+
expect(RailsAdmin::Config::Actions.all(:collection).map(&:key)).to eq([:custom_collection])
|
89
|
+
expect(RailsAdmin::Config::Actions.all(:member).map(&:key)).to eq([:custom_member])
|
90
90
|
end
|
91
91
|
|
92
92
|
it 'should return all visible actions passing binding if controller binding is given, and pass all actions if no' do
|
@@ -99,9 +99,9 @@ describe RailsAdmin::Config::Actions do
|
|
99
99
|
end
|
100
100
|
end
|
101
101
|
end
|
102
|
-
RailsAdmin::Config::Actions.all(:root).map(&:custom_key).
|
103
|
-
RailsAdmin::Config::Actions.all(:root, {:controller => "not_controller"}).map(&:custom_key).
|
104
|
-
RailsAdmin::Config::Actions.all(:root, {:controller => "controller"}).map(&:custom_key).
|
102
|
+
expect(RailsAdmin::Config::Actions.all(:root).map(&:custom_key)).to eq([:custom_root])
|
103
|
+
expect(RailsAdmin::Config::Actions.all(:root, {:controller => "not_controller"}).map(&:custom_key)).to eq([])
|
104
|
+
expect(RailsAdmin::Config::Actions.all(:root, {:controller => "controller"}).map(&:custom_key)).to eq([:custom_root])
|
105
105
|
end
|
106
106
|
end
|
107
107
|
|
@@ -115,7 +115,7 @@ describe RailsAdmin::Config::Actions do
|
|
115
115
|
end
|
116
116
|
end
|
117
117
|
|
118
|
-
RailsAdmin::Config::Actions.all.map(&:key).
|
118
|
+
expect(RailsAdmin::Config::Actions.all.map(&:key)).to eq([:dashboard, :index, :show])
|
119
119
|
end
|
120
120
|
|
121
121
|
it 'should allow to customize the custom_key when customizing an existing action' do
|
@@ -126,8 +126,8 @@ describe RailsAdmin::Config::Actions do
|
|
126
126
|
end
|
127
127
|
end
|
128
128
|
end
|
129
|
-
RailsAdmin::Config::Actions.all.map(&:custom_key).
|
130
|
-
RailsAdmin::Config::Actions.all.map(&:key).
|
129
|
+
expect(RailsAdmin::Config::Actions.all.map(&:custom_key)).to eq([:my_dashboard])
|
130
|
+
expect(RailsAdmin::Config::Actions.all.map(&:key)).to eq([:dashboard])
|
131
131
|
end
|
132
132
|
|
133
133
|
it 'should allow to change the key and the custom_key when "subclassing" an existing action' do
|
@@ -138,30 +138,29 @@ describe RailsAdmin::Config::Actions do
|
|
138
138
|
end
|
139
139
|
end
|
140
140
|
end
|
141
|
-
RailsAdmin::Config::Actions.all.map(&:custom_key).
|
142
|
-
RailsAdmin::Config::Actions.all.map(&:key).
|
143
|
-
RailsAdmin::Config::Actions.all.map(&:class).
|
141
|
+
expect(RailsAdmin::Config::Actions.all.map(&:custom_key)).to eq([:my_dashboard_custom_key])
|
142
|
+
expect(RailsAdmin::Config::Actions.all.map(&:key)).to eq([:my_dashboard_key])
|
143
|
+
expect(RailsAdmin::Config::Actions.all.map(&:class)).to eq([RailsAdmin::Config::Actions::Dashboard])
|
144
144
|
end
|
145
145
|
|
146
146
|
it 'should not add the same custom_key twice' do
|
147
|
-
|
147
|
+
expect do
|
148
148
|
RailsAdmin.config do |config|
|
149
149
|
config.actions do
|
150
150
|
dashboard
|
151
151
|
dashboard
|
152
152
|
end
|
153
153
|
end
|
154
|
-
end.
|
154
|
+
end.to raise_error("Action dashboard already exist. Please change its custom key")
|
155
155
|
|
156
|
-
|
157
|
-
lambda do
|
156
|
+
expect do
|
158
157
|
RailsAdmin.config do |config|
|
159
158
|
config.actions do
|
160
159
|
index
|
161
160
|
collection :index
|
162
161
|
end
|
163
162
|
end
|
164
|
-
end.
|
163
|
+
end.to raise_error("Action index already exist. Please change its custom key")
|
165
164
|
end
|
166
165
|
|
167
166
|
it 'should add the same key with different custom key' do
|
@@ -174,8 +173,8 @@ describe RailsAdmin::Config::Actions do
|
|
174
173
|
end
|
175
174
|
end
|
176
175
|
|
177
|
-
RailsAdmin::Config::Actions.all.map(&:custom_key).
|
178
|
-
RailsAdmin::Config::Actions.all.map(&:key).
|
176
|
+
expect(RailsAdmin::Config::Actions.all.map(&:custom_key)).to eq([:dashboard, :my_dashboard])
|
177
|
+
expect(RailsAdmin::Config::Actions.all.map(&:key)).to eq([:dashboard, :dashboard])
|
179
178
|
end
|
180
179
|
end
|
181
180
|
end
|
@@ -7,9 +7,9 @@ describe RailsAdmin::Config::Fields::Base do
|
|
7
7
|
RailsAdmin.config Ball do
|
8
8
|
field 'color'
|
9
9
|
end
|
10
|
-
|
11
|
-
RailsAdmin.config('Ball').fields.first.with(:object => Ball.new).
|
12
|
-
RailsAdmin.config('Ball').fields.first.with(:object => FactoryGirl.create(:ball)).
|
10
|
+
|
11
|
+
expect(RailsAdmin.config('Ball').fields.first.with(:object => Ball.new)).to be_required
|
12
|
+
expect(RailsAdmin.config('Ball').fields.first.with(:object => FactoryGirl.create(:ball))).not_to be_required
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
@@ -18,7 +18,7 @@ describe RailsAdmin::Config::Fields::Base do
|
|
18
18
|
RailsAdmin.config Team do
|
19
19
|
field 'name'
|
20
20
|
end
|
21
|
-
RailsAdmin.config('Team').fields.first.name.
|
21
|
+
expect(RailsAdmin.config('Team').fields.first.name).to eq(:name)
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
@@ -31,15 +31,15 @@ describe RailsAdmin::Config::Fields::Base do
|
|
31
31
|
end
|
32
32
|
|
33
33
|
it 'should be empty by default' do
|
34
|
-
RailsAdmin.config(Team).fields.find{ |f| f.name == :name }.children_fields.
|
34
|
+
expect(RailsAdmin.config(Team).fields.find{ |f| f.name == :name }.children_fields).to eq([])
|
35
35
|
end
|
36
36
|
|
37
37
|
it 'should contain child key for belongs to associations' do
|
38
|
-
RailsAdmin.config(Team).fields.find{ |f| f.name == :division }.children_fields.
|
38
|
+
expect(RailsAdmin.config(Team).fields.find{ |f| f.name == :division }.children_fields).to eq([:division_id])
|
39
39
|
end
|
40
40
|
|
41
41
|
it 'should contain child keys for polymorphic belongs to associations' do
|
42
|
-
RailsAdmin.config(Comment).fields.find{ |f| f.name == :commentable }.children_fields.
|
42
|
+
expect(RailsAdmin.config(Comment).fields.find{ |f| f.name == :commentable }.children_fields).to match_array POLYMORPHIC_CHILDREN
|
43
43
|
end
|
44
44
|
|
45
45
|
it "should have correct fields when polymorphic_type column comes ahead of polymorphic foreign_key column" do
|
@@ -48,32 +48,31 @@ describe RailsAdmin::Config::Fields::Base do
|
|
48
48
|
column :commentable_id, :integer
|
49
49
|
belongs_to :commentable, :polymorphic => true
|
50
50
|
end
|
51
|
-
RailsAdmin.config(CommentReversed).fields.map{|f| f.name.to_s}.
|
52
|
-
select{|f| /^comment/ =~ f}.should =~ ['commentable'].concat(POLYMORPHIC_CHILDREN.map(&:to_s))
|
51
|
+
expect(RailsAdmin.config(CommentReversed).fields.map{|f| f.name.to_s}.select{|f| /^comment/ =~ f}).to match_array ['commentable'].concat(POLYMORPHIC_CHILDREN.map(&:to_s))
|
53
52
|
end
|
54
53
|
|
55
54
|
context 'of a Paperclip installation' do
|
56
55
|
it 'should be a _file_name field' do
|
57
|
-
RailsAdmin.config(FieldTest).fields.find{ |f| f.name == :paperclip_asset }.children_fields.include?(:paperclip_asset_file_name).
|
56
|
+
expect(RailsAdmin.config(FieldTest).fields.find{ |f| f.name == :paperclip_asset }.children_fields.include?(:paperclip_asset_file_name)).to be_true
|
58
57
|
end
|
59
58
|
|
60
59
|
it 'should be hidden, not filterable' do
|
61
60
|
f = RailsAdmin.config(FieldTest).fields.find{ |f| f.name == :paperclip_asset_file_name }
|
62
|
-
f.hidden
|
63
|
-
f.filterable
|
61
|
+
expect(f.hidden?).to be_true
|
62
|
+
expect(f.filterable?).to be_false
|
64
63
|
end
|
65
64
|
end
|
66
65
|
|
67
66
|
context 'of a Dragonfly installation' do
|
68
67
|
it 'should be a _name field and _uid field' do
|
69
|
-
RailsAdmin.config(FieldTest).fields.find{ |f| f.name == :dragonfly_asset }.children_fields.
|
68
|
+
expect(RailsAdmin.config(FieldTest).fields.find{ |f| f.name == :dragonfly_asset }.children_fields).to eq([:dragonfly_asset_name, :dragonfly_asset_uid])
|
70
69
|
end
|
71
70
|
end
|
72
71
|
|
73
72
|
context 'of a Carrierwave installation' do
|
74
73
|
it 'should be the parent field itself' do
|
75
|
-
RailsAdmin.config(FieldTest).fields.find{ |f| f.name == :carrierwave_asset }.children_fields.
|
76
|
-
RailsAdmin.config(FieldTest).fields.find{ |f| f.name == :carrierwave_asset }.hidden
|
74
|
+
expect(RailsAdmin.config(FieldTest).fields.find{ |f| f.name == :carrierwave_asset }.children_fields).to eq([:carrierwave_asset])
|
75
|
+
expect(RailsAdmin.config(FieldTest).fields.find{ |f| f.name == :carrierwave_asset }.hidden?).to be_false
|
77
76
|
end
|
78
77
|
end
|
79
78
|
end
|
@@ -88,18 +87,18 @@ describe RailsAdmin::Config::Fields::Base do
|
|
88
87
|
end
|
89
88
|
end
|
90
89
|
@team = Team.new
|
91
|
-
RailsAdmin.config('Team').list.fields.find{|f| f.name == :name}.with(:object => @team).html_default_value.
|
90
|
+
expect(RailsAdmin.config('Team').list.fields.find{|f| f.name == :name}.with(:object => @team).html_default_value).to eq('default value')
|
92
91
|
@team.name = 'set value'
|
93
|
-
RailsAdmin.config('Team').list.fields.find{|f| f.name == :name}.with(:object => @team).html_default_value.
|
92
|
+
expect(RailsAdmin.config('Team').list.fields.find{|f| f.name == :name}.with(:object => @team).html_default_value).to be_nil
|
94
93
|
@team = FactoryGirl.create :team
|
95
94
|
@team.name = nil
|
96
|
-
RailsAdmin.config('Team').list.fields.find{|f| f.name == :name}.with(:object => @team).html_default_value.
|
95
|
+
expect(RailsAdmin.config('Team').list.fields.find{|f| f.name == :name}.with(:object => @team).html_default_value).to be_nil
|
97
96
|
end
|
98
97
|
end
|
99
98
|
|
100
99
|
describe "#default_value" do
|
101
100
|
it 'should be nil by default' do
|
102
|
-
RailsAdmin.config('Team').list.fields.find{|f| f.name == :name}.default_value.
|
101
|
+
expect(RailsAdmin.config('Team').list.fields.find{|f| f.name == :name}.default_value).to be_nil
|
103
102
|
end
|
104
103
|
end
|
105
104
|
|
@@ -113,8 +112,8 @@ describe RailsAdmin::Config::Fields::Base do
|
|
113
112
|
field :name
|
114
113
|
end
|
115
114
|
end
|
116
|
-
RailsAdmin.config('Team').list.fields.find{|f| f.name == :division}.hint.
|
117
|
-
RailsAdmin.config('Team').list.fields.find{|f| f.name == :name}.hint.
|
115
|
+
expect(RailsAdmin.config('Team').list.fields.find{|f| f.name == :division}.hint).to eq("Great Division") # custom
|
116
|
+
expect(RailsAdmin.config('Team').list.fields.find{|f| f.name == :name}.hint).to eq("") # default
|
118
117
|
end
|
119
118
|
end
|
120
119
|
|
@@ -128,29 +127,29 @@ describe RailsAdmin::Config::Fields::Base do
|
|
128
127
|
field :name
|
129
128
|
end
|
130
129
|
end
|
131
|
-
RailsAdmin.config('Team').list.fields.find{|f| f.name == :division}.css_class.
|
132
|
-
RailsAdmin.config('Team').list.fields.find{|f| f.name == :division}.type_css_class.
|
133
|
-
RailsAdmin.config('Team').list.fields.find{|f| f.name == :name}.css_class.
|
130
|
+
expect(RailsAdmin.config('Team').list.fields.find{|f| f.name == :division}.css_class).to eq("custom") # custom
|
131
|
+
expect(RailsAdmin.config('Team').list.fields.find{|f| f.name == :division}.type_css_class).to eq("belongs_to_association_type") # type css class, non-customizable
|
132
|
+
expect(RailsAdmin.config('Team').list.fields.find{|f| f.name == :name}.css_class).to eq("name_field") # default
|
134
133
|
end
|
135
134
|
end
|
136
135
|
|
137
136
|
describe "#associated_collection_cache_all" do
|
138
137
|
it "should default to true if associated collection count < 100" do
|
139
|
-
RailsAdmin.config(Team).edit.fields.find{|f| f.name == :players}.associated_collection_cache_all.
|
138
|
+
expect(RailsAdmin.config(Team).edit.fields.find{|f| f.name == :players}.associated_collection_cache_all).to be_true
|
140
139
|
end
|
141
140
|
|
142
141
|
it "should default to false if associated collection count >= 100" do
|
143
142
|
@players = 100.times.map do
|
144
143
|
FactoryGirl.create :player
|
145
144
|
end
|
146
|
-
RailsAdmin.config(Team).edit.fields.find{|f| f.name == :players}.associated_collection_cache_all.
|
145
|
+
expect(RailsAdmin.config(Team).edit.fields.find{|f| f.name == :players}.associated_collection_cache_all).to be_false
|
147
146
|
end
|
148
147
|
end
|
149
148
|
|
150
149
|
describe '#searchable_columns' do
|
151
150
|
describe 'for belongs_to fields' do
|
152
151
|
it "should find label method on the opposite side for belongs_to associations by default" do
|
153
|
-
RailsAdmin.config(Team).fields.find{|f| f.name == :division}.searchable_columns.map{|c| c[:column]}.
|
152
|
+
expect(RailsAdmin.config(Team).fields.find{|f| f.name == :division}.searchable_columns.map{|c| c[:column]}).to eq(["divisions.name", "teams.division_id"])
|
154
153
|
end
|
155
154
|
|
156
155
|
it "should search on opposite table for belongs_to" do
|
@@ -159,7 +158,7 @@ describe RailsAdmin::Config::Fields::Base do
|
|
159
158
|
searchable :custom_id
|
160
159
|
end
|
161
160
|
end
|
162
|
-
RailsAdmin.config(Team).fields.find{|f| f.name == :division}.searchable_columns.map{|c| c[:column]}.
|
161
|
+
expect(RailsAdmin.config(Team).fields.find{|f| f.name == :division}.searchable_columns.map{|c| c[:column]}).to eq(["divisions.custom_id"])
|
163
162
|
end
|
164
163
|
|
165
164
|
it "should search on asked table with model name" do
|
@@ -168,7 +167,7 @@ describe RailsAdmin::Config::Fields::Base do
|
|
168
167
|
searchable League => :name
|
169
168
|
end
|
170
169
|
end
|
171
|
-
RailsAdmin.config(Team).fields.find{|f| f.name == :division}.searchable_columns.
|
170
|
+
expect(RailsAdmin.config(Team).fields.find{|f| f.name == :division}.searchable_columns).to eq([{:column=>"leagues.name", :type=>:string}])
|
172
171
|
end
|
173
172
|
|
174
173
|
it "should search on asked table with table name" do
|
@@ -177,15 +176,15 @@ describe RailsAdmin::Config::Fields::Base do
|
|
177
176
|
searchable :leagues => :name
|
178
177
|
end
|
179
178
|
end
|
180
|
-
RailsAdmin.config(Team).fields.find{|f| f.name == :division}.searchable_columns.
|
179
|
+
expect(RailsAdmin.config(Team).fields.find{|f| f.name == :division}.searchable_columns).to eq([{:column=>"leagues.name", :type=>:string}])
|
181
180
|
end
|
182
181
|
end
|
183
182
|
|
184
183
|
describe 'for basic type fields' do
|
185
184
|
|
186
185
|
it 'should use base table and find correct column type' do
|
187
|
-
RailsAdmin.config(FieldTest).fields.find{|f| f.name == :text_field}.searchable_columns.
|
188
|
-
RailsAdmin.config(FieldTest).fields.find{|f| f.name == :integer_field}.searchable_columns.
|
186
|
+
expect(RailsAdmin.config(FieldTest).fields.find{|f| f.name == :text_field}.searchable_columns).to eq([{:column=>"field_tests.text_field", :type=>:text}])
|
187
|
+
expect(RailsAdmin.config(FieldTest).fields.find{|f| f.name == :integer_field}.searchable_columns).to eq([{:column=>"field_tests.integer_field", :type=>:integer}])
|
189
188
|
end
|
190
189
|
|
191
190
|
it 'should be customizable to another field on the same table' do
|
@@ -194,7 +193,7 @@ describe RailsAdmin::Config::Fields::Base do
|
|
194
193
|
searchable :date_field
|
195
194
|
end
|
196
195
|
end
|
197
|
-
RailsAdmin.config(FieldTest).fields.find{|f| f.name == :time_field}.searchable_columns.
|
196
|
+
expect(RailsAdmin.config(FieldTest).fields.find{|f| f.name == :time_field}.searchable_columns).to eq([{:column=>"field_tests.date_field", :type=>:date}])
|
198
197
|
end
|
199
198
|
|
200
199
|
it 'should be customizable to another field on another table with :table_name' do
|
@@ -203,7 +202,7 @@ describe RailsAdmin::Config::Fields::Base do
|
|
203
202
|
searchable :nested_field_tests => :title
|
204
203
|
end
|
205
204
|
end
|
206
|
-
RailsAdmin.config(FieldTest).fields.find{|f| f.name == :string_field}.searchable_columns.
|
205
|
+
expect(RailsAdmin.config(FieldTest).fields.find{|f| f.name == :string_field}.searchable_columns).to eq([{:column=>"nested_field_tests.title", :type=>:string}])
|
207
206
|
end
|
208
207
|
|
209
208
|
it 'should be customizable to another field on another model with ModelClass' do
|
@@ -212,21 +211,21 @@ describe RailsAdmin::Config::Fields::Base do
|
|
212
211
|
searchable NestedFieldTest => :title
|
213
212
|
end
|
214
213
|
end
|
215
|
-
RailsAdmin.config(FieldTest).fields.find{|f| f.name == :string_field}.searchable_columns.
|
214
|
+
expect(RailsAdmin.config(FieldTest).fields.find{|f| f.name == :string_field}.searchable_columns).to eq([{:column=>"nested_field_tests.title", :type=>:string}])
|
216
215
|
end
|
217
216
|
end
|
218
217
|
|
219
218
|
describe 'for mapped fields' do
|
220
219
|
it 'of paperclip should find the underlying column on the base table' do
|
221
|
-
RailsAdmin.config(FieldTest).fields.find{|f| f.name == :paperclip_asset}.searchable_columns.map{|c| c[:column]}.
|
220
|
+
expect(RailsAdmin.config(FieldTest).fields.find{|f| f.name == :paperclip_asset}.searchable_columns.map{|c| c[:column]}).to eq(["field_tests.paperclip_asset_file_name"])
|
222
221
|
end
|
223
222
|
|
224
223
|
it 'of dragonfly should find the underlying column on the base table' do
|
225
|
-
RailsAdmin.config(FieldTest).fields.find{|f| f.name == :dragonfly_asset}.searchable_columns.map{|c| c[:column]}.
|
224
|
+
expect(RailsAdmin.config(FieldTest).fields.find{|f| f.name == :dragonfly_asset}.searchable_columns.map{|c| c[:column]}).to eq(["field_tests.dragonfly_asset_name"])
|
226
225
|
end
|
227
226
|
|
228
227
|
it 'of carrierwave should find the underlying column on the base table' do
|
229
|
-
RailsAdmin.config(FieldTest).fields.find{|f| f.name == :carrierwave_asset}.searchable_columns.map{|c| c[:column]}.
|
228
|
+
expect(RailsAdmin.config(FieldTest).fields.find{|f| f.name == :carrierwave_asset}.searchable_columns.map{|c| c[:column]}).to eq(["field_tests.carrierwave_asset"])
|
230
229
|
end
|
231
230
|
end
|
232
231
|
end
|
@@ -239,26 +238,26 @@ describe RailsAdmin::Config::Fields::Base do
|
|
239
238
|
field :name
|
240
239
|
end
|
241
240
|
@league = FactoryGirl.create :league
|
242
|
-
RailsAdmin.config('League').export.fields.find{ |f| f.name == :virtual_column }.sortable.
|
243
|
-
RailsAdmin.config('League').export.fields.find{ |f| f.name == :virtual_column }.searchable.
|
244
|
-
RailsAdmin.config('League').export.fields.find{ |f| f.name == :name }.sortable.
|
245
|
-
RailsAdmin.config('League').export.fields.find{ |f| f.name == :name }.searchable.
|
241
|
+
expect(RailsAdmin.config('League').export.fields.find{ |f| f.name == :virtual_column }.sortable).to be_false
|
242
|
+
expect(RailsAdmin.config('League').export.fields.find{ |f| f.name == :virtual_column }.searchable).to be_false
|
243
|
+
expect(RailsAdmin.config('League').export.fields.find{ |f| f.name == :name }.sortable).to be_true
|
244
|
+
expect(RailsAdmin.config('League').export.fields.find{ |f| f.name == :name }.searchable).to be_true
|
246
245
|
end
|
247
246
|
|
248
247
|
context 'of a virtual field with children fields' do
|
249
248
|
it 'of paperclip should target the first children field' do
|
250
|
-
RailsAdmin.config(FieldTest).fields.find{ |f| f.name == :paperclip_asset }.searchable.
|
251
|
-
RailsAdmin.config(FieldTest).fields.find{ |f| f.name == :paperclip_asset }.sortable.
|
249
|
+
expect(RailsAdmin.config(FieldTest).fields.find{ |f| f.name == :paperclip_asset }.searchable).to eq(:paperclip_asset_file_name)
|
250
|
+
expect(RailsAdmin.config(FieldTest).fields.find{ |f| f.name == :paperclip_asset }.sortable).to eq(:paperclip_asset_file_name)
|
252
251
|
end
|
253
252
|
|
254
253
|
it 'of dragonfly should target the first children field' do
|
255
|
-
RailsAdmin.config(FieldTest).fields.find{ |f| f.name == :dragonfly_asset }.searchable.
|
256
|
-
RailsAdmin.config(FieldTest).fields.find{ |f| f.name == :dragonfly_asset }.sortable.
|
254
|
+
expect(RailsAdmin.config(FieldTest).fields.find{ |f| f.name == :dragonfly_asset }.searchable).to eq(:dragonfly_asset_name)
|
255
|
+
expect(RailsAdmin.config(FieldTest).fields.find{ |f| f.name == :dragonfly_asset }.sortable).to eq(:dragonfly_asset_name)
|
257
256
|
end
|
258
257
|
|
259
258
|
it 'of carrierwave should target the first children field' do
|
260
|
-
RailsAdmin.config(FieldTest).fields.find{ |f| f.name == :carrierwave_asset }.searchable.
|
261
|
-
RailsAdmin.config(FieldTest).fields.find{ |f| f.name == :carrierwave_asset }.sortable.
|
259
|
+
expect(RailsAdmin.config(FieldTest).fields.find{ |f| f.name == :carrierwave_asset }.searchable).to eq(:carrierwave_asset)
|
260
|
+
expect(RailsAdmin.config(FieldTest).fields.find{ |f| f.name == :carrierwave_asset }.sortable).to eq(:carrierwave_asset)
|
262
261
|
end
|
263
262
|
end
|
264
263
|
end
|
@@ -270,8 +269,8 @@ describe RailsAdmin::Config::Fields::Base do
|
|
270
269
|
field :name
|
271
270
|
end
|
272
271
|
@league = FactoryGirl.create :league
|
273
|
-
RailsAdmin.config('League').export.fields.find{ |f| f.name == :virtual_column }.virtual
|
274
|
-
RailsAdmin.config('League').export.fields.find{ |f| f.name == :name }.virtual
|
272
|
+
expect(RailsAdmin.config('League').export.fields.find{ |f| f.name == :virtual_column }.virtual?).to be_true
|
273
|
+
expect(RailsAdmin.config('League').export.fields.find{ |f| f.name == :name }.virtual?).to be_false
|
275
274
|
end
|
276
275
|
end
|
277
276
|
|
@@ -282,16 +281,16 @@ describe RailsAdmin::Config::Fields::Base do
|
|
282
281
|
|
283
282
|
context "when no search operator is specified for the field" do
|
284
283
|
it "uses 'default' search operator" do
|
285
|
-
queryable_fields.
|
286
|
-
queryable_fields.first.search_operator.
|
284
|
+
expect(queryable_fields).to have_at_least(1).field
|
285
|
+
expect(queryable_fields.first.search_operator).to eq(RailsAdmin::Config.default_search_operator)
|
287
286
|
end
|
288
287
|
|
289
288
|
it "uses config.default_search_operator if set" do
|
290
289
|
RailsAdmin.config do |config|
|
291
290
|
config.default_search_operator = 'starts_with'
|
292
291
|
end
|
293
|
-
queryable_fields.
|
294
|
-
queryable_fields.first.search_operator.
|
292
|
+
expect(queryable_fields).to have_at_least(1).field
|
293
|
+
expect(queryable_fields.first.search_operator).to eq(RailsAdmin::Config.default_search_operator)
|
295
294
|
end
|
296
295
|
end
|
297
296
|
|
@@ -304,8 +303,8 @@ describe RailsAdmin::Config::Fields::Base do
|
|
304
303
|
end
|
305
304
|
end
|
306
305
|
end
|
307
|
-
queryable_fields.
|
308
|
-
queryable_fields.first.search_operator.
|
306
|
+
expect(queryable_fields).to have_at_least(1).field
|
307
|
+
expect(queryable_fields.first.search_operator).to eq("starts_with")
|
309
308
|
end
|
310
309
|
|
311
310
|
it "uses specified search operator even if config.default_search_operator set" do
|
@@ -320,8 +319,8 @@ describe RailsAdmin::Config::Fields::Base do
|
|
320
319
|
end
|
321
320
|
end
|
322
321
|
end
|
323
|
-
queryable_fields.
|
324
|
-
queryable_fields.first.search_operator.
|
322
|
+
expect(queryable_fields).to have_at_least(1).field
|
323
|
+
expect(queryable_fields.first.search_operator).to eq("ends_with")
|
325
324
|
end
|
326
325
|
end
|
327
326
|
end
|
@@ -335,19 +334,19 @@ describe RailsAdmin::Config::Fields::Base do
|
|
335
334
|
end
|
336
335
|
end
|
337
336
|
end
|
338
|
-
RailsAdmin.config(Team).field(:name).render.
|
337
|
+
expect(RailsAdmin.config(Team).field(:name).render).to eq('rendered')
|
339
338
|
end
|
340
339
|
end
|
341
340
|
|
342
341
|
describe '#active' do
|
343
342
|
it 'is false by default' do
|
344
|
-
RailsAdmin.config(Team).field(:division).active
|
343
|
+
expect(RailsAdmin.config(Team).field(:division).active?).to be_false
|
345
344
|
end
|
346
345
|
end
|
347
|
-
|
346
|
+
|
348
347
|
describe '#associated_collection' do
|
349
348
|
it 'returns [] when type is blank?' do
|
350
|
-
RailsAdmin.config(Comment).fields.find{|f|f.name == :commentable}.associated_collection('').
|
349
|
+
expect(RailsAdmin.config(Comment).fields.find{|f|f.name == :commentable}.associated_collection('')).to be_empty
|
351
350
|
end
|
352
351
|
end
|
353
352
|
|
@@ -365,13 +364,13 @@ describe RailsAdmin::Config::Fields::Base do
|
|
365
364
|
column :updated_on, :datetime
|
366
365
|
column :deleted_on, :datetime
|
367
366
|
end
|
368
|
-
RailsAdmin.config(FieldVisibilityTest).base.fields.select{|f| f.visible? }.map(&:name).
|
369
|
-
RailsAdmin.config(FieldVisibilityTest).list.fields.select{|f| f.visible? }.map(&:name).
|
370
|
-
RailsAdmin.config(FieldVisibilityTest).edit.fields.select{|f| f.visible? }.map(&:name).
|
371
|
-
RailsAdmin.config(FieldVisibilityTest).show.fields.select{|f| f.visible? }.map(&:name).
|
367
|
+
expect(RailsAdmin.config(FieldVisibilityTest).base.fields.select{|f| f.visible? }.map(&:name)).to match_array [:_id, :created_at, :created_on, :deleted_at, :deleted_on, :id, :name, :updated_at, :updated_on]
|
368
|
+
expect(RailsAdmin.config(FieldVisibilityTest).list.fields.select{|f| f.visible? }.map(&:name)).to match_array [:_id, :created_at, :created_on, :deleted_at, :deleted_on, :id, :name, :updated_at, :updated_on]
|
369
|
+
expect(RailsAdmin.config(FieldVisibilityTest).edit.fields.select{|f| f.visible? }.map(&:name)).to match_array [:name]
|
370
|
+
expect(RailsAdmin.config(FieldVisibilityTest).show.fields.select{|f| f.visible? }.map(&:name)).to match_array [:name]
|
372
371
|
end
|
373
372
|
end
|
374
|
-
|
373
|
+
|
375
374
|
describe '#editable?' do
|
376
375
|
before do
|
377
376
|
Moped.logger.stub!(:debug) if defined?(Moped)
|
@@ -386,9 +385,9 @@ describe RailsAdmin::Config::Fields::Base do
|
|
386
385
|
end
|
387
386
|
Rails.logger.should_receive(:debug).with {|msg| msg =~ /Please add 'attr_accessible :protected_field'/ }
|
388
387
|
editable = RailsAdmin.config(FieldTest).field(:protected_field).with(:object => FactoryGirl.create(:field_test), :view => double(:controller => double(:_attr_accessible_role => :default))).editable?
|
389
|
-
editable.
|
388
|
+
expect(editable).to be_false
|
390
389
|
end
|
391
|
-
|
390
|
+
|
392
391
|
it 'should not yell for non attr_accessible fields if config.yell_for_non_accessible_fields is false' do
|
393
392
|
RailsAdmin.config do |config|
|
394
393
|
config.yell_for_non_accessible_fields = false
|
@@ -398,7 +397,7 @@ describe RailsAdmin::Config::Fields::Base do
|
|
398
397
|
end
|
399
398
|
Rails.logger.should_not_receive(:debug).with {|msg| msg =~ /Please add 'attr_accessible :protected_field'/ }
|
400
399
|
editable = RailsAdmin.config(FieldTest).field(:protected_field).with(:object => FactoryGirl.create(:field_test), :view => double(:controller => double(:_attr_accessible_role => :default))).editable?
|
401
|
-
editable.
|
400
|
+
expect(editable).to be_false
|
402
401
|
end
|
403
402
|
end
|
404
403
|
end
|