activeadmin 1.3.0 → 2.0.0.rc1
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/CHANGELOG.md +307 -123
- data/CODE_OF_CONDUCT.md +64 -12
- data/CONTRIBUTING.md +90 -46
- data/README.md +66 -19
- data/app/assets/javascripts/active_admin/base.es6 +23 -0
- data/app/assets/javascripts/active_admin/ext/jquery-ui.es6 +7 -0
- data/app/assets/javascripts/active_admin/ext/jquery.es6 +9 -0
- data/app/assets/javascripts/active_admin/initializers/datepicker.es6 +16 -0
- data/app/assets/javascripts/active_admin/initializers/filters.es6 +45 -0
- data/app/assets/javascripts/active_admin/initializers/tabs.es6 +6 -0
- data/app/assets/javascripts/active_admin/lib/active_admin.es6 +41 -0
- data/app/assets/javascripts/active_admin/lib/batch_actions.es6 +55 -0
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.es6 +49 -0
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.es6 +123 -0
- data/app/assets/javascripts/active_admin/lib/has_many.es6 +95 -0
- data/app/assets/javascripts/active_admin/lib/modal_dialog.es6 +61 -0
- data/app/assets/javascripts/active_admin/lib/per_page.es6 +47 -0
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.es6 +36 -0
- data/app/assets/stylesheets/active_admin/_forms.scss +3 -15
- data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
- data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
- data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
- data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
- data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
- data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
- data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
- data/app/views/active_admin/devise/registrations/new.html.erb +2 -3
- data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
- data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
- data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
- data/app/views/layouts/active_admin_logged_out.html.erb +2 -2
- data/config/locales/bg.yml +0 -1
- data/config/locales/de.yml +10 -0
- data/config/locales/en.yml +19 -1
- data/config/locales/es.yml +20 -1
- data/config/locales/fi.yml +1 -1
- data/config/locales/he.yml +0 -1
- data/config/locales/hu.yml +4 -0
- data/config/locales/it.yml +4 -0
- data/config/locales/lt.yml +2 -2
- data/config/locales/nb.yml +15 -5
- data/config/locales/nl.yml +11 -0
- data/config/locales/pl.yml +71 -3
- data/config/locales/ru.yml +2 -0
- data/config/locales/tr.yml +9 -0
- data/config/locales/uk.yml +2 -0
- data/config/locales/zh-CN.yml +33 -5
- data/docs/.gitignore +1 -0
- data/docs/0-installation.md +2 -2
- data/docs/1-general-configuration.md +16 -1
- data/docs/10-custom-pages.md +14 -0
- data/docs/12-arbre-components.md +28 -1
- data/docs/13-authorization-adapter.md +40 -21
- data/docs/2-resource-customization.md +8 -3
- data/docs/3-index-pages/custom-index.md +1 -1
- data/docs/3-index-pages/index-as-blog.md +1 -1
- data/docs/3-index-pages/index-as-table.md +5 -5
- data/docs/3-index-pages.md +17 -0
- data/docs/5-forms.md +16 -2
- data/docs/8-custom-actions.md +11 -0
- data/docs/CNAME +1 -1
- data/docs/Gemfile +2 -0
- data/docs/Gemfile.lock +249 -0
- data/docs/_config.yml +1 -1
- data/docs/_includes/toc.html +1 -1
- data/docs/_includes/top-menu.html +9 -1
- data/docs/documentation.md +1 -1
- data/docs/images/tidelift.svg +14 -0
- data/docs/index.html +2 -2
- data/docs/stylesheets/main.css +26 -2
- data/lib/active_admin/abstract_view_factory.rb +13 -51
- data/lib/active_admin/application.rb +49 -155
- data/lib/active_admin/application_settings.rb +42 -0
- data/lib/active_admin/asset_registration.rb +0 -8
- data/lib/active_admin/base_controller/authorization.rb +3 -6
- data/lib/active_admin/base_controller.rb +6 -6
- data/lib/active_admin/batch_actions/controller.rb +2 -2
- data/lib/active_admin/batch_actions/resource_extension.rb +4 -4
- data/lib/active_admin/callbacks.rb +1 -1
- data/lib/active_admin/csv_builder.rb +1 -1
- data/lib/active_admin/dependency.rb +1 -69
- data/lib/active_admin/deprecation.rb +0 -25
- data/lib/active_admin/dsl.rb +1 -8
- data/lib/active_admin/dynamic_setting.rb +38 -0
- data/lib/active_admin/dynamic_settings_node.rb +28 -0
- data/lib/active_admin/engine.rb +5 -0
- data/lib/active_admin/error.rb +1 -1
- data/lib/active_admin/filters/active_filter.rb +4 -2
- data/lib/active_admin/filters/active_sidebar.rb +5 -1
- data/lib/active_admin/filters/forms.rb +7 -4
- data/lib/active_admin/filters/formtastic_addons.rb +1 -1
- data/lib/active_admin/filters/resource_extension.rb +4 -4
- data/lib/active_admin/form_builder.rb +97 -62
- data/lib/active_admin/generators/boilerplate.rb +1 -1
- data/lib/active_admin/helpers/scope_chain.rb +1 -0
- data/lib/active_admin/inputs/datepicker_input.rb +8 -1
- data/lib/active_admin/inputs/filters/base/search_method_select.rb +2 -2
- data/lib/active_admin/menu.rb +2 -8
- data/lib/active_admin/menu_item.rb +4 -32
- data/lib/active_admin/namespace.rb +20 -8
- data/lib/active_admin/namespace_settings.rb +110 -0
- data/lib/active_admin/orm/active_record/comments/comment.rb +2 -2
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +10 -5
- data/lib/active_admin/orm/active_record/comments.rb +15 -4
- data/lib/active_admin/page_dsl.rb +1 -1
- data/lib/active_admin/pundit_adapter.rb +13 -4
- data/lib/active_admin/resource/action_items.rb +7 -2
- data/lib/active_admin/resource/attributes.rb +7 -4
- data/lib/active_admin/resource/menu.rb +3 -3
- data/lib/active_admin/resource/naming.rb +3 -3
- data/lib/active_admin/resource/routes.rb +9 -4
- data/lib/active_admin/resource/scopes.rb +3 -3
- data/lib/active_admin/resource/sidebars.rb +1 -1
- data/lib/active_admin/resource.rb +2 -2
- data/lib/active_admin/resource_collection.rb +2 -2
- data/lib/active_admin/resource_controller/action_builder.rb +10 -0
- data/lib/active_admin/resource_controller/decorators.rb +3 -3
- data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
- data/lib/active_admin/resource_controller/scoping.rb +1 -1
- data/lib/active_admin/resource_dsl.rb +5 -3
- data/lib/active_admin/router.rb +89 -84
- data/lib/active_admin/scope.rb +9 -5
- data/lib/active_admin/settings_node.rb +19 -0
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_helpers/display_helper.rb +10 -2
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +1 -0
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +3 -0
- data/lib/active_admin/view_helpers.rb +1 -1
- data/lib/active_admin/views/components/active_admin_form.rb +9 -4
- data/lib/active_admin/views/components/attributes_table.rb +3 -3
- data/lib/active_admin/views/components/menu.rb +32 -0
- data/lib/active_admin/views/components/menu_item.rb +58 -0
- data/lib/active_admin/views/components/paginated_collection.rb +1 -1
- data/lib/active_admin/views/components/scopes.rb +11 -4
- data/lib/active_admin/views/components/sidebar.rb +13 -0
- data/lib/active_admin/views/components/sidebar_section.rb +0 -3
- data/lib/active_admin/views/components/site_title.rb +5 -6
- data/lib/active_admin/views/components/status_tag.rb +1 -18
- data/lib/active_admin/views/components/table_for.rb +3 -12
- data/lib/active_admin/views/components/tabs.rb +15 -3
- data/lib/active_admin/views/footer.rb +3 -7
- data/lib/active_admin/views/header.rb +3 -15
- data/lib/active_admin/views/index_as_blog.rb +1 -1
- data/lib/active_admin/views/index_as_grid.rb +25 -25
- data/lib/active_admin/views/index_as_table.rb +11 -10
- data/lib/active_admin/views/pages/base.rb +30 -53
- data/lib/active_admin/views/tabbed_navigation.rb +4 -59
- data/lib/active_admin/views.rb +1 -1
- data/lib/active_admin.rb +9 -4
- data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
- data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
- data/lib/generators/active_admin/install/install_generator.rb +6 -2
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +20 -1
- data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
- data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
- data/lib/generators/active_admin/page/page_generator.rb +1 -1
- data/lib/generators/active_admin/resource/resource_generator.rb +1 -1
- data/lib/ransack_ext.rb +3 -3
- data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
- data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
- data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
- metadata +120 -523
- data/.github/ISSUE_TEMPLATE.md +0 -20
- data/.gitignore +0 -49
- data/.mdlrc +0 -1
- data/.rubocop.yml +0 -76
- data/.simplecov +0 -13
- data/.travis.yml +0 -51
- data/.yardopts +0 -7
- data/Gemfile +0 -58
- data/Rakefile +0 -54
- data/activeadmin.gemspec +0 -32
- data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
- data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
- data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
- data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
- data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
- data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
- data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
- data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
- data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
- data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
- data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
- data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
- data/codecov.yml +0 -25
- data/config/i18n-tasks.yml +0 -26
- data/config/mdl_style.rb +0 -9
- data/cucumber.yml +0 -3
- data/features/action_item.feature +0 -73
- data/features/authorization.feature +0 -64
- data/features/authorization_cancan.feature +0 -52
- data/features/authorization_pundit.feature +0 -37
- data/features/belongs_to.feature +0 -124
- data/features/breadcrumb.feature +0 -75
- data/features/comments/commenting.feature +0 -178
- data/features/comments/viewing_index.feature +0 -19
- data/features/create_another.feature +0 -55
- data/features/dashboard.feature +0 -16
- data/features/decorators.feature +0 -43
- data/features/development_reloading.feature +0 -28
- data/features/edit_page.feature +0 -116
- data/features/favicon.feature +0 -20
- data/features/first_boot.feature +0 -16
- data/features/footer.feature +0 -28
- data/features/global_navigation.feature +0 -29
- data/features/i18n.feature +0 -55
- data/features/index/batch_actions.feature +0 -218
- data/features/index/filters.feature +0 -250
- data/features/index/format_as_csv.feature +0 -220
- data/features/index/formats.feature +0 -88
- data/features/index/index_as_block.feature +0 -15
- data/features/index/index_as_blog.feature +0 -69
- data/features/index/index_as_grid.feature +0 -45
- data/features/index/index_as_table.feature +0 -291
- data/features/index/index_blank_slate.feature +0 -83
- data/features/index/index_parameters.feature +0 -75
- data/features/index/index_scope_to.feature +0 -56
- data/features/index/index_scopes.feature +0 -285
- data/features/index/page_title.feature +0 -41
- data/features/index/pagination.feature +0 -63
- data/features/index/switch_index_view.feature +0 -73
- data/features/menu.feature +0 -72
- data/features/meta_tags.feature +0 -21
- data/features/new_page.feature +0 -136
- data/features/registering_assets.feature +0 -38
- data/features/registering_pages.feature +0 -237
- data/features/registering_resources.feature +0 -33
- data/features/renamed_resource.feature +0 -30
- data/features/root_to.feature +0 -17
- data/features/show/attributes_table_title.feature +0 -54
- data/features/show/columns.feature +0 -40
- data/features/show/default_content.feature +0 -44
- data/features/show/page_title.feature +0 -58
- data/features/show/tabs.feature +0 -33
- data/features/sidebar_sections.feature +0 -210
- data/features/site_title.feature +0 -47
- data/features/specifying_actions.feature +0 -118
- data/features/step_definitions/action_item_steps.rb +0 -7
- data/features/step_definitions/action_link_steps.rb +0 -19
- data/features/step_definitions/additional_web_steps.rb +0 -81
- data/features/step_definitions/asset_steps.rb +0 -15
- data/features/step_definitions/attribute_steps.rb +0 -18
- data/features/step_definitions/attributes_table_title_steps.rb +0 -11
- data/features/step_definitions/batch_action_steps.rb +0 -81
- data/features/step_definitions/blog_steps.rb +0 -3
- data/features/step_definitions/breadcrumb_steps.rb +0 -3
- data/features/step_definitions/column_steps.rb +0 -8
- data/features/step_definitions/comment_steps.rb +0 -32
- data/features/step_definitions/configuration_steps.rb +0 -100
- data/features/step_definitions/dashboard_steps.rb +0 -15
- data/features/step_definitions/factory_steps.rb +0 -35
- data/features/step_definitions/filter_steps.rb +0 -47
- data/features/step_definitions/flash_steps.rb +0 -11
- data/features/step_definitions/footer_steps.rb +0 -11
- data/features/step_definitions/format_steps.rb +0 -56
- data/features/step_definitions/i18n_steps.rb +0 -11
- data/features/step_definitions/index_scope_steps.rb +0 -29
- data/features/step_definitions/index_views_steps.rb +0 -3
- data/features/step_definitions/layout_steps.rb +0 -3
- data/features/step_definitions/member_link_steps.rb +0 -7
- data/features/step_definitions/menu_steps.rb +0 -11
- data/features/step_definitions/meta_tag_steps.rb +0 -3
- data/features/step_definitions/pagination_steps.rb +0 -15
- data/features/step_definitions/sidebar_steps.rb +0 -11
- data/features/step_definitions/site_title_steps.rb +0 -17
- data/features/step_definitions/tab_steps.rb +0 -8
- data/features/step_definitions/table_steps.rb +0 -116
- data/features/step_definitions/user_steps.rb +0 -52
- data/features/step_definitions/web_steps.rb +0 -86
- data/features/sti_resource.feature +0 -65
- data/features/strong_parameters.feature +0 -69
- data/features/support/env.rb +0 -122
- data/features/support/paths.rb +0 -73
- data/features/support/regular_env.rb +0 -7
- data/features/support/reload_env.rb +0 -7
- data/features/support/selectors.rb +0 -45
- data/features/users/logging_in.feature +0 -36
- data/features/users/logging_out.feature +0 -13
- data/features/users/resetting_password.feature +0 -34
- data/gemfiles/rails_42.gemfile +0 -10
- data/gemfiles/rails_50.gemfile +0 -10
- data/gemfiles/rails_51.gemfile +0 -10
- data/gemfiles/rails_52.gemfile +0 -11
- data/lib/active_admin/event.rb +0 -24
- data/lib/active_admin/helpers/output_safety_helper.rb +0 -35
- data/lib/active_admin/helpers/settings.rb +0 -114
- data/lib/bug_report_templates/active_admin_master.rb +0 -112
- data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
- data/spec/bug_report_templates_spec.rb +0 -26
- data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
- data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
- data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
- data/spec/javascripts/fixtures/checkboxes.html +0 -9
- data/spec/javascripts/fixtures/flashes.html +0 -2
- data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
- data/spec/javascripts/helpers/SpecHelper.js +0 -3
- data/spec/javascripts/support/jasmine.yml +0 -74
- data/spec/javascripts/support/jasmine_runner.rb +0 -19
- data/spec/rails_helper.rb +0 -59
- data/spec/requests/default_namespace_spec.rb +0 -81
- data/spec/requests/memory_spec.rb +0 -25
- data/spec/requests/stylesheets_spec.rb +0 -18
- data/spec/spec_helper.rb +0 -1
- data/spec/support/active_admin_integration_spec_helper.rb +0 -73
- data/spec/support/active_admin_request_helpers.rb +0 -39
- data/spec/support/rails_template.rb +0 -153
- data/spec/support/rails_template_with_data.rb +0 -327
- data/spec/support/templates/admin/stores.rb +0 -7
- data/spec/support/templates/en.yml +0 -8
- data/spec/support/templates/manifest.js +0 -3
- data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
- data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
- data/spec/support/templates/policies/admin_user_policy.rb +0 -11
- data/spec/support/templates/policies/application_policy.rb +0 -44
- data/spec/support/templates/policies/category_policy.rb +0 -7
- data/spec/support/templates/policies/post_policy.rb +0 -15
- data/spec/support/templates/policies/store_policy.rb +0 -11
- data/spec/support/templates/policies/user_policy.rb +0 -11
- data/spec/support/templates/post_decorator.rb +0 -24
- data/spec/unit/abstract_view_factory_spec.rb +0 -78
- data/spec/unit/action_builder_spec.rb +0 -158
- data/spec/unit/active_admin_spec.rb +0 -11
- data/spec/unit/application_spec.rb +0 -184
- data/spec/unit/asset_registration_spec.rb +0 -81
- data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
- data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
- data/spec/unit/authorization/index_overriding_spec.rb +0 -23
- data/spec/unit/auto_link_spec.rb +0 -93
- data/spec/unit/batch_actions/resource_spec.rb +0 -84
- data/spec/unit/batch_actions/settings_spec.rb +0 -61
- data/spec/unit/belongs_to_spec.rb +0 -76
- data/spec/unit/cancan_adapter_spec.rb +0 -43
- data/spec/unit/comments_spec.rb +0 -176
- data/spec/unit/component_spec.rb +0 -18
- data/spec/unit/config_shared_examples.rb +0 -59
- data/spec/unit/controller_filters_spec.rb +0 -41
- data/spec/unit/csv_builder_spec.rb +0 -313
- data/spec/unit/dependency_spec.rb +0 -135
- data/spec/unit/devise_spec.rb +0 -110
- data/spec/unit/dsl_spec.rb +0 -120
- data/spec/unit/filters/active_filter_spec.rb +0 -189
- data/spec/unit/filters/active_spec.rb +0 -24
- data/spec/unit/filters/filter_form_builder_spec.rb +0 -524
- data/spec/unit/filters/resource_spec.rb +0 -128
- data/spec/unit/form_builder_spec.rb +0 -990
- data/spec/unit/generators/install_spec.rb +0 -31
- data/spec/unit/helpers/collection_spec.rb +0 -68
- data/spec/unit/helpers/output_safety_helper_spec.rb +0 -79
- data/spec/unit/helpers/scope_chain_spec.rb +0 -35
- data/spec/unit/helpers/settings_spec.rb +0 -30
- data/spec/unit/i18n_spec.rb +0 -29
- data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
- data/spec/unit/menu_collection_spec.rb +0 -62
- data/spec/unit/menu_item_spec.rb +0 -141
- data/spec/unit/menu_spec.rb +0 -71
- data/spec/unit/namespace/authorization_spec.rb +0 -27
- data/spec/unit/namespace/register_page_spec.rb +0 -99
- data/spec/unit/namespace/register_resource_spec.rb +0 -162
- data/spec/unit/namespace_spec.rb +0 -124
- data/spec/unit/order_clause_spec.rb +0 -81
- data/spec/unit/page_controller_spec.rb +0 -5
- data/spec/unit/page_spec.rb +0 -128
- data/spec/unit/pretty_format_spec.rb +0 -82
- data/spec/unit/pundit_adapter_spec.rb +0 -98
- data/spec/unit/resource/action_items_spec.rb +0 -69
- data/spec/unit/resource/attributes_spec.rb +0 -49
- data/spec/unit/resource/includes_spec.rb +0 -21
- data/spec/unit/resource/menu_spec.rb +0 -18
- data/spec/unit/resource/naming_spec.rb +0 -122
- data/spec/unit/resource/ordering_spec.rb +0 -35
- data/spec/unit/resource/page_presenters_spec.rb +0 -44
- data/spec/unit/resource/pagination_spec.rb +0 -38
- data/spec/unit/resource/routes_spec.rb +0 -125
- data/spec/unit/resource/scopes_spec.rb +0 -50
- data/spec/unit/resource/sidebars_spec.rb +0 -43
- data/spec/unit/resource_collection_spec.rb +0 -175
- data/spec/unit/resource_controller/data_access_spec.rb +0 -234
- data/spec/unit/resource_controller/decorators_spec.rb +0 -94
- data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
- data/spec/unit/resource_controller_spec.rb +0 -273
- data/spec/unit/resource_registration_spec.rb +0 -61
- data/spec/unit/resource_spec.rb +0 -320
- data/spec/unit/routing_spec.rb +0 -211
- data/spec/unit/scope_spec.rb +0 -209
- data/spec/unit/settings_spec.rb +0 -117
- data/spec/unit/view_factory_spec.rb +0 -19
- data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -253
- data/spec/unit/view_helpers/display_helper_spec.rb +0 -203
- data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
- data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
- data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
- data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
- data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
- data/spec/unit/views/components/attributes_table_spec.rb +0 -271
- data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
- data/spec/unit/views/components/blank_slate_spec.rb +0 -27
- data/spec/unit/views/components/columns_spec.rb +0 -187
- data/spec/unit/views/components/index_list_spec.rb +0 -49
- data/spec/unit/views/components/index_table_for_spec.rb +0 -127
- data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
- data/spec/unit/views/components/panel_spec.rb +0 -58
- data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
- data/spec/unit/views/components/site_title_spec.rb +0 -76
- data/spec/unit/views/components/status_tag_spec.rb +0 -265
- data/spec/unit/views/components/table_for_spec.rb +0 -436
- data/spec/unit/views/components/tabs_spec.rb +0 -67
- data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
- data/spec/unit/views/index_as_blog_spec.rb +0 -76
- data/spec/unit/views/pages/form_spec.rb +0 -54
- data/spec/unit/views/pages/index_spec.rb +0 -60
- data/spec/unit/views/pages/layout_spec.rb +0 -59
- data/spec/unit/views/pages/show_spec.rb +0 -32
- data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
- data/tasks/docs.rake +0 -64
- data/tasks/lint.rake +0 -21
- data/tasks/local.rake +0 -25
- data/tasks/parallel_tests.rake +0 -66
- data/tasks/test.rake +0 -29
@@ -1,98 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
class DefaultPolicy < ApplicationPolicy
|
4
|
-
def respond_to_missing?(method, include_private = false)
|
5
|
-
method.to_s[0...3] == "foo" || super
|
6
|
-
end
|
7
|
-
|
8
|
-
def method_missing(method, *args, &block)
|
9
|
-
if method.to_s[0...3] == "foo"
|
10
|
-
method.to_s[4...7] == "yes"
|
11
|
-
else
|
12
|
-
super
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
class Scope
|
17
|
-
|
18
|
-
attr_reader :user, :scope
|
19
|
-
|
20
|
-
def initialize(user, scope)
|
21
|
-
@user = user
|
22
|
-
@scope = scope
|
23
|
-
end
|
24
|
-
|
25
|
-
def resolve
|
26
|
-
scope
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
RSpec.describe ActiveAdmin::PunditAdapter do
|
32
|
-
|
33
|
-
describe "full integration" do
|
34
|
-
|
35
|
-
let(:application) { ActiveAdmin::Application.new }
|
36
|
-
let(:namespace) { ActiveAdmin::Namespace.new(application, "Admin") }
|
37
|
-
let(:resource) { namespace.register(Post) }
|
38
|
-
let(:auth) { namespace.authorization_adapter.new(resource, double) }
|
39
|
-
let(:default_policy_klass) { DefaultPolicy }
|
40
|
-
let(:default_policy_klass_name) { "DefaultPolicy" }
|
41
|
-
|
42
|
-
before do
|
43
|
-
namespace.authorization_adapter = ActiveAdmin::PunditAdapter
|
44
|
-
end
|
45
|
-
|
46
|
-
it "should initialize the ability stored in the namespace configuration" do
|
47
|
-
expect(auth.authorized?(:read, Post)).to eq true
|
48
|
-
expect(auth.authorized?(:update, Post)).to eq false
|
49
|
-
end
|
50
|
-
|
51
|
-
it "should scope the collection" do
|
52
|
-
class RSpec::Mocks::DoublePolicy < ApplicationPolicy
|
53
|
-
class Scope < Struct.new(:user, :scope)
|
54
|
-
def resolve
|
55
|
-
scope
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
collection = double
|
61
|
-
auth.scope_collection(collection, :read)
|
62
|
-
expect(collection).to eq collection
|
63
|
-
end
|
64
|
-
|
65
|
-
it "works well with method_missing" do
|
66
|
-
allow(auth).to receive(:retrieve_policy).and_return(DefaultPolicy.new(double, double))
|
67
|
-
expect(auth.authorized?(:foo_no)).to eq false
|
68
|
-
expect(auth.authorized?(:foo_yes)).to eq true
|
69
|
-
expect(auth.authorized?(:bar_yes)).to eq false
|
70
|
-
end
|
71
|
-
|
72
|
-
context 'when Pundit is unable to find policy scope' do
|
73
|
-
let(:collection) { double("collection", to_sym: :collection) }
|
74
|
-
subject(:scope) { auth.scope_collection(collection, :read) }
|
75
|
-
|
76
|
-
before do
|
77
|
-
allow(ActiveAdmin.application).to receive(:pundit_default_policy).and_return default_policy_klass_name
|
78
|
-
allow(Pundit).to receive(:policy_scope!) { raise Pundit::NotDefinedError.new }
|
79
|
-
end
|
80
|
-
|
81
|
-
it("should return default policy's scope if defined") { is_expected.to eq(collection) }
|
82
|
-
end
|
83
|
-
|
84
|
-
context "when Pundit is unable to find policy" do
|
85
|
-
let(:record) { double }
|
86
|
-
|
87
|
-
subject(:policy) { auth.retrieve_policy(record) }
|
88
|
-
|
89
|
-
before do
|
90
|
-
allow(ActiveAdmin.application).to receive(:pundit_default_policy).and_return default_policy_klass_name
|
91
|
-
allow(Pundit).to receive(:policy!) { raise Pundit::NotDefinedError.new }
|
92
|
-
end
|
93
|
-
|
94
|
-
it("should return default policy instance") { is_expected.to be_instance_of(default_policy_klass) }
|
95
|
-
end
|
96
|
-
end
|
97
|
-
|
98
|
-
end
|
@@ -1,69 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe ActiveAdmin::Resource::ActionItems do
|
4
|
-
|
5
|
-
let(:resource) do
|
6
|
-
namespace = ActiveAdmin::Namespace.new(ActiveAdmin::Application.new, :admin)
|
7
|
-
namespace.register(Post)
|
8
|
-
end
|
9
|
-
|
10
|
-
describe "adding a new action item" do
|
11
|
-
|
12
|
-
before do
|
13
|
-
resource.clear_action_items!
|
14
|
-
resource.add_action_item :empty, class: :test do
|
15
|
-
# Empty ...
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
it "should add an action item" do
|
20
|
-
expect(resource.action_items.size).to eq 1
|
21
|
-
end
|
22
|
-
|
23
|
-
it "should store an instance of ActionItem" do
|
24
|
-
expect(resource.action_items.first).to be_an_instance_of(ActiveAdmin::ActionItem)
|
25
|
-
end
|
26
|
-
|
27
|
-
it "should store the block in the action item" do
|
28
|
-
expect(resource.action_items.first.block).to_not eq nil
|
29
|
-
end
|
30
|
-
|
31
|
-
it "should include class from options" do
|
32
|
-
expect(resource.action_items.first.html_class).to eq("action_item test")
|
33
|
-
end
|
34
|
-
|
35
|
-
end
|
36
|
-
|
37
|
-
describe "setting an action item to only display on specific controller actions" do
|
38
|
-
|
39
|
-
before do
|
40
|
-
resource.clear_action_items!
|
41
|
-
resource.add_action_item :new, only: :index do
|
42
|
-
raise StandardError
|
43
|
-
end
|
44
|
-
resource.add_action_item :edit, only: :show do
|
45
|
-
# Empty ...
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
it "should return only relevant action items" do
|
50
|
-
expect(resource.action_items_for(:index).size).to eq 1
|
51
|
-
expect {
|
52
|
-
resource.action_items_for(:index).first.call
|
53
|
-
}.to raise_exception(StandardError)
|
54
|
-
end
|
55
|
-
|
56
|
-
end
|
57
|
-
|
58
|
-
describe "default action items" do
|
59
|
-
it "should have 3 action items" do
|
60
|
-
expect(resource.action_items.size).to eq 3
|
61
|
-
end
|
62
|
-
|
63
|
-
it 'can be removed by name' do
|
64
|
-
resource.remove_action_item :new
|
65
|
-
expect(resource.action_items.size).to eq 2
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
end
|
@@ -1,49 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
module ActiveAdmin
|
4
|
-
RSpec.describe Resource, "Attributes" do
|
5
|
-
let(:application) { ActiveAdmin::Application.new }
|
6
|
-
let(:namespace) { ActiveAdmin::Namespace.new application, :admin }
|
7
|
-
let(:resource_config) { ActiveAdmin::Resource.new namespace, Post }
|
8
|
-
|
9
|
-
describe "#resource_attributes" do
|
10
|
-
subject do
|
11
|
-
resource_config.resource_attributes
|
12
|
-
end
|
13
|
-
|
14
|
-
it 'should return attributes hash' do
|
15
|
-
expect(subject).to eq(author_id: :author,
|
16
|
-
body: :body,
|
17
|
-
created_at: :created_at,
|
18
|
-
custom_category_id: :category,
|
19
|
-
foo_id: :foo_id,
|
20
|
-
position: :position,
|
21
|
-
published_date: :published_date,
|
22
|
-
starred: :starred,
|
23
|
-
title: :title,
|
24
|
-
updated_at: :updated_at)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
describe "#association_columns" do
|
29
|
-
subject do
|
30
|
-
resource_config.association_columns
|
31
|
-
end
|
32
|
-
|
33
|
-
it 'should return associations' do
|
34
|
-
expect(subject).to eq([:author, :category])
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
describe "#content_columns" do
|
39
|
-
subject do
|
40
|
-
resource_config.content_columns
|
41
|
-
end
|
42
|
-
|
43
|
-
it 'should return columns without associations' do
|
44
|
-
expect(subject).to eq([:title, :body, :published_date, :position, :starred, :foo_id, :created_at, :updated_at])
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
end
|
49
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
module ActiveAdmin
|
4
|
-
RSpec.describe Resource, "Includes" do
|
5
|
-
describe "#includes" 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) }
|
11
|
-
|
12
|
-
it "should register the includes in the config" do
|
13
|
-
dsl.run_registration_block do
|
14
|
-
includes :taggings, :author
|
15
|
-
end
|
16
|
-
expect(resource_config.includes.size).to eq(2)
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
module ActiveAdmin
|
4
|
-
RSpec.describe Resource, "Menu" do
|
5
|
-
|
6
|
-
before { load_defaults! }
|
7
|
-
|
8
|
-
let(:application){ ActiveAdmin::Application.new }
|
9
|
-
let(:namespace){ Namespace.new(application, :admin) }
|
10
|
-
|
11
|
-
def config(options = {})
|
12
|
-
@config ||= Resource.new(namespace, Category, options)
|
13
|
-
end
|
14
|
-
|
15
|
-
# TODO...
|
16
|
-
|
17
|
-
end
|
18
|
-
end
|
@@ -1,122 +0,0 @@
|
|
1
|
-
# -*- coding: UTF-8 -*-
|
2
|
-
|
3
|
-
require 'rails_helper'
|
4
|
-
|
5
|
-
module ActiveAdmin
|
6
|
-
RSpec.describe Resource, "Naming" do
|
7
|
-
|
8
|
-
before { load_defaults! }
|
9
|
-
|
10
|
-
let(:application){ ActiveAdmin::Application.new }
|
11
|
-
let(:namespace){ Namespace.new(application, :admin) }
|
12
|
-
|
13
|
-
def config(options = {})
|
14
|
-
@config ||= Resource.new(namespace, Category, options)
|
15
|
-
end
|
16
|
-
|
17
|
-
module ::Mock class Resource < ActiveRecord::Base; end; end
|
18
|
-
module NoActiveModel class Resource; end; end
|
19
|
-
|
20
|
-
describe "singular resource name" do
|
21
|
-
context "when class" do
|
22
|
-
it "should be the underscored singular resource name" do
|
23
|
-
expect(config.resource_name.singular).to eq "category"
|
24
|
-
end
|
25
|
-
end
|
26
|
-
context "when a class in a module" do
|
27
|
-
it "should underscore the module and the class" do
|
28
|
-
expect(Resource.new(namespace, Mock::Resource).resource_name.singular).to eq "mock_resource"
|
29
|
-
end
|
30
|
-
end
|
31
|
-
context "when you pass the 'as' option" do
|
32
|
-
it "should underscore the passed through string" do
|
33
|
-
expect(config(as: "Blog Category").resource_name.singular).to eq "blog_category"
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
describe "resource label" do
|
39
|
-
it "should return a pretty name" do
|
40
|
-
expect(config.resource_label).to eq "Category"
|
41
|
-
end
|
42
|
-
|
43
|
-
it "should return the plural version" do
|
44
|
-
expect(config.plural_resource_label).to eq "Categories"
|
45
|
-
end
|
46
|
-
|
47
|
-
context "when the :as option is given" do
|
48
|
-
it "should return the custom name" do
|
49
|
-
expect(config(as: "My Category").resource_label).to eq "My Category"
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
context "when a class in a module" do
|
54
|
-
it "should include the module and the class" do
|
55
|
-
expect(Resource.new(namespace, Mock::Resource).resource_label).to eq "Mock Resource"
|
56
|
-
end
|
57
|
-
|
58
|
-
it "should include the module and the pluralized class" do
|
59
|
-
expect(Resource.new(namespace, Mock::Resource).plural_resource_label).to eq "Mock Resources"
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
describe "I18n integration" do
|
64
|
-
describe "singular label" do
|
65
|
-
it "should return the titleized model_name.human" do
|
66
|
-
expect(config.resource_name).to receive(:translate).and_return "Da category"
|
67
|
-
|
68
|
-
expect(config.resource_label).to eq "Da category"
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
describe "plural label" do
|
73
|
-
it "should return the titleized plural version defined by i18n if available" do
|
74
|
-
expect(config.resource_name).to receive(:translate).at_least(:once).and_return "Da categories"
|
75
|
-
expect(config.plural_resource_label).to eq "Da categories"
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
describe "plural label with not default locale" do
|
80
|
-
it "should return the titleized plural version defined by i18n with custom :count if available" do
|
81
|
-
expect(config.resource_name).to receive(:translate).at_least(:once).and_return "Категории"
|
82
|
-
expect(config.plural_resource_label(count: 3)).to eq "Категории"
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
context "when the :as option is given" do
|
87
|
-
describe "singular label" do
|
88
|
-
it "should translate the custom name" do
|
89
|
-
config = config(as: 'My Category')
|
90
|
-
expect(config.resource_name).to receive(:translate).and_return "Translated category"
|
91
|
-
expect(config.resource_label).to eq "Translated category"
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
describe "plural label" do
|
96
|
-
it "should translate the custom name" do
|
97
|
-
config = config(as: 'My Category')
|
98
|
-
expect(config.resource_name).to receive(:translate).at_least(:once).and_return "Translated categories"
|
99
|
-
expect(config.plural_resource_label).to eq "Translated categories"
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
|
-
describe "duplicate resource names" do
|
108
|
-
let(:resource_name) { config.resource_name }
|
109
|
-
let(:duplicate_resource_name) { Resource.new(namespace, Category).resource_name }
|
110
|
-
|
111
|
-
[:==, :===, :eql?].each do |method|
|
112
|
-
it "are equivalent when compared with #{method}" do
|
113
|
-
expect(resource_name.public_send(method, duplicate_resource_name)).to eq true
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
it "have identical hash values" do
|
118
|
-
expect(resource_name.hash).to eq duplicate_resource_name.hash
|
119
|
-
end
|
120
|
-
end
|
121
|
-
end
|
122
|
-
end
|
@@ -1,35 +0,0 @@
|
|
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) }
|
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
|
-
it "should allow to setup custom ordering class" do
|
24
|
-
MyOrderClause = Class.new(ActiveAdmin::OrderClause)
|
25
|
-
dsl.run_registration_block do
|
26
|
-
config.order_clause = MyOrderClause
|
27
|
-
end
|
28
|
-
expect(resource_config.order_clause).to eq(MyOrderClause)
|
29
|
-
expect(application.order_clause).to eq(ActiveAdmin::OrderClause)
|
30
|
-
|
31
|
-
end
|
32
|
-
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
@@ -1,44 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe ActiveAdmin::Resource::PagePresenters do
|
4
|
-
|
5
|
-
let(:namespace){ ActiveAdmin::Namespace.new(ActiveAdmin::Application.new, :admin) }
|
6
|
-
let(:resource){ namespace.register(Post) }
|
7
|
-
|
8
|
-
it "should have an empty set of configs on initialize" do
|
9
|
-
expect(resource.page_presenters).to eq ({})
|
10
|
-
end
|
11
|
-
|
12
|
-
it "should add a show page presenter" do
|
13
|
-
page_presenter = ActiveAdmin::PagePresenter.new
|
14
|
-
resource.set_page_presenter(:show, page_presenter)
|
15
|
-
expect(resource.page_presenters[:show]).to eq page_presenter
|
16
|
-
end
|
17
|
-
|
18
|
-
it "should add an index page presenter" do
|
19
|
-
page_presenter = ActiveAdmin::PagePresenter.new({as: :table})
|
20
|
-
resource.set_page_presenter(:index, page_presenter)
|
21
|
-
expect(resource.page_presenters[:index].default).to eq page_presenter
|
22
|
-
end
|
23
|
-
|
24
|
-
describe "#get_page_presenter" do
|
25
|
-
|
26
|
-
it "should return a page config when set" do
|
27
|
-
page_presenter = ActiveAdmin::PagePresenter.new
|
28
|
-
resource.set_page_presenter(:index, page_presenter)
|
29
|
-
expect(resource.get_page_presenter(:index)).to eq page_presenter
|
30
|
-
end
|
31
|
-
|
32
|
-
it "should return a specific index page config when set" do
|
33
|
-
page_presenter = ActiveAdmin::PagePresenter.new
|
34
|
-
resource.set_page_presenter(:index, page_presenter)
|
35
|
-
expect(resource.get_page_presenter(:index, "table")).to eq page_presenter
|
36
|
-
end
|
37
|
-
|
38
|
-
it "should return nil when no page config set" do
|
39
|
-
expect(resource.get_page_presenter(:index)).to eq nil
|
40
|
-
end
|
41
|
-
|
42
|
-
end
|
43
|
-
|
44
|
-
end
|
@@ -1,38 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
module ActiveAdmin
|
4
|
-
RSpec.describe Resource, "Pagination" do
|
5
|
-
|
6
|
-
before { load_defaults! }
|
7
|
-
|
8
|
-
let(:application){ ActiveAdmin::Application.new }
|
9
|
-
let(:namespace){ Namespace.new(application, :admin) }
|
10
|
-
|
11
|
-
def config(options = {})
|
12
|
-
@config ||= Resource.new(namespace, Category, options)
|
13
|
-
end
|
14
|
-
|
15
|
-
describe "#paginate" do
|
16
|
-
it "should default to true" do
|
17
|
-
expect(config.paginate).to eq true
|
18
|
-
end
|
19
|
-
|
20
|
-
it "should be settable to false" do
|
21
|
-
config.paginate = false
|
22
|
-
expect(config.paginate).to eq false
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
describe "#per_page" do
|
27
|
-
it "should default to namespace.default_per_page" do
|
28
|
-
expect(namespace).to receive(:default_per_page).and_return(5)
|
29
|
-
expect(config.per_page).to eq 5
|
30
|
-
end
|
31
|
-
|
32
|
-
it "should be settable" do
|
33
|
-
config.per_page = 5
|
34
|
-
expect(config.per_page).to eq 5
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
@@ -1,125 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe ActiveAdmin::Resource::Routes do
|
4
|
-
|
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
|
48
|
-
reload_routes!
|
49
|
-
expect(config.route_collection_path).to eq "/categories"
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
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! }
|
57
|
-
|
58
|
-
it "should return the plural route with _index" do
|
59
|
-
expect(config.route_collection_path).to eq "/admin/news"
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
context "when the resource belongs to another resource" do
|
64
|
-
let(:config) { namespace.resource_for('Post') }
|
65
|
-
|
66
|
-
let :post do
|
67
|
-
Post.new do |p|
|
68
|
-
p.id = 3
|
69
|
-
p.category = Category.new{ |c| c.id = 1 }
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
before do
|
74
|
-
load_resources do
|
75
|
-
ActiveAdmin.register Category
|
76
|
-
ActiveAdmin.register(Post) { belongs_to :category }
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
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
|
83
|
-
|
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
|
100
|
-
end
|
101
|
-
end
|
102
|
-
|
103
|
-
it "should include :scope and :q params" do
|
104
|
-
params = ActionController::Parameters.new(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"
|
107
|
-
|
108
|
-
expect(config.route_batch_action_path(params, additional_params)).to eq batch_action_path
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
context "when registering a plural resource" do
|
113
|
-
|
114
|
-
class ::News; def self.has_many(*); end end
|
115
|
-
let(:config) { ActiveAdmin.register News }
|
116
|
-
|
117
|
-
it "should return the plural batch action route with _index and given params" do
|
118
|
-
params = ActionController::Parameters.new(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
|
122
|
-
end
|
123
|
-
end
|
124
|
-
end
|
125
|
-
end
|
@@ -1,50 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
module ActiveAdmin
|
4
|
-
RSpec.describe Resource, "Scopes" do
|
5
|
-
|
6
|
-
before { load_defaults! }
|
7
|
-
|
8
|
-
let(:application){ ActiveAdmin::Application.new }
|
9
|
-
let(:namespace){ Namespace.new(application, :admin) }
|
10
|
-
|
11
|
-
def config(options = {})
|
12
|
-
@config ||= Resource.new(namespace, Category, options)
|
13
|
-
end
|
14
|
-
|
15
|
-
describe "adding a scope" do
|
16
|
-
|
17
|
-
it "should add a scope" do
|
18
|
-
config.scope :published
|
19
|
-
expect(config.scopes.first).to be_a(ActiveAdmin::Scope)
|
20
|
-
expect(config.scopes.first.name).to eq "Published"
|
21
|
-
end
|
22
|
-
|
23
|
-
it "should retrive a scope by its id" do
|
24
|
-
config.scope :published
|
25
|
-
expect(config.get_scope_by_id(:published).name).to eq "Published"
|
26
|
-
end
|
27
|
-
|
28
|
-
it "should retrieve a string scope with spaces by its id without conflicts" do
|
29
|
-
aspace_1 = config.scope "a space"
|
30
|
-
aspace_2 = config.scope "as pace"
|
31
|
-
expect(config.get_scope_by_id(aspace_1.id).name).to eq "a space"
|
32
|
-
expect(config.get_scope_by_id(aspace_2.id).name).to eq "as pace"
|
33
|
-
end
|
34
|
-
|
35
|
-
it "should not add a scope with the same name twice" do
|
36
|
-
config.scope :published
|
37
|
-
config.scope :published
|
38
|
-
expect(config.scopes.size).to eq 1
|
39
|
-
end
|
40
|
-
|
41
|
-
it "should update a scope with the same id" do
|
42
|
-
config.scope :published
|
43
|
-
expect(config.scopes.first.scope_block).to eq nil
|
44
|
-
config.scope(:published){ }
|
45
|
-
expect(config.scopes.first.scope_block).to_not eq nil
|
46
|
-
end
|
47
|
-
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|