rails_admin 0.3.0 → 0.4.0
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.
- data/Gemfile +2 -2
- data/README.md +13 -6
- data/app/assets/images/rails_admin/aristo/images/bg_fallback.png +0 -0
- data/app/assets/images/rails_admin/aristo/images/icon_sprite.png +0 -0
- data/app/assets/images/rails_admin/aristo/images/progress_bar.gif +0 -0
- data/app/assets/images/rails_admin/aristo/images/slider_handles.png +0 -0
- data/app/assets/images/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
- data/app/assets/images/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
- data/app/assets/images/rails_admin/bullet_white.png +0 -0
- data/app/assets/images/rails_admin/calendar.png +0 -0
- data/app/assets/images/rails_admin/clock.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_background.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_hex.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_b.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_h.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_s.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_overlay.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_rgb_b.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_rgb_g.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_rgb_r.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_select.gif +0 -0
- data/app/assets/images/rails_admin/colorpicker/colorpicker_submit.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/custom_background.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/custom_hex.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/custom_hsb_b.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/custom_hsb_h.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/custom_hsb_s.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/custom_rgb_b.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/custom_rgb_g.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/custom_rgb_r.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/custom_submit.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/select.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/select2.png +0 -0
- data/app/assets/images/rails_admin/colorpicker/slider.png +0 -0
- data/app/assets/images/rails_admin/logo.png +0 -0
- data/app/assets/images/rails_admin/magnifier.png +0 -0
- data/app/assets/images/rails_admin/multiselect/icon_sprite.png +0 -0
- data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-dark.png +0 -0
- data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-light.png +0 -0
- data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-dark.png +0 -0
- data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-light.png +0 -0
- data/app/assets/stylesheets/rails_admin/aristo/images/bg_fallback.png +0 -0
- data/app/assets/stylesheets/rails_admin/aristo/images/icon_sprite.png +0 -0
- data/app/assets/stylesheets/rails_admin/aristo/images/progress_bar.gif +0 -0
- data/app/assets/stylesheets/rails_admin/aristo/images/slider_handles.png +0 -0
- data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
- data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
- data/app/assets/stylesheets/rails_admin/jquery.colorpicker.css.scss +1 -0
- data/app/controllers/rails_admin/main_controller.rb +1 -1
- data/app/helpers/rails_admin/application_helper.rb +3 -2
- data/app/views/rails_admin/main/index.html.haml +1 -1
- data/lib/generators/rails_admin/install_generator.rb +1 -1
- data/lib/rails_admin/abstract_model.rb +4 -0
- data/lib/rails_admin/adapters/active_record.rb +4 -0
- data/lib/rails_admin/adapters/mongoid.rb +6 -0
- data/lib/rails_admin/adapters/mongoid/abstract_object.rb +3 -3
- data/lib/rails_admin/config.rb +9 -12
- data/lib/rails_admin/config/actions/base.rb +4 -3
- data/lib/rails_admin/config/fields/association.rb +1 -1
- data/lib/rails_admin/config/fields/base.rb +1 -1
- data/lib/rails_admin/config/fields/factories/association.rb +1 -1
- data/lib/rails_admin/config/fields/types/belongs_to_association.rb +1 -1
- data/lib/rails_admin/config/fields/types/boolean.rb +2 -2
- data/lib/rails_admin/config/fields/types/datetime.rb +1 -1
- data/lib/rails_admin/config/has_fields.rb +3 -2
- data/lib/rails_admin/config/lazy_model.rb +21 -0
- data/lib/rails_admin/extensions/history/history.rb +5 -5
- data/lib/rails_admin/support/csv_converter.rb +2 -6
- data/lib/rails_admin/version.rb +1 -1
- data/spec/controllers/{application_controller_spec.rb → rails_admin/application_controller_spec.rb} +0 -0
- data/spec/controllers/{main_controller_spec.rb → rails_admin/main_controller_spec.rb} +36 -4
- data/spec/dummy_app/Gemfile +2 -2
- data/spec/dummy_app/app/active_record/comment.rb +1 -1
- data/spec/dummy_app/app/active_record/team.rb +1 -1
- data/spec/dummy_app/app/mongoid/field_test.rb +2 -1
- data/spec/dummy_app/app/mongoid/team.rb +1 -1
- data/spec/dummy_app/db/seeds.rb +4 -4
- data/spec/dummy_app/db/test.sqlite3 +0 -0
- data/spec/dummy_app/log/test.log +156160 -0
- data/spec/helpers/rails_admin/application_helper_spec.rb +353 -0
- data/spec/helpers/{form_builder_spec.rb → rails_admin/form_builder_spec.rb} +0 -0
- data/spec/integration/authorization/cancan_spec.rb +13 -13
- data/spec/integration/basic/bulk_action/rails_admin_basic_bulk_action_spec.rb +2 -2
- data/spec/integration/basic/bulk_destroy/rails_admin_basic_bulk_destroy_spec.rb +13 -2
- data/spec/integration/basic/create/rails_admin_basic_create_spec.rb +8 -9
- data/spec/integration/basic/create/rails_admin_namespaced_model_create_spec.rb +1 -1
- data/spec/integration/basic/destroy/rails_admin_basic_destroy_spec.rb +4 -4
- data/spec/integration/basic/edit/rails_admin_basic_edit_spec.rb +2 -2
- data/spec/integration/basic/export/rails_admin_basic_export_spec.rb +2 -2
- data/spec/integration/basic/list/rails_admin_basic_list_spec.rb +51 -21
- data/spec/integration/basic/update/rails_admin_basic_update_spec.rb +15 -15
- data/spec/integration/config/edit/rails_admin_config_edit_spec.rb +13 -14
- data/spec/integration/config/list/rails_admin_config_list_spec.rb +7 -6
- data/spec/integration/config/show/rails_admin_config_show_spec.rb +1 -1
- data/spec/integration/rails_admin_spec.rb +2 -0
- data/spec/{unit → rails_admin}/abstract_model_spec.rb +7 -0
- data/spec/{unit → rails_admin}/active_record_extension_spec.rb +0 -0
- data/spec/{unit → rails_admin}/adapters/active_record/abstract_object_spec.rb +0 -0
- data/spec/{unit → rails_admin}/adapters/active_record_spec.rb +0 -0
- data/spec/{unit → rails_admin}/adapters/mongoid/abstract_object_spec.rb +0 -0
- data/spec/{unit → rails_admin}/adapters/mongoid_spec.rb +7 -1
- data/spec/{unit → rails_admin}/config/actions/base_spec.rb +0 -0
- data/spec/{unit → rails_admin}/config/actions_spec.rb +0 -0
- data/spec/{unit → rails_admin}/config/fields/base_spec.rb +0 -0
- data/spec/{unit → rails_admin}/config/fields/date_spec.rb +0 -0
- data/spec/{unit → rails_admin}/config/fields/datetime_spec.rb +0 -0
- data/spec/{unit → rails_admin}/config/fields/file_upload_spec.rb +0 -0
- data/spec/{unit → rails_admin}/config/fields/time_spec.rb +0 -0
- data/spec/{unit → rails_admin}/config/fields/timestamp_spec.rb +0 -0
- data/spec/rails_admin/config/fields/types/datetime_spec.rb +18 -0
- data/spec/{unit → rails_admin}/config/fields_spec.rb +0 -0
- data/spec/rails_admin/config/has_fields_spec.rb +30 -0
- data/spec/rails_admin/config/lazy_model_spec.rb +29 -0
- data/spec/{unit → rails_admin}/config/model_spec.rb +0 -0
- data/spec/{unit → rails_admin}/config/sections_spec.rb +0 -0
- data/spec/{unit → rails_admin}/config_spec.rb +0 -0
- data/spec/{unit → rails_admin}/support/csv_converter_spec.rb +0 -0
- data/spec/spec_helper.rb +2 -0
- metadata +65 -60
- data/spec/helpers/application_helper_spec.rb +0 -328
|
@@ -9,7 +9,7 @@ describe "RailsAdmin Basic Create" do
|
|
|
9
9
|
fill_in "player[name]", :with => "Jackie Robinson"
|
|
10
10
|
fill_in "player[number]", :with => "42"
|
|
11
11
|
fill_in "player[position]", :with => "Second baseman"
|
|
12
|
-
click_button "Save"
|
|
12
|
+
click_button "Save" # first(:button, "Save").click
|
|
13
13
|
@player = RailsAdmin::AbstractModel.new("Player").first
|
|
14
14
|
end
|
|
15
15
|
|
|
@@ -62,7 +62,7 @@ describe "RailsAdmin Basic Create" do
|
|
|
62
62
|
before(:each) do
|
|
63
63
|
@draft = FactoryGirl.create :draft
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
post new_path(:model_name => "player", :player => {:name => "Jackie Robinson", :number => 42, :position => 'Second baseman', :draft_id => @draft.id})
|
|
66
66
|
|
|
67
67
|
@player = RailsAdmin::AbstractModel.new("Player").all.last # first is created by FactoryGirl
|
|
68
68
|
end
|
|
@@ -76,7 +76,7 @@ describe "RailsAdmin Basic Create" do
|
|
|
76
76
|
describe "create with has-many association" do
|
|
77
77
|
before(:each) do
|
|
78
78
|
@divisions = 3.times.map { Division.create!(:name => "div #{Time.now.to_f}", :league => League.create!(:name => "league #{Time.now.to_f}")) }
|
|
79
|
-
|
|
79
|
+
post new_path(:model_name => "league", :league => {:name => "National League", :division_ids =>[@divisions[0].id]})
|
|
80
80
|
@league = RailsAdmin::AbstractModel.new("League").all.last
|
|
81
81
|
end
|
|
82
82
|
|
|
@@ -91,7 +91,7 @@ describe "RailsAdmin Basic Create" do
|
|
|
91
91
|
describe "create with has-and-belongs-to-many association" do
|
|
92
92
|
before(:each) do
|
|
93
93
|
@teams = 3.times.map { FactoryGirl.create :team }
|
|
94
|
-
|
|
94
|
+
post new_path(:model_name => "fan", :fan => {:name => "John Doe", :team_ids => [@teams[0].id] })
|
|
95
95
|
@fan = RailsAdmin::AbstractModel.new("Fan").first
|
|
96
96
|
end
|
|
97
97
|
|
|
@@ -108,22 +108,21 @@ describe "RailsAdmin Basic Create" do
|
|
|
108
108
|
@team = FactoryGirl.create :team
|
|
109
109
|
@player = FactoryGirl.create :player, :team => @team
|
|
110
110
|
|
|
111
|
-
|
|
111
|
+
post new_path(:model_name => "player", :player => {:name => @player.name, :number => @player.number.to_s, :position => @player.position, :team_id => @team.id})
|
|
112
112
|
end
|
|
113
113
|
|
|
114
114
|
it "shows an error message" do
|
|
115
|
-
|
|
115
|
+
expect(response.body).to include("There is already a player with that number on this team")
|
|
116
116
|
end
|
|
117
117
|
end
|
|
118
118
|
|
|
119
119
|
describe "create with invalid object" do
|
|
120
120
|
before(:each) do
|
|
121
|
-
|
|
121
|
+
post new_path(:model_name => "player", :player => {:id => 1})
|
|
122
122
|
end
|
|
123
123
|
|
|
124
124
|
it "shows an error message" do
|
|
125
|
-
|
|
126
|
-
should have_selector "form", :action => "/admin/players"
|
|
125
|
+
expect(response.body).to include("Player failed to be created")
|
|
127
126
|
end
|
|
128
127
|
end
|
|
129
128
|
|
|
@@ -10,7 +10,7 @@ describe "RailsAdmin Namespaced Model Create" do
|
|
|
10
10
|
fill_in "cms_basic_page[title]", :with => "Hello"
|
|
11
11
|
fill_in "cms_basic_page[content]", :with => "World"
|
|
12
12
|
expect {
|
|
13
|
-
click_button "Save"
|
|
13
|
+
click_button "Save" # first(:button, "Save").click
|
|
14
14
|
}.to change(Cms::BasicPage, :count).by(1)
|
|
15
15
|
end
|
|
16
16
|
end
|
|
@@ -53,11 +53,11 @@ describe "RailsAdmin Basic Destroy" do
|
|
|
53
53
|
|
|
54
54
|
describe "destroy with missing object" do
|
|
55
55
|
before(:each) do
|
|
56
|
-
|
|
56
|
+
delete delete_path(:model_name => "player", :id => 1)
|
|
57
57
|
end
|
|
58
58
|
|
|
59
59
|
it "raises NotFound" do
|
|
60
|
-
expect(
|
|
60
|
+
expect(response.code).to eq("404")
|
|
61
61
|
end
|
|
62
62
|
end
|
|
63
63
|
|
|
@@ -65,7 +65,7 @@ describe "RailsAdmin Basic Destroy" do
|
|
|
65
65
|
it "redirects to the index instead of trying to show the deleted object" do
|
|
66
66
|
@player = FactoryGirl.create :player
|
|
67
67
|
visit show_path(:model_name => 'player', :id => @player.id)
|
|
68
|
-
|
|
68
|
+
click_link "Delete"
|
|
69
69
|
click_button "Yes, I'm sure"
|
|
70
70
|
|
|
71
71
|
expect(URI.parse(page.current_url).path).to eq(index_path(:model_name => 'player'))
|
|
@@ -75,7 +75,7 @@ describe "RailsAdmin Basic Destroy" do
|
|
|
75
75
|
Player.any_instance.stub(:destroy_hook).and_return false
|
|
76
76
|
@player = FactoryGirl.create :player
|
|
77
77
|
visit show_path(:model_name => 'player', :id => @player.id)
|
|
78
|
-
|
|
78
|
+
click_link "Delete"
|
|
79
79
|
click_button "Yes, I'm sure"
|
|
80
80
|
|
|
81
81
|
expect(URI.parse(page.current_url).path).to eq(show_path(:model_name => 'player', :id => @player.id))
|
|
@@ -30,13 +30,13 @@ describe "RailsAdmin Basic Edit" do
|
|
|
30
30
|
it "adds a related id to the belongs_to create team link" do
|
|
31
31
|
@player = FactoryGirl.create :player
|
|
32
32
|
visit edit_path(:model_name => "player", :id => @player.id)
|
|
33
|
-
should have_selector("a
|
|
33
|
+
should have_selector("a[data-link='/admin/team/new?associations%5Bplayers%5D=#{@player.id.to_s}&modal=true']")
|
|
34
34
|
end
|
|
35
35
|
|
|
36
36
|
it "adds a related id to the has_many create team link" do
|
|
37
37
|
@team = FactoryGirl.create :team
|
|
38
38
|
visit edit_path(:model_name => "team", :id => @team.id)
|
|
39
|
-
should have_selector("a
|
|
39
|
+
should have_selector("a[data-link='/admin/player/new?associations%5Bteam%5D=#{@team.id.to_s}&modal=true']")
|
|
40
40
|
end
|
|
41
41
|
end
|
|
42
42
|
|
|
@@ -46,7 +46,7 @@ describe "RailsAdmin Export" do
|
|
|
46
46
|
should have_content 'Select fields to export'
|
|
47
47
|
select "<comma> ','", :from => "csv_options_generator_col_sep"
|
|
48
48
|
click_button 'Export to csv'
|
|
49
|
-
csv = CSV.parse
|
|
49
|
+
csv = CSV.parse page.driver.response.body.force_encoding("utf-8") # comes through as us-ascii on some platforms
|
|
50
50
|
expect(csv[0]).to match_array ["Id", "Created at", "Updated at", "Deleted at", "Name", "Position",
|
|
51
51
|
"Number", "Retired", "Injured", "Born on", "Notes", "Suspended", "Id [Team]", "Created at [Team]",
|
|
52
52
|
"Updated at [Team]", "Name [Team]", "Logo url [Team]", "Team Manager [Team]", "Ballpark [Team]",
|
|
@@ -87,7 +87,7 @@ describe "RailsAdmin Export" do
|
|
|
87
87
|
visit export_path(:model_name => 'comment')
|
|
88
88
|
select "<comma> ','", :from => "csv_options_generator_col_sep"
|
|
89
89
|
click_button 'Export to csv'
|
|
90
|
-
csv = CSV.parse
|
|
90
|
+
csv = CSV.parse page.driver.response.body
|
|
91
91
|
expect(csv[0]).to match_array ["Id", "Commentable", "Commentable type", "Content", "Created at", "Updated at"]
|
|
92
92
|
csv[1..-1].each do |line|
|
|
93
93
|
expect(line[csv[0].index('Commentable')]).to eq(@player.id.to_s)
|
|
@@ -30,16 +30,17 @@ describe "RailsAdmin Basic List" do
|
|
|
30
30
|
|
|
31
31
|
describe "GET /admin/player as list" do
|
|
32
32
|
it "shows \"List of Models\", should show filters and should show column headers" do
|
|
33
|
-
|
|
33
|
+
RailsAdmin.config.default_items_per_page = 1
|
|
34
|
+
2.times { FactoryGirl.create :player } # two pages of players
|
|
34
35
|
visit index_path(:model_name => "player")
|
|
35
36
|
should have_content("List of Players")
|
|
36
37
|
should have_content("Created at")
|
|
37
38
|
should have_content("Updated at")
|
|
38
39
|
|
|
39
40
|
# it "shows the show, edit and delete links" do
|
|
40
|
-
should have_selector("
|
|
41
|
-
should have_selector("
|
|
42
|
-
should have_selector("
|
|
41
|
+
should have_selector("li[title='Show'] a")
|
|
42
|
+
should have_selector("li[title='Edit'] a")
|
|
43
|
+
should have_selector("li[title='Delete'] a")
|
|
43
44
|
|
|
44
45
|
# it "has the search box with some prompt text" do
|
|
45
46
|
should have_selector("input[placeholder='Filter']")
|
|
@@ -55,14 +56,6 @@ describe "RailsAdmin Basic List" do
|
|
|
55
56
|
|
|
56
57
|
describe "GET /admin/player" do
|
|
57
58
|
before do
|
|
58
|
-
RailsAdmin.config Player do
|
|
59
|
-
list do
|
|
60
|
-
field :name
|
|
61
|
-
field :team
|
|
62
|
-
field :injured
|
|
63
|
-
field :retired
|
|
64
|
-
end
|
|
65
|
-
end
|
|
66
59
|
@teams = 2.times.map do
|
|
67
60
|
FactoryGirl.create(:team)
|
|
68
61
|
end
|
|
@@ -75,6 +68,15 @@ describe "RailsAdmin Basic List" do
|
|
|
75
68
|
end
|
|
76
69
|
|
|
77
70
|
it "allows to query on any attribute" do
|
|
71
|
+
RailsAdmin.config Player do
|
|
72
|
+
list do
|
|
73
|
+
field :name
|
|
74
|
+
field :team
|
|
75
|
+
field :injured
|
|
76
|
+
field :retired
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
78
80
|
visit index_path(:model_name => "player", :query => @players[0].name)
|
|
79
81
|
should have_content(@players[0].name)
|
|
80
82
|
(1..3).each do |i|
|
|
@@ -83,6 +85,15 @@ describe "RailsAdmin Basic List" do
|
|
|
83
85
|
end
|
|
84
86
|
|
|
85
87
|
it "allows to filter on one attribute" do
|
|
88
|
+
RailsAdmin.config Player do
|
|
89
|
+
list do
|
|
90
|
+
field :name
|
|
91
|
+
field :team
|
|
92
|
+
field :injured
|
|
93
|
+
field :retired
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
|
|
86
97
|
visit index_path(:model_name => "player", :f => {:injured => {"1" => {:v => "true"}}})
|
|
87
98
|
should have_content(@players[0].name)
|
|
88
99
|
should have_no_content(@players[1].name)
|
|
@@ -91,6 +102,15 @@ describe "RailsAdmin Basic List" do
|
|
|
91
102
|
end
|
|
92
103
|
|
|
93
104
|
it "allows to combine filters on two different attributes" do
|
|
105
|
+
RailsAdmin.config Player do
|
|
106
|
+
list do
|
|
107
|
+
field :name
|
|
108
|
+
field :team
|
|
109
|
+
field :injured
|
|
110
|
+
field :retired
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
|
|
94
114
|
visit index_path(:model_name => "player", :f => {:retired => {"1" => {:v => "true"}}, :injured => {"1" => {:v => "true"}}})
|
|
95
115
|
should have_content(@players[0].name)
|
|
96
116
|
(1..3).each do |i|
|
|
@@ -99,6 +119,15 @@ describe "RailsAdmin Basic List" do
|
|
|
99
119
|
end
|
|
100
120
|
|
|
101
121
|
it "allows to filter on belongs_to relationships" do
|
|
122
|
+
RailsAdmin.config Player do
|
|
123
|
+
list do
|
|
124
|
+
field :name
|
|
125
|
+
field :team
|
|
126
|
+
field :injured
|
|
127
|
+
field :retired
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
|
|
102
131
|
visit index_path(:model_name => "player", :f => {:team => {"1" => { :v => @teams[0].name }}})
|
|
103
132
|
should have_content(@players[0].name)
|
|
104
133
|
should have_content(@players[1].name)
|
|
@@ -250,9 +279,9 @@ describe "RailsAdmin Basic List" do
|
|
|
250
279
|
end
|
|
251
280
|
end
|
|
252
281
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
282
|
+
get index_path(:model_name => "player")
|
|
283
|
+
expect(response.body).to include(%{$.filters.append("Name", "name", "string", "", null, "", 1);})
|
|
284
|
+
expect(response.body).to include(%{$.filters.append("Team", "team", "belongs_to_association", "", null, "", 2);})
|
|
256
285
|
end
|
|
257
286
|
end
|
|
258
287
|
|
|
@@ -267,19 +296,20 @@ describe "RailsAdmin Basic List" do
|
|
|
267
296
|
end
|
|
268
297
|
end
|
|
269
298
|
|
|
270
|
-
describe "GET /admin/player with
|
|
299
|
+
describe "GET /admin/player with 2 objects" do
|
|
271
300
|
before(:each) do
|
|
272
|
-
@players =
|
|
301
|
+
@players = 2.times.map { FactoryGirl.create :player }
|
|
273
302
|
visit index_path(:model_name => "player")
|
|
274
303
|
end
|
|
275
304
|
|
|
276
|
-
it "shows \"
|
|
277
|
-
should have_content("
|
|
305
|
+
it "shows \"2 results\"" do
|
|
306
|
+
should have_content("2 players")
|
|
278
307
|
end
|
|
279
308
|
end
|
|
280
309
|
|
|
281
310
|
describe "GET /admin/player with 3 pages, page 2" do
|
|
282
|
-
before
|
|
311
|
+
before do
|
|
312
|
+
RailsAdmin.config.default_items_per_page = 1
|
|
283
313
|
items_per_page = RailsAdmin.config.default_items_per_page
|
|
284
314
|
(items_per_page * 3).times { FactoryGirl.create(:player) }
|
|
285
315
|
visit index_path(:model_name => "player", :page => 2)
|
|
@@ -333,7 +363,7 @@ describe "RailsAdmin Basic List" do
|
|
|
333
363
|
describe "list as compact json" do
|
|
334
364
|
it "has_content an array with 2 elements and contain an array of elements with keys id and label" do
|
|
335
365
|
2.times.map { FactoryGirl.create :player }
|
|
336
|
-
|
|
366
|
+
get index_path(:model_name => "player", :compact => true, :format => :json)
|
|
337
367
|
expect(ActiveSupport::JSON.decode(response.body).length).to eq(2)
|
|
338
368
|
ActiveSupport::JSON.decode(response.body).each do |object|
|
|
339
369
|
expect(object).to have_key("id")
|
|
@@ -12,9 +12,9 @@ describe "RailsAdmin Basic Update" do
|
|
|
12
12
|
|
|
13
13
|
it "returns to edit page" do
|
|
14
14
|
fill_in "player[name]", :with => ""
|
|
15
|
-
click_button "Save"
|
|
15
|
+
click_button "Save" # first(:button, "Save").click
|
|
16
16
|
expect(page.driver.status_code).to eq(406)
|
|
17
|
-
should have_selector "form", :
|
|
17
|
+
should have_selector "form[action='#{edit_path(:model_name => "player", :id => @player.id)}']"
|
|
18
18
|
end
|
|
19
19
|
end
|
|
20
20
|
|
|
@@ -27,7 +27,7 @@ describe "RailsAdmin Basic Update" do
|
|
|
27
27
|
fill_in "player[name]", :with => "Jackie Robinson"
|
|
28
28
|
fill_in "player[number]", :with => "42"
|
|
29
29
|
fill_in "player[position]", :with => "Second baseman"
|
|
30
|
-
click_button "Save"
|
|
30
|
+
click_button "Save" # first(:button, "Save").click
|
|
31
31
|
|
|
32
32
|
@player = RailsAdmin::AbstractModel.new("Player").first
|
|
33
33
|
end
|
|
@@ -65,7 +65,7 @@ describe "RailsAdmin Basic Update" do
|
|
|
65
65
|
@player = FactoryGirl.create :player
|
|
66
66
|
@draft = FactoryGirl.create :draft
|
|
67
67
|
@number = @draft.player.number + 1 # to avoid collision
|
|
68
|
-
|
|
68
|
+
put edit_path(:model_name => "player", :id => @player.id, :player => {:name => "Jackie Robinson", :draft_id => @draft.id, :number => @number, :position => "Second baseman"})
|
|
69
69
|
@player.reload
|
|
70
70
|
end
|
|
71
71
|
|
|
@@ -89,9 +89,9 @@ describe "RailsAdmin Basic Update" do
|
|
|
89
89
|
|
|
90
90
|
@league = FactoryGirl.create :league
|
|
91
91
|
@divisions = 3.times.map { Division.create!(:name => "div #{Time.now.to_f}", :league => League.create!(:name => "league #{Time.now.to_f}")) }
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
92
|
+
|
|
93
|
+
put edit_path(:model_name => "league", :id => @league.id, :league => {:name => "National League", :division_ids => [@divisions[0].id] })
|
|
94
|
+
|
|
95
95
|
old_name = @league.name
|
|
96
96
|
@league.reload
|
|
97
97
|
expect(@league.name).to eq("National League")
|
|
@@ -102,7 +102,7 @@ describe "RailsAdmin Basic Update" do
|
|
|
102
102
|
|
|
103
103
|
expect(RailsAdmin::History.where(:item => @league.id).collect(&:message)).to include("name: \"#{old_name}\" -> \"National League\"")
|
|
104
104
|
|
|
105
|
-
|
|
105
|
+
put edit_path(:model_name => "league", :id => @league.id, :league => {:division_ids => [""]})
|
|
106
106
|
|
|
107
107
|
@league.reload
|
|
108
108
|
expect(@league.divisions).to be_empty
|
|
@@ -111,11 +111,11 @@ describe "RailsAdmin Basic Update" do
|
|
|
111
111
|
|
|
112
112
|
describe "update with missing object" do
|
|
113
113
|
before(:each) do
|
|
114
|
-
|
|
114
|
+
put edit_path(:model_name => "player", :id => 1), :params => {:player => {:name => "Jackie Robinson", :number => 42, :position => "Second baseman"}}
|
|
115
115
|
end
|
|
116
116
|
|
|
117
117
|
it "raises NotFound" do
|
|
118
|
-
expect(
|
|
118
|
+
expect(response.code).to eq("404")
|
|
119
119
|
end
|
|
120
120
|
end
|
|
121
121
|
|
|
@@ -128,7 +128,7 @@ describe "RailsAdmin Basic Update" do
|
|
|
128
128
|
fill_in "player[name]", :with => "Jackie Robinson"
|
|
129
129
|
fill_in "player[number]", :with => "a"
|
|
130
130
|
fill_in "player[position]", :with => "Second baseman"
|
|
131
|
-
click_button "Save"
|
|
131
|
+
click_button "Save" # first(:button, "Save").click
|
|
132
132
|
|
|
133
133
|
@player.reload
|
|
134
134
|
end
|
|
@@ -137,7 +137,7 @@ describe "RailsAdmin Basic Update" do
|
|
|
137
137
|
# TODO: Mongoid 3.0.0 lacks ability of numericality validation on Integer field.
|
|
138
138
|
# This is caused by change in https://github.com/mongoid/mongoid/pull/1698
|
|
139
139
|
# I believe this should be a bug in Mongoid.
|
|
140
|
-
expect(body).to have_content("Player failed to be updated") unless CI_ORM == :mongoid && Mongoid::VERSION >= '3.0.0'
|
|
140
|
+
expect(Capybara.string(body)).to have_content("Player failed to be updated") unless CI_ORM == :mongoid && Mongoid::VERSION >= '3.0.0'
|
|
141
141
|
end
|
|
142
142
|
end
|
|
143
143
|
|
|
@@ -154,7 +154,7 @@ describe "RailsAdmin Basic Update" do
|
|
|
154
154
|
visit edit_path(:model_name => "user", :id => @user.id)
|
|
155
155
|
|
|
156
156
|
fill_in "user[roles]", :with => %{['admin', 'user']}
|
|
157
|
-
click_button "Save"
|
|
157
|
+
click_button "Save" # first(:button, "Save").click
|
|
158
158
|
|
|
159
159
|
@user.reload
|
|
160
160
|
end
|
|
@@ -174,7 +174,7 @@ describe "RailsAdmin Basic Update" do
|
|
|
174
174
|
it "saves the serialized data" do
|
|
175
175
|
fill_in "field_test[array_field]", :with => "[4, 2]"
|
|
176
176
|
fill_in "field_test[hash_field]", :with => "{ a: 6, b: 2 }"
|
|
177
|
-
click_button "Save"
|
|
177
|
+
click_button "Save" # first(:button, "Save").click
|
|
178
178
|
|
|
179
179
|
@field_test.reload
|
|
180
180
|
expect(@field_test.array_field).to eq([4, 2])
|
|
@@ -184,7 +184,7 @@ describe "RailsAdmin Basic Update" do
|
|
|
184
184
|
it "clears data when empty string is passed" do
|
|
185
185
|
fill_in "field_test[array_field]", :with => ""
|
|
186
186
|
fill_in "field_test[hash_field]", :with => ""
|
|
187
|
-
click_button "Save"
|
|
187
|
+
click_button "Save" # first(:button, "Save").click
|
|
188
188
|
|
|
189
189
|
@field_test.reload
|
|
190
190
|
expect(@field_test.array_field).to eq(nil)
|
|
@@ -16,7 +16,7 @@ describe "RailsAdmin Config DSL Edit Section" do
|
|
|
16
16
|
end
|
|
17
17
|
visit new_path(:model_name => "field_test")
|
|
18
18
|
fill_in "field_test[format]", :with => "test for format"
|
|
19
|
-
click_button "Save"
|
|
19
|
+
click_button "Save" # first(:button, "Save").click
|
|
20
20
|
@record = RailsAdmin::AbstractModel.new("FieldTest").first
|
|
21
21
|
expect(@record.format).to eq("test for format")
|
|
22
22
|
end
|
|
@@ -93,7 +93,7 @@ describe "RailsAdmin Config DSL Edit Section" do
|
|
|
93
93
|
fill_in "field_test[string_field]", :with => "No problem here"
|
|
94
94
|
fill_in "field_test[restricted_field]", :with => "I'm allowed to do that as :custom_role only"
|
|
95
95
|
should have_no_selector "field_test[protected_field]"
|
|
96
|
-
click_button "Save"
|
|
96
|
+
click_button "Save" # first(:button, "Save").click
|
|
97
97
|
@field_test = FieldTest.first
|
|
98
98
|
expect(@field_test.string_field).to eq("No problem here")
|
|
99
99
|
expect(@field_test.restricted_field).to eq("I'm allowed to do that as :custom_role only")
|
|
@@ -161,7 +161,10 @@ describe "RailsAdmin Config DSL Edit Section" do
|
|
|
161
161
|
end
|
|
162
162
|
end
|
|
163
163
|
visit new_path(:model_name => "team")
|
|
164
|
-
|
|
164
|
+
# NOTE: capybara 2.0 is exceedingly reluctant to reveal the text of invisible elements. This was
|
|
165
|
+
# the least terrible option I was able to find. It would probably be better to refactor the test
|
|
166
|
+
# so the label we're looking for is displayed.
|
|
167
|
+
expect(find("legend", :visible => false).native.text).to include("Renamed group")
|
|
165
168
|
end
|
|
166
169
|
|
|
167
170
|
describe "help" do
|
|
@@ -309,12 +312,8 @@ describe "RailsAdmin Config DSL Edit Section" do
|
|
|
309
312
|
end
|
|
310
313
|
end
|
|
311
314
|
visit new_path(:model_name => "team")
|
|
312
|
-
should have_selector("legend", :text => "Basic info")
|
|
313
|
-
|
|
314
|
-
expect(nodes.count).to eq(2)
|
|
315
|
-
expect(nodes.first.visible?).to be_false
|
|
316
|
-
expect(nodes.last.visible?).to be_true
|
|
317
|
-
end
|
|
315
|
+
should have_selector("legend", :text => "Basic info", :visible => false)
|
|
316
|
+
should have_selector("legend", :text => "Basic info", :visible => true)
|
|
318
317
|
should have_selector("legend", :text => "Belong's to associations")
|
|
319
318
|
should have_selector("label", :text => "Name")
|
|
320
319
|
should have_selector("label", :text => "Logo url")
|
|
@@ -398,7 +397,7 @@ describe "RailsAdmin Config DSL Edit Section" do
|
|
|
398
397
|
after :each do
|
|
399
398
|
I18n.locale = :en
|
|
400
399
|
end
|
|
401
|
-
|
|
400
|
+
|
|
402
401
|
it "delegates the label option to the ActiveModel API and memoizes it" do
|
|
403
402
|
RailsAdmin.config Team do
|
|
404
403
|
edit do
|
|
@@ -611,10 +610,10 @@ describe "RailsAdmin Config DSL Edit Section" do
|
|
|
611
610
|
|
|
612
611
|
visit new_path(:model_name => 'category')
|
|
613
612
|
should have_no_css('#category_parent_category_id')
|
|
614
|
-
click_button
|
|
613
|
+
click_button "Save" # first(:button, "Save").click
|
|
615
614
|
visit edit_path(:model_name => 'category', :id => Category.first)
|
|
616
615
|
should have_css('#category_parent_category_id')
|
|
617
|
-
click_button
|
|
616
|
+
click_button "Save" # first(:button, "Save").click
|
|
618
617
|
should have_content('Category successfully updated')
|
|
619
618
|
end
|
|
620
619
|
end
|
|
@@ -627,7 +626,7 @@ describe "RailsAdmin Config DSL Edit Section" do
|
|
|
627
626
|
fill_in "field_test_comment_attributes_content", :with => 'nested comment content'
|
|
628
627
|
fill_in "field_test_nested_field_tests_attributes_0_title", :with => 'nested field test title 1 edited'
|
|
629
628
|
page.find('#field_test_nested_field_tests_attributes_1__destroy').set('true')
|
|
630
|
-
click_button "Save"
|
|
629
|
+
click_button "Save" # first(:button, "Save").click
|
|
631
630
|
@record.reload
|
|
632
631
|
expect(@record.comment.content).to eq('nested comment content')
|
|
633
632
|
expect(@record.nested_field_tests.length).to eq(1)
|
|
@@ -706,7 +705,7 @@ describe "RailsAdmin Config DSL Edit Section" do
|
|
|
706
705
|
visit edit_path(:model_name => "field_test", :id => @record.id)
|
|
707
706
|
fill_in "field_test_embeds_attributes_0_name", :with => 'embed 1 edited'
|
|
708
707
|
page.find('#field_test_embeds_attributes_1__destroy').set('true')
|
|
709
|
-
click_button "Save"
|
|
708
|
+
click_button "Save" # first(:button, "Save").click
|
|
710
709
|
@record.reload
|
|
711
710
|
expect(@record.embeds.length).to eq(1)
|
|
712
711
|
expect(@record.embeds[0].name).to eq('embed 1 edited')
|