activeadmin 1.0.0.pre4 → 1.0.0.pre5
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of activeadmin might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.gitignore +3 -3
- data/.travis.yml +48 -26
- data/Appraisals +103 -0
- data/CHANGELOG.md +12 -1
- data/CONTRIBUTING.md +85 -32
- data/Gemfile +13 -38
- data/README.md +10 -26
- data/Rakefile +41 -9
- data/activeadmin.gemspec +7 -4
- data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +10 -3
- data/app/assets/javascripts/active_admin/jquery_ui.js.erb +11 -4
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +8 -0
- data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +1 -1
- data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +14 -3
- data/app/assets/stylesheets/active_admin/_forms.scss +1 -0
- data/app/views/active_admin/devise/registrations/new.html.erb +1 -1
- data/codecov.yml +23 -0
- data/config/locales/es-MX.yml +1 -1
- data/config/locales/es.yml +1 -1
- data/config/locales/ru.yml +1 -0
- data/config/locales/sk.yml +110 -0
- data/docs/0-installation.md +3 -0
- data/docs/1-general-configuration.md +11 -0
- data/docs/10-custom-pages.md +25 -0
- data/docs/11-decorators.md +3 -0
- data/docs/12-arbre-components.md +3 -0
- data/docs/13-authorization-adapter.md +3 -0
- data/docs/14-gotchas.md +19 -0
- data/docs/2-resource-customization.md +21 -2
- data/docs/3-index-pages.md +21 -0
- data/docs/3-index-pages/custom-index.md +3 -0
- data/docs/3-index-pages/index-as-block.md +3 -0
- data/docs/3-index-pages/index-as-blog.md +3 -0
- data/docs/3-index-pages/index-as-grid.md +3 -0
- data/docs/3-index-pages/index-as-table.md +22 -0
- data/docs/4-csv-format.md +15 -0
- data/docs/5-forms.md +7 -3
- data/docs/6-show-pages.md +3 -0
- data/docs/7-sidebars.md +3 -0
- data/docs/8-custom-actions.md +3 -0
- data/docs/9-batch-actions.md +4 -1
- data/docs/CNAME +1 -0
- data/docs/Gemfile +2 -0
- data/docs/_config.yml +2 -0
- data/docs/_includes/footer.html +8 -0
- data/docs/_includes/google-analytics.html +16 -0
- data/docs/_includes/head.html +7 -0
- data/docs/_includes/toc.html +97 -0
- data/docs/_includes/top-menu.html +9 -0
- data/docs/_layouts/default.html +21 -0
- data/docs/documentation.md +62 -0
- data/docs/images/activeadmin.png +0 -0
- data/docs/images/code-header.png +0 -0
- data/docs/images/divider.png +0 -0
- data/docs/images/features.png +0 -0
- data/docs/index.html +130 -0
- data/docs/stylesheets/main.css +1199 -0
- data/features/action_item.feature +2 -2
- data/features/authorization_cancan.feature +3 -3
- data/features/belongs_to.feature +60 -2
- data/features/comments/commenting.feature +7 -7
- data/features/development_reloading.feature +1 -1
- data/features/edit_page.feature +9 -9
- data/features/footer.feature +28 -0
- data/features/i18n.feature +11 -0
- data/features/index/batch_actions.feature +28 -6
- data/features/index/filters.feature +31 -11
- data/features/index/format_as_csv.feature +13 -13
- data/features/index/formats.feature +4 -4
- data/features/index/index_as_block.feature +1 -1
- data/features/index/index_as_blog.feature +6 -6
- data/features/index/index_as_grid.feature +3 -3
- data/features/index/index_as_table.feature +11 -11
- data/features/index/index_blank_slate.feature +4 -4
- data/features/index/index_parameters.feature +10 -10
- data/features/index/index_scope_to.feature +3 -3
- data/features/index/index_scopes.feature +37 -18
- data/features/index/page_title.feature +3 -3
- data/features/index/pagination.feature +1 -1
- data/features/index/switch_index_view.feature +8 -8
- data/features/menu.feature +3 -3
- data/features/new_page.feature +8 -8
- data/features/registering_assets.feature +1 -1
- data/features/registering_pages.feature +73 -2
- data/features/registering_resources.feature +1 -1
- data/features/renamed_resource.feature +1 -1
- data/features/show/page_title.feature +3 -3
- data/features/sidebar_sections.feature +6 -6
- data/features/specifying_actions.feature +29 -4
- data/features/step_definitions/factory_steps.rb +1 -1
- data/features/step_definitions/footer_steps.rb +11 -0
- data/features/step_definitions/i18n_steps.rb +8 -0
- data/features/step_definitions/index_scope_steps.rb +4 -0
- data/features/step_definitions/sidebar_steps.rb +1 -3
- data/features/step_definitions/table_steps.rb +1 -5
- data/features/step_definitions/user_steps.rb +7 -0
- data/features/support/env.rb +6 -33
- data/features/support/paths.rb +5 -0
- data/features/users/logging_in.feature +2 -0
- data/gemfiles/rails_32.gemfile +54 -0
- data/gemfiles/rails_40.gemfile +53 -0
- data/gemfiles/rails_41.gemfile +53 -0
- data/gemfiles/rails_42.gemfile +53 -0
- data/gemfiles/rails_50.gemfile +46 -0
- data/lib/active_admin.rb +1 -0
- data/lib/active_admin/application.rb +11 -0
- data/lib/active_admin/batch_actions/resource_extension.rb +0 -8
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +1 -1
- data/lib/active_admin/batch_actions/views/batch_action_selector.rb +1 -1
- data/lib/active_admin/dsl.rb +0 -6
- data/lib/active_admin/filters/active.rb +9 -1
- data/lib/active_admin/filters/formtastic_addons.rb +1 -1
- data/lib/active_admin/filters/humanized.rb +1 -1
- data/lib/active_admin/filters/resource_extension.rb +2 -4
- data/lib/active_admin/form_builder.rb +12 -6
- data/lib/active_admin/helpers/collection.rb +2 -0
- data/lib/active_admin/inputs.rb +1 -0
- data/lib/active_admin/inputs/filters/date_range_input.rb +9 -4
- data/lib/active_admin/inputs/filters/text_input.rb +26 -0
- data/lib/active_admin/localizers.rb +11 -0
- data/lib/active_admin/localizers/resource_localizer.rb +35 -0
- data/lib/active_admin/namespace.rb +1 -1
- data/lib/active_admin/order_clause.rb +29 -7
- data/lib/active_admin/page.rb +18 -4
- data/lib/active_admin/page_dsl.rb +4 -0
- data/lib/active_admin/resource.rb +16 -1
- data/lib/active_admin/resource/action_items.rb +7 -4
- data/lib/active_admin/resource/belongs_to.rb +4 -0
- data/lib/active_admin/resource/menu.rb +1 -1
- data/lib/active_admin/resource/ordering.rb +11 -0
- data/lib/active_admin/resource/routes.rb +34 -13
- data/lib/active_admin/resource/scopes.rb +1 -0
- data/lib/active_admin/resource_controller/data_access.rb +3 -10
- data/lib/active_admin/resource_dsl.rb +28 -1
- data/lib/active_admin/router.rb +5 -3
- data/lib/active_admin/scope.rb +3 -3
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_helpers/auto_link_helper.rb +2 -2
- data/lib/active_admin/view_helpers/display_helper.rb +8 -3
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +5 -1
- data/lib/active_admin/views/components/active_admin_form.rb +11 -10
- data/lib/active_admin/views/components/attributes_table.rb +1 -1
- data/lib/active_admin/views/components/columns.rb +3 -3
- data/lib/active_admin/views/components/dropdown_menu.rb +2 -2
- data/lib/active_admin/views/components/index_list.rb +4 -1
- data/lib/active_admin/views/components/paginated_collection.rb +1 -0
- data/lib/active_admin/views/components/scopes.rb +8 -1
- data/lib/active_admin/views/components/site_title.rb +2 -2
- data/lib/active_admin/views/components/table_for.rb +3 -3
- data/lib/active_admin/views/footer.rb +17 -3
- data/lib/active_admin/views/index_as_table.rb +3 -3
- data/lib/active_admin/views/pages/base.rb +4 -2
- data/lib/active_admin/views/pages/form.rb +2 -3
- data/lib/active_admin/views/pages/show.rb +2 -1
- data/lib/bug_report_templates/rails_5_master.rb +120 -0
- data/lib/generators/active_admin/devise/devise_generator.rb +6 -3
- data/lib/generators/active_admin/install/install_generator.rb +1 -1
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +15 -1
- data/lib/generators/active_admin/install/templates/migrations/{create_active_admin_comments.rb → create_active_admin_comments.rb.erb} +14 -1
- data/lib/ransack_ext.rb +2 -2
- data/spec/bug_report_templates_spec.rb +27 -0
- data/spec/javascripts/support/jasmine_runner.rb +4 -17
- data/spec/rails_helper.rb +20 -109
- data/spec/requests/default_namespace_spec.rb +16 -28
- data/spec/requests/javascript_spec.rb +1 -1
- data/spec/requests/memory_spec.rb +5 -1
- data/spec/requests/stylesheets_spec.rb +1 -1
- data/spec/spec_helper.rb +5 -10
- data/spec/support/active_admin_integration_spec_helper.rb +66 -0
- data/spec/support/active_admin_request_helpers.rb +12 -0
- data/spec/support/rails_template.rb +42 -15
- data/spec/support/rails_template_with_data.rb +24 -5
- data/spec/support/templates/manifest.js +3 -0
- data/spec/support/templates/policies/application_policy.rb +1 -1
- data/spec/unit/abstract_view_factory_spec.rb +1 -1
- data/spec/unit/action_builder_spec.rb +3 -12
- data/spec/unit/active_admin_spec.rb +1 -1
- data/spec/unit/application_spec.rb +5 -1
- data/spec/unit/asset_registration_spec.rb +1 -1
- data/spec/unit/authorization/authorization_adapter_spec.rb +1 -1
- data/spec/unit/authorization/controller_authorization_spec.rb +13 -9
- data/spec/unit/authorization/index_overriding_spec.rb +6 -6
- data/spec/unit/auto_link_spec.rb +48 -24
- data/spec/unit/batch_actions/resource_spec.rb +1 -14
- data/spec/unit/batch_actions/settings_spec.rb +1 -1
- data/spec/unit/belongs_to_spec.rb +9 -1
- data/spec/unit/cancan_adapter_spec.rb +1 -1
- data/spec/unit/comments_spec.rb +26 -19
- data/spec/unit/component_spec.rb +1 -1
- data/spec/unit/config_shared_examples.rb +1 -1
- data/spec/unit/controller_filters_spec.rb +1 -1
- data/spec/unit/csv_builder_spec.rb +5 -5
- data/spec/unit/dependency_spec.rb +1 -1
- data/spec/unit/devise_spec.rb +17 -3
- data/spec/unit/dsl_spec.rb +2 -2
- data/spec/unit/filters/active_spec.rb +21 -0
- data/spec/unit/filters/filter_form_builder_spec.rb +98 -31
- data/spec/unit/filters/humanized_spec.rb +9 -1
- data/spec/unit/filters/resource_spec.rb +5 -4
- data/spec/unit/form_builder_spec.rb +180 -33
- data/spec/unit/generators/install_spec.rb +12 -5
- data/spec/unit/helpers/collection_spec.rb +10 -7
- data/spec/unit/helpers/scope_chain_spec.rb +1 -1
- data/spec/unit/helpers/settings_spec.rb +1 -1
- data/spec/unit/i18n_spec.rb +1 -1
- data/spec/unit/localizers/resource_localizer_spec.rb +36 -0
- data/spec/unit/menu_collection_spec.rb +1 -1
- data/spec/unit/menu_item_spec.rb +1 -1
- data/spec/unit/menu_spec.rb +1 -1
- data/spec/unit/namespace/authorization_spec.rb +1 -1
- data/spec/unit/namespace/register_page_spec.rb +28 -2
- data/spec/unit/namespace/register_resource_spec.rb +3 -1
- data/spec/unit/namespace_spec.rb +23 -1
- data/spec/unit/order_clause_spec.rb +7 -7
- data/spec/unit/page_controller_spec.rb +1 -1
- data/spec/unit/page_spec.rb +55 -2
- data/spec/unit/pretty_format_spec.rb +8 -7
- data/spec/unit/pundit_adapter_spec.rb +1 -1
- data/spec/unit/resource/action_items_spec.rb +1 -1
- data/spec/unit/resource/includes_spec.rb +1 -1
- data/spec/unit/resource/menu_spec.rb +1 -1
- data/spec/unit/resource/naming_spec.rb +1 -1
- data/spec/unit/resource/ordering_spec.rb +38 -0
- data/spec/unit/resource/page_presenters_spec.rb +1 -1
- data/spec/unit/resource/pagination_spec.rb +1 -1
- data/spec/unit/resource/routes_spec.rb +101 -53
- data/spec/unit/resource/scopes_spec.rb +1 -1
- data/spec/unit/resource/sidebars_spec.rb +1 -1
- data/spec/unit/resource_collection_spec.rb +1 -1
- data/spec/unit/resource_controller/data_access_spec.rb +50 -1
- data/spec/unit/resource_controller/decorators_spec.rb +2 -2
- data/spec/unit/resource_controller/sidebars_spec.rb +16 -17
- data/spec/unit/resource_controller_spec.rb +50 -56
- data/spec/unit/resource_registration_spec.rb +9 -4
- data/spec/unit/resource_spec.rb +9 -1
- data/spec/unit/routing_spec.rb +30 -2
- data/spec/unit/scope_spec.rb +26 -2
- data/spec/unit/settings_spec.rb +2 -2
- data/spec/unit/view_factory_spec.rb +1 -1
- data/spec/unit/view_helpers/breadcrumbs_spec.rb +1 -1
- data/spec/unit/view_helpers/display_helper_spec.rb +18 -3
- data/spec/unit/view_helpers/download_format_links_helper_spec.rb +1 -1
- data/spec/unit/view_helpers/fields_for_spec.rb +1 -1
- data/spec/unit/view_helpers/flash_helper_spec.rb +1 -1
- data/spec/unit/view_helpers/form_helper_spec.rb +1 -1
- data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +1 -1
- data/spec/unit/views/components/attributes_table_spec.rb +1 -1
- data/spec/unit/views/components/batch_action_selector_spec.rb +1 -1
- data/spec/unit/views/components/blank_slate_spec.rb +1 -1
- data/spec/unit/views/components/columns_spec.rb +1 -1
- data/spec/unit/views/components/index_list_spec.rb +18 -4
- data/spec/unit/views/components/index_table_for_spec.rb +1 -1
- data/spec/unit/views/components/paginated_collection_spec.rb +1 -1
- data/spec/unit/views/components/panel_spec.rb +1 -1
- data/spec/unit/views/components/sidebar_section_spec.rb +1 -1
- data/spec/unit/views/components/site_title_spec.rb +1 -1
- data/spec/unit/views/components/status_tag_spec.rb +1 -1
- data/spec/unit/views/components/table_for_spec.rb +9 -7
- data/spec/unit/views/components/tabs_spec.rb +1 -1
- data/spec/unit/views/components/unsupported_browser_spec.rb +3 -3
- data/spec/unit/views/index_as_blog_spec.rb +1 -1
- data/spec/unit/views/pages/form_spec.rb +1 -1
- data/spec/unit/views/pages/index_spec.rb +1 -1
- data/spec/unit/views/pages/layout_spec.rb +1 -1
- data/spec/unit/views/pages/show_spec.rb +1 -1
- data/spec/unit/views/tabbed_navigation_spec.rb +2 -2
- data/tasks/local.rake +25 -0
- data/tasks/parallel_tests.rake +4 -4
- data/tasks/test.rake +8 -53
- metadata +61 -18
- data/Guardfile +0 -8
- data/script/local +0 -53
- data/script/travis_cache +0 -107
- data/script/use_rails +0 -53
- data/spec/javascripts/support/jasmine_config.rb +0 -23
- data/spec/support/detect_rails_version.rb +0 -34
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
module ActiveAdmin
|
4
|
+
RSpec.describe Resource, "Ordering" do
|
5
|
+
describe "#order_by" do
|
6
|
+
|
7
|
+
let(:application) { ActiveAdmin::Application.new }
|
8
|
+
let(:namespace) { ActiveAdmin::Namespace.new application, :admin }
|
9
|
+
let(:resource_config) { ActiveAdmin::Resource.new namespace, Post }
|
10
|
+
let(:dsl){ ActiveAdmin::ResourceDSL.new(resource_config, Post) }
|
11
|
+
|
12
|
+
it "should register the ordering in the config" do
|
13
|
+
dsl.run_registration_block do
|
14
|
+
order_by(:age) do |order_clause|
|
15
|
+
if order_clause.order == 'desc'
|
16
|
+
[order_clause.to_sql, 'NULLS LAST'].join(' ')
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
expect(resource_config.ordering.size).to eq(1)
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
it "should allow to setup custom ordering class" do
|
25
|
+
MyOrderClause = Class.new(ActiveAdmin::OrderClause)
|
26
|
+
dsl.run_registration_block do
|
27
|
+
config.order_clause = MyOrderClause
|
28
|
+
end
|
29
|
+
expect(resource_config.order_clause).to eq(MyOrderClause)
|
30
|
+
expect(application.order_clause).to eq(ActiveAdmin::OrderClause)
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
|
@@ -1,76 +1,124 @@
|
|
1
|
-
require 'rails_helper'
|
1
|
+
require 'rails_helper'
|
2
2
|
|
3
|
-
|
4
|
-
describe Resource::Routes do
|
3
|
+
RSpec.describe ActiveAdmin::Resource::Routes do
|
5
4
|
|
6
|
-
|
7
|
-
|
5
|
+
after do
|
6
|
+
load_defaults!
|
7
|
+
reload_routes!
|
8
|
+
end
|
9
|
+
|
10
|
+
let(:application) { ActiveAdmin.application }
|
11
|
+
let(:namespace) { application.namespace(:admin) }
|
12
|
+
|
13
|
+
context "when in the admin namespace" do
|
14
|
+
let(:config) { namespace.resource_for('Category') }
|
15
|
+
|
16
|
+
before do
|
17
|
+
load_resources { ActiveAdmin.register Category }
|
18
|
+
end
|
19
|
+
|
20
|
+
let(:category) { Category.new { |c| c.id = 123 } }
|
21
|
+
|
22
|
+
it "should return the route prefix" do
|
23
|
+
expect(config.route_prefix).to eq 'admin'
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should return the route collection path" do
|
27
|
+
expect(config.route_collection_path).to eq '/admin/categories'
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should return the route instance path" do
|
31
|
+
expect(config.route_instance_path(category)).to eq '/admin/categories/123'
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
context "when in the root namespace" do
|
36
|
+
let!(:config) { ActiveAdmin.register Category, namespace: false }
|
37
|
+
|
38
|
+
after(:each) do
|
39
|
+
application.namespace(:root).unload!
|
40
|
+
application.namespaces.instance_variable_get(:@namespaces).delete(:root)
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should have a nil route_prefix" do
|
44
|
+
expect(config.route_prefix).to eq nil
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should generate a correct route" do
|
8
48
|
reload_routes!
|
49
|
+
expect(config.route_collection_path).to eq "/categories"
|
9
50
|
end
|
51
|
+
end
|
10
52
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
53
|
+
context "when registering a plural resource" do
|
54
|
+
class ::News; def self.has_many(*); end end
|
55
|
+
let!(:config) { ActiveAdmin.register News }
|
56
|
+
before{ reload_routes! }
|
15
57
|
|
16
|
-
|
17
|
-
|
18
|
-
|
58
|
+
it "should return the plural route with _index" do
|
59
|
+
expect(config.route_collection_path).to eq "/admin/news"
|
60
|
+
end
|
61
|
+
end
|
19
62
|
|
20
|
-
|
21
|
-
|
22
|
-
end
|
63
|
+
context "when the resource belongs to another resource" do
|
64
|
+
let(:config) { namespace.resource_for('Post') }
|
23
65
|
|
24
|
-
|
25
|
-
|
26
|
-
|
66
|
+
let :post do
|
67
|
+
Post.new do |p|
|
68
|
+
p.id = 3
|
69
|
+
p.category = Category.new{ |c| c.id = 1 }
|
27
70
|
end
|
71
|
+
end
|
28
72
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
end
|
34
|
-
|
35
|
-
it "should generate a correct route" do
|
36
|
-
reload_routes!
|
37
|
-
expect(config.route_collection_path).to eq "/categories"
|
38
|
-
end
|
73
|
+
before do
|
74
|
+
load_resources do
|
75
|
+
ActiveAdmin.register Category
|
76
|
+
ActiveAdmin.register(Post) { belongs_to :category }
|
39
77
|
end
|
78
|
+
end
|
40
79
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
before{ reload_routes! }
|
80
|
+
it "should nest the collection path" do
|
81
|
+
expect(config.route_collection_path(category_id: 1)).to eq "/admin/categories/1/posts"
|
82
|
+
end
|
45
83
|
|
46
|
-
|
47
|
-
|
84
|
+
it "should nest the instance path" do
|
85
|
+
expect(config.route_instance_path(post)).to eq "/admin/categories/1/posts/3"
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
context "for batch_action handler" do
|
90
|
+
before do
|
91
|
+
load_resources { config.batch_actions = true }
|
92
|
+
end
|
93
|
+
|
94
|
+
context "when register a singular resource" do
|
95
|
+
|
96
|
+
let :config do
|
97
|
+
ActiveAdmin.register Category
|
98
|
+
ActiveAdmin.register Post do
|
99
|
+
belongs_to :category
|
48
100
|
end
|
49
101
|
end
|
50
102
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
end
|
56
|
-
end
|
103
|
+
it "should include :scope and :q params" do
|
104
|
+
params = { category_id: 1, q: { name_equals: "Any" }, scope: :all }
|
105
|
+
additional_params = { locale: 'en' }
|
106
|
+
batch_action_path = "/admin/categories/1/posts/batch_action?locale=en&q%5Bname_equals%5D=Any&scope=all"
|
57
107
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
p.category = Category.new{ |c| c.id = 1 }
|
62
|
-
end
|
63
|
-
end
|
108
|
+
expect(config.route_batch_action_path(params, additional_params)).to eq batch_action_path
|
109
|
+
end
|
110
|
+
end
|
64
111
|
|
65
|
-
|
112
|
+
context "when registering a plural resource" do
|
66
113
|
|
67
|
-
|
68
|
-
|
69
|
-
end
|
114
|
+
class ::News; def self.has_many(*); end end
|
115
|
+
let(:config) { ActiveAdmin.register News }
|
70
116
|
|
71
|
-
|
72
|
-
|
73
|
-
|
117
|
+
it "should return the plural batch action route with _index and given params" do
|
118
|
+
params = { q: { name_equals: "Any" }, scope: :all }
|
119
|
+
additional_params = { locale: 'en' }
|
120
|
+
batch_action_path = "/admin/news/batch_action?locale=en&q%5Bname_equals%5D=Any&scope=all"
|
121
|
+
expect(config.route_batch_action_path(params, additional_params)).to eq batch_action_path
|
74
122
|
end
|
75
123
|
end
|
76
124
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
require 'active_admin/resource_collection'
|
3
3
|
|
4
|
-
describe ActiveAdmin::ResourceCollection do
|
4
|
+
RSpec.describe ActiveAdmin::ResourceCollection do
|
5
5
|
let(:application) { ActiveAdmin::Application.new }
|
6
6
|
let(:namespace) { ActiveAdmin::Namespace.new application, :admin }
|
7
7
|
let(:collection) { ActiveAdmin::ResourceCollection.new }
|
@@ -1,6 +1,10 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
|
3
|
-
describe ActiveAdmin::ResourceController::DataAccess do
|
3
|
+
RSpec.describe ActiveAdmin::ResourceController::DataAccess do
|
4
|
+
before do
|
5
|
+
load_resources { ActiveAdmin.register Post }
|
6
|
+
end
|
7
|
+
|
4
8
|
let(:params) do
|
5
9
|
{}
|
6
10
|
end
|
@@ -20,6 +24,22 @@ describe ActiveAdmin::ResourceController::DataAccess do
|
|
20
24
|
expect(chain).to receive(:ransack).with(params[:q]).once.and_return(Post.ransack)
|
21
25
|
controller.send :apply_filtering, chain
|
22
26
|
end
|
27
|
+
|
28
|
+
context "params includes empty values" do
|
29
|
+
let(:params) do
|
30
|
+
{ q: {id_eq: 1, position_eq: ""} }
|
31
|
+
end
|
32
|
+
it "should return relation without empty filters" do
|
33
|
+
expect(Post).to receive(:ransack).with(params[:q]).once.and_wrap_original do |original, *args|
|
34
|
+
chain = original.call(*args)
|
35
|
+
expect(chain.conditions.size).to eq(1)
|
36
|
+
chain
|
37
|
+
end
|
38
|
+
controller.send :apply_filtering, Post
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
|
23
43
|
end
|
24
44
|
|
25
45
|
describe "sorting" do
|
@@ -44,6 +64,35 @@ describe ActiveAdmin::ResourceController::DataAccess do
|
|
44
64
|
end
|
45
65
|
end
|
46
66
|
|
67
|
+
context "custom strategy" do
|
68
|
+
before do
|
69
|
+
expect(controller.send(:active_admin_config)).to receive(:ordering).twice.and_return(
|
70
|
+
{
|
71
|
+
published_date: proc do |order_clause|
|
72
|
+
[order_clause.to_sql, 'NULLS LAST'].join(' ') if order_clause.order == 'desc'
|
73
|
+
end
|
74
|
+
}.with_indifferent_access
|
75
|
+
)
|
76
|
+
end
|
77
|
+
|
78
|
+
context "when params applicable" do
|
79
|
+
let(:params) {{ order: "published_date_desc" }}
|
80
|
+
it "reorders chain" do
|
81
|
+
chain = double "ChainObj"
|
82
|
+
expect(chain).to receive(:reorder).with('"posts"."published_date" desc NULLS LAST').once.and_return(Post.search)
|
83
|
+
controller.send :apply_sorting, chain
|
84
|
+
end
|
85
|
+
end
|
86
|
+
context "when params not applicable" do
|
87
|
+
let(:params) {{ order: "published_date_asc" }}
|
88
|
+
it "reorders chain" do
|
89
|
+
chain = double "ChainObj"
|
90
|
+
expect(chain).to receive(:reorder).with('"posts"."published_date" asc').once.and_return(Post.search)
|
91
|
+
controller.send :apply_sorting, chain
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
47
96
|
end
|
48
97
|
|
49
98
|
describe "scoping" do
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
|
3
|
-
describe ActiveAdmin::ResourceController::Decorators do
|
3
|
+
RSpec.describe ActiveAdmin::ResourceController::Decorators do
|
4
4
|
let(:controller_class) do
|
5
5
|
Class.new do
|
6
6
|
def self.name
|
@@ -34,7 +34,7 @@ describe ActiveAdmin::ResourceController::Decorators do
|
|
34
34
|
|
35
35
|
it "does not decorate when :decorate is set to false" do
|
36
36
|
form = double
|
37
|
-
allow(form).to receive(:options).and_return(:
|
37
|
+
allow(form).to receive(:options).and_return(decorate: false)
|
38
38
|
allow(active_admin_config).to receive(:get_page_presenter).and_return(form)
|
39
39
|
is_expected.not_to be_kind_of(PostDecorator)
|
40
40
|
end
|
@@ -1,37 +1,36 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
|
3
|
-
describe ActiveAdmin::ResourceController::Sidebars, type: :controller do
|
3
|
+
RSpec.describe ActiveAdmin::ResourceController::Sidebars, type: :controller do
|
4
4
|
let(:klass){ Admin::PostsController }
|
5
|
-
render_views # https://github.com/rspec/rspec-rails/issues/860
|
6
5
|
|
7
|
-
|
8
|
-
|
6
|
+
shared_context 'with post config' do
|
7
|
+
before do
|
8
|
+
load_resources { post_config }
|
9
|
+
|
10
|
+
@controller = klass.new
|
11
|
+
|
12
|
+
get :index
|
13
|
+
end
|
9
14
|
end
|
10
15
|
|
11
|
-
context 'without
|
12
|
-
|
13
|
-
ActiveAdmin.register Post
|
14
|
-
reload_routes!
|
16
|
+
context 'without skip_sidebar! before filter' do
|
17
|
+
include_context 'with post config' do
|
18
|
+
let(:post_config) { ActiveAdmin.register Post }
|
15
19
|
end
|
16
20
|
|
17
21
|
it 'does not set @skip_sidebar' do
|
18
|
-
get :index
|
19
|
-
|
20
22
|
expect(controller.instance_variable_get(:@skip_sidebar)).to eq nil
|
21
23
|
end
|
22
24
|
end
|
23
25
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
before_filter :skip_sidebar!
|
26
|
+
context 'with skip_sidebar! before_filter' do
|
27
|
+
include_context 'with post config' do
|
28
|
+
let(:post_config) do
|
29
|
+
ActiveAdmin.register(Post) { before_filter :skip_sidebar! }
|
28
30
|
end
|
29
|
-
reload_routes!
|
30
31
|
end
|
31
32
|
|
32
33
|
it 'works' do
|
33
|
-
get :index
|
34
|
-
|
35
34
|
expect(controller.instance_variable_get(:@skip_sidebar)).to eq true
|
36
35
|
end
|
37
36
|
end
|