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.

Files changed (423) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +307 -123
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +90 -46
  5. data/README.md +66 -19
  6. data/app/assets/javascripts/active_admin/base.es6 +23 -0
  7. data/app/assets/javascripts/active_admin/ext/jquery-ui.es6 +7 -0
  8. data/app/assets/javascripts/active_admin/ext/jquery.es6 +9 -0
  9. data/app/assets/javascripts/active_admin/initializers/datepicker.es6 +16 -0
  10. data/app/assets/javascripts/active_admin/initializers/filters.es6 +45 -0
  11. data/app/assets/javascripts/active_admin/initializers/tabs.es6 +6 -0
  12. data/app/assets/javascripts/active_admin/lib/active_admin.es6 +41 -0
  13. data/app/assets/javascripts/active_admin/lib/batch_actions.es6 +55 -0
  14. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.es6 +49 -0
  15. data/app/assets/javascripts/active_admin/lib/dropdown-menu.es6 +123 -0
  16. data/app/assets/javascripts/active_admin/lib/has_many.es6 +95 -0
  17. data/app/assets/javascripts/active_admin/lib/modal_dialog.es6 +61 -0
  18. data/app/assets/javascripts/active_admin/lib/per_page.es6 +47 -0
  19. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.es6 +36 -0
  20. data/app/assets/stylesheets/active_admin/_forms.scss +3 -15
  21. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  22. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
  23. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  24. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  25. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  26. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  27. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  28. data/app/views/active_admin/devise/registrations/new.html.erb +2 -3
  29. data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
  30. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  31. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  32. data/app/views/layouts/active_admin_logged_out.html.erb +2 -2
  33. data/config/locales/bg.yml +0 -1
  34. data/config/locales/de.yml +10 -0
  35. data/config/locales/en.yml +19 -1
  36. data/config/locales/es.yml +20 -1
  37. data/config/locales/fi.yml +1 -1
  38. data/config/locales/he.yml +0 -1
  39. data/config/locales/hu.yml +4 -0
  40. data/config/locales/it.yml +4 -0
  41. data/config/locales/lt.yml +2 -2
  42. data/config/locales/nb.yml +15 -5
  43. data/config/locales/nl.yml +11 -0
  44. data/config/locales/pl.yml +71 -3
  45. data/config/locales/ru.yml +2 -0
  46. data/config/locales/tr.yml +9 -0
  47. data/config/locales/uk.yml +2 -0
  48. data/config/locales/zh-CN.yml +33 -5
  49. data/docs/.gitignore +1 -0
  50. data/docs/0-installation.md +2 -2
  51. data/docs/1-general-configuration.md +16 -1
  52. data/docs/10-custom-pages.md +14 -0
  53. data/docs/12-arbre-components.md +28 -1
  54. data/docs/13-authorization-adapter.md +40 -21
  55. data/docs/2-resource-customization.md +8 -3
  56. data/docs/3-index-pages/custom-index.md +1 -1
  57. data/docs/3-index-pages/index-as-blog.md +1 -1
  58. data/docs/3-index-pages/index-as-table.md +5 -5
  59. data/docs/3-index-pages.md +17 -0
  60. data/docs/5-forms.md +16 -2
  61. data/docs/8-custom-actions.md +11 -0
  62. data/docs/CNAME +1 -1
  63. data/docs/Gemfile +2 -0
  64. data/docs/Gemfile.lock +249 -0
  65. data/docs/_config.yml +1 -1
  66. data/docs/_includes/toc.html +1 -1
  67. data/docs/_includes/top-menu.html +9 -1
  68. data/docs/documentation.md +1 -1
  69. data/docs/images/tidelift.svg +14 -0
  70. data/docs/index.html +2 -2
  71. data/docs/stylesheets/main.css +26 -2
  72. data/lib/active_admin/abstract_view_factory.rb +13 -51
  73. data/lib/active_admin/application.rb +49 -155
  74. data/lib/active_admin/application_settings.rb +42 -0
  75. data/lib/active_admin/asset_registration.rb +0 -8
  76. data/lib/active_admin/base_controller/authorization.rb +3 -6
  77. data/lib/active_admin/base_controller.rb +6 -6
  78. data/lib/active_admin/batch_actions/controller.rb +2 -2
  79. data/lib/active_admin/batch_actions/resource_extension.rb +4 -4
  80. data/lib/active_admin/callbacks.rb +1 -1
  81. data/lib/active_admin/csv_builder.rb +1 -1
  82. data/lib/active_admin/dependency.rb +1 -69
  83. data/lib/active_admin/deprecation.rb +0 -25
  84. data/lib/active_admin/dsl.rb +1 -8
  85. data/lib/active_admin/dynamic_setting.rb +38 -0
  86. data/lib/active_admin/dynamic_settings_node.rb +28 -0
  87. data/lib/active_admin/engine.rb +5 -0
  88. data/lib/active_admin/error.rb +1 -1
  89. data/lib/active_admin/filters/active_filter.rb +4 -2
  90. data/lib/active_admin/filters/active_sidebar.rb +5 -1
  91. data/lib/active_admin/filters/forms.rb +7 -4
  92. data/lib/active_admin/filters/formtastic_addons.rb +1 -1
  93. data/lib/active_admin/filters/resource_extension.rb +4 -4
  94. data/lib/active_admin/form_builder.rb +97 -62
  95. data/lib/active_admin/generators/boilerplate.rb +1 -1
  96. data/lib/active_admin/helpers/scope_chain.rb +1 -0
  97. data/lib/active_admin/inputs/datepicker_input.rb +8 -1
  98. data/lib/active_admin/inputs/filters/base/search_method_select.rb +2 -2
  99. data/lib/active_admin/menu.rb +2 -8
  100. data/lib/active_admin/menu_item.rb +4 -32
  101. data/lib/active_admin/namespace.rb +20 -8
  102. data/lib/active_admin/namespace_settings.rb +110 -0
  103. data/lib/active_admin/orm/active_record/comments/comment.rb +2 -2
  104. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +10 -5
  105. data/lib/active_admin/orm/active_record/comments.rb +15 -4
  106. data/lib/active_admin/page_dsl.rb +1 -1
  107. data/lib/active_admin/pundit_adapter.rb +13 -4
  108. data/lib/active_admin/resource/action_items.rb +7 -2
  109. data/lib/active_admin/resource/attributes.rb +7 -4
  110. data/lib/active_admin/resource/menu.rb +3 -3
  111. data/lib/active_admin/resource/naming.rb +3 -3
  112. data/lib/active_admin/resource/routes.rb +9 -4
  113. data/lib/active_admin/resource/scopes.rb +3 -3
  114. data/lib/active_admin/resource/sidebars.rb +1 -1
  115. data/lib/active_admin/resource.rb +2 -2
  116. data/lib/active_admin/resource_collection.rb +2 -2
  117. data/lib/active_admin/resource_controller/action_builder.rb +10 -0
  118. data/lib/active_admin/resource_controller/decorators.rb +3 -3
  119. data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
  120. data/lib/active_admin/resource_controller/scoping.rb +1 -1
  121. data/lib/active_admin/resource_dsl.rb +5 -3
  122. data/lib/active_admin/router.rb +89 -84
  123. data/lib/active_admin/scope.rb +9 -5
  124. data/lib/active_admin/settings_node.rb +19 -0
  125. data/lib/active_admin/version.rb +1 -1
  126. data/lib/active_admin/view_helpers/display_helper.rb +10 -2
  127. data/lib/active_admin/view_helpers/download_format_links_helper.rb +1 -0
  128. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +3 -0
  129. data/lib/active_admin/view_helpers.rb +1 -1
  130. data/lib/active_admin/views/components/active_admin_form.rb +9 -4
  131. data/lib/active_admin/views/components/attributes_table.rb +3 -3
  132. data/lib/active_admin/views/components/menu.rb +32 -0
  133. data/lib/active_admin/views/components/menu_item.rb +58 -0
  134. data/lib/active_admin/views/components/paginated_collection.rb +1 -1
  135. data/lib/active_admin/views/components/scopes.rb +11 -4
  136. data/lib/active_admin/views/components/sidebar.rb +13 -0
  137. data/lib/active_admin/views/components/sidebar_section.rb +0 -3
  138. data/lib/active_admin/views/components/site_title.rb +5 -6
  139. data/lib/active_admin/views/components/status_tag.rb +1 -18
  140. data/lib/active_admin/views/components/table_for.rb +3 -12
  141. data/lib/active_admin/views/components/tabs.rb +15 -3
  142. data/lib/active_admin/views/footer.rb +3 -7
  143. data/lib/active_admin/views/header.rb +3 -15
  144. data/lib/active_admin/views/index_as_blog.rb +1 -1
  145. data/lib/active_admin/views/index_as_grid.rb +25 -25
  146. data/lib/active_admin/views/index_as_table.rb +11 -10
  147. data/lib/active_admin/views/pages/base.rb +30 -53
  148. data/lib/active_admin/views/tabbed_navigation.rb +4 -59
  149. data/lib/active_admin/views.rb +1 -1
  150. data/lib/active_admin.rb +9 -4
  151. data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
  152. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  153. data/lib/generators/active_admin/install/install_generator.rb +6 -2
  154. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +20 -1
  155. data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
  156. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  157. data/lib/generators/active_admin/page/page_generator.rb +1 -1
  158. data/lib/generators/active_admin/resource/resource_generator.rb +1 -1
  159. data/lib/ransack_ext.rb +3 -3
  160. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  161. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  162. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  163. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
  164. metadata +120 -523
  165. data/.github/ISSUE_TEMPLATE.md +0 -20
  166. data/.gitignore +0 -49
  167. data/.mdlrc +0 -1
  168. data/.rubocop.yml +0 -76
  169. data/.simplecov +0 -13
  170. data/.travis.yml +0 -51
  171. data/.yardopts +0 -7
  172. data/Gemfile +0 -58
  173. data/Rakefile +0 -54
  174. data/activeadmin.gemspec +0 -32
  175. data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
  176. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  177. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  178. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
  179. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
  180. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
  181. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
  182. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
  183. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
  184. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
  185. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  186. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  187. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  188. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
  189. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
  190. data/codecov.yml +0 -25
  191. data/config/i18n-tasks.yml +0 -26
  192. data/config/mdl_style.rb +0 -9
  193. data/cucumber.yml +0 -3
  194. data/features/action_item.feature +0 -73
  195. data/features/authorization.feature +0 -64
  196. data/features/authorization_cancan.feature +0 -52
  197. data/features/authorization_pundit.feature +0 -37
  198. data/features/belongs_to.feature +0 -124
  199. data/features/breadcrumb.feature +0 -75
  200. data/features/comments/commenting.feature +0 -178
  201. data/features/comments/viewing_index.feature +0 -19
  202. data/features/create_another.feature +0 -55
  203. data/features/dashboard.feature +0 -16
  204. data/features/decorators.feature +0 -43
  205. data/features/development_reloading.feature +0 -28
  206. data/features/edit_page.feature +0 -116
  207. data/features/favicon.feature +0 -20
  208. data/features/first_boot.feature +0 -16
  209. data/features/footer.feature +0 -28
  210. data/features/global_navigation.feature +0 -29
  211. data/features/i18n.feature +0 -55
  212. data/features/index/batch_actions.feature +0 -218
  213. data/features/index/filters.feature +0 -250
  214. data/features/index/format_as_csv.feature +0 -220
  215. data/features/index/formats.feature +0 -88
  216. data/features/index/index_as_block.feature +0 -15
  217. data/features/index/index_as_blog.feature +0 -69
  218. data/features/index/index_as_grid.feature +0 -45
  219. data/features/index/index_as_table.feature +0 -291
  220. data/features/index/index_blank_slate.feature +0 -83
  221. data/features/index/index_parameters.feature +0 -75
  222. data/features/index/index_scope_to.feature +0 -56
  223. data/features/index/index_scopes.feature +0 -285
  224. data/features/index/page_title.feature +0 -41
  225. data/features/index/pagination.feature +0 -63
  226. data/features/index/switch_index_view.feature +0 -73
  227. data/features/menu.feature +0 -72
  228. data/features/meta_tags.feature +0 -21
  229. data/features/new_page.feature +0 -136
  230. data/features/registering_assets.feature +0 -38
  231. data/features/registering_pages.feature +0 -237
  232. data/features/registering_resources.feature +0 -33
  233. data/features/renamed_resource.feature +0 -30
  234. data/features/root_to.feature +0 -17
  235. data/features/show/attributes_table_title.feature +0 -54
  236. data/features/show/columns.feature +0 -40
  237. data/features/show/default_content.feature +0 -44
  238. data/features/show/page_title.feature +0 -58
  239. data/features/show/tabs.feature +0 -33
  240. data/features/sidebar_sections.feature +0 -210
  241. data/features/site_title.feature +0 -47
  242. data/features/specifying_actions.feature +0 -118
  243. data/features/step_definitions/action_item_steps.rb +0 -7
  244. data/features/step_definitions/action_link_steps.rb +0 -19
  245. data/features/step_definitions/additional_web_steps.rb +0 -81
  246. data/features/step_definitions/asset_steps.rb +0 -15
  247. data/features/step_definitions/attribute_steps.rb +0 -18
  248. data/features/step_definitions/attributes_table_title_steps.rb +0 -11
  249. data/features/step_definitions/batch_action_steps.rb +0 -81
  250. data/features/step_definitions/blog_steps.rb +0 -3
  251. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  252. data/features/step_definitions/column_steps.rb +0 -8
  253. data/features/step_definitions/comment_steps.rb +0 -32
  254. data/features/step_definitions/configuration_steps.rb +0 -100
  255. data/features/step_definitions/dashboard_steps.rb +0 -15
  256. data/features/step_definitions/factory_steps.rb +0 -35
  257. data/features/step_definitions/filter_steps.rb +0 -47
  258. data/features/step_definitions/flash_steps.rb +0 -11
  259. data/features/step_definitions/footer_steps.rb +0 -11
  260. data/features/step_definitions/format_steps.rb +0 -56
  261. data/features/step_definitions/i18n_steps.rb +0 -11
  262. data/features/step_definitions/index_scope_steps.rb +0 -29
  263. data/features/step_definitions/index_views_steps.rb +0 -3
  264. data/features/step_definitions/layout_steps.rb +0 -3
  265. data/features/step_definitions/member_link_steps.rb +0 -7
  266. data/features/step_definitions/menu_steps.rb +0 -11
  267. data/features/step_definitions/meta_tag_steps.rb +0 -3
  268. data/features/step_definitions/pagination_steps.rb +0 -15
  269. data/features/step_definitions/sidebar_steps.rb +0 -11
  270. data/features/step_definitions/site_title_steps.rb +0 -17
  271. data/features/step_definitions/tab_steps.rb +0 -8
  272. data/features/step_definitions/table_steps.rb +0 -116
  273. data/features/step_definitions/user_steps.rb +0 -52
  274. data/features/step_definitions/web_steps.rb +0 -86
  275. data/features/sti_resource.feature +0 -65
  276. data/features/strong_parameters.feature +0 -69
  277. data/features/support/env.rb +0 -122
  278. data/features/support/paths.rb +0 -73
  279. data/features/support/regular_env.rb +0 -7
  280. data/features/support/reload_env.rb +0 -7
  281. data/features/support/selectors.rb +0 -45
  282. data/features/users/logging_in.feature +0 -36
  283. data/features/users/logging_out.feature +0 -13
  284. data/features/users/resetting_password.feature +0 -34
  285. data/gemfiles/rails_42.gemfile +0 -10
  286. data/gemfiles/rails_50.gemfile +0 -10
  287. data/gemfiles/rails_51.gemfile +0 -10
  288. data/gemfiles/rails_52.gemfile +0 -11
  289. data/lib/active_admin/event.rb +0 -24
  290. data/lib/active_admin/helpers/output_safety_helper.rb +0 -35
  291. data/lib/active_admin/helpers/settings.rb +0 -114
  292. data/lib/bug_report_templates/active_admin_master.rb +0 -112
  293. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  294. data/spec/bug_report_templates_spec.rb +0 -26
  295. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  296. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  297. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  298. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  299. data/spec/javascripts/fixtures/flashes.html +0 -2
  300. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  301. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  302. data/spec/javascripts/support/jasmine.yml +0 -74
  303. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  304. data/spec/rails_helper.rb +0 -59
  305. data/spec/requests/default_namespace_spec.rb +0 -81
  306. data/spec/requests/memory_spec.rb +0 -25
  307. data/spec/requests/stylesheets_spec.rb +0 -18
  308. data/spec/spec_helper.rb +0 -1
  309. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  310. data/spec/support/active_admin_request_helpers.rb +0 -39
  311. data/spec/support/rails_template.rb +0 -153
  312. data/spec/support/rails_template_with_data.rb +0 -327
  313. data/spec/support/templates/admin/stores.rb +0 -7
  314. data/spec/support/templates/en.yml +0 -8
  315. data/spec/support/templates/manifest.js +0 -3
  316. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  317. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  318. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  319. data/spec/support/templates/policies/application_policy.rb +0 -44
  320. data/spec/support/templates/policies/category_policy.rb +0 -7
  321. data/spec/support/templates/policies/post_policy.rb +0 -15
  322. data/spec/support/templates/policies/store_policy.rb +0 -11
  323. data/spec/support/templates/policies/user_policy.rb +0 -11
  324. data/spec/support/templates/post_decorator.rb +0 -24
  325. data/spec/unit/abstract_view_factory_spec.rb +0 -78
  326. data/spec/unit/action_builder_spec.rb +0 -158
  327. data/spec/unit/active_admin_spec.rb +0 -11
  328. data/spec/unit/application_spec.rb +0 -184
  329. data/spec/unit/asset_registration_spec.rb +0 -81
  330. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  331. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  332. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  333. data/spec/unit/auto_link_spec.rb +0 -93
  334. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  335. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  336. data/spec/unit/belongs_to_spec.rb +0 -76
  337. data/spec/unit/cancan_adapter_spec.rb +0 -43
  338. data/spec/unit/comments_spec.rb +0 -176
  339. data/spec/unit/component_spec.rb +0 -18
  340. data/spec/unit/config_shared_examples.rb +0 -59
  341. data/spec/unit/controller_filters_spec.rb +0 -41
  342. data/spec/unit/csv_builder_spec.rb +0 -313
  343. data/spec/unit/dependency_spec.rb +0 -135
  344. data/spec/unit/devise_spec.rb +0 -110
  345. data/spec/unit/dsl_spec.rb +0 -120
  346. data/spec/unit/filters/active_filter_spec.rb +0 -189
  347. data/spec/unit/filters/active_spec.rb +0 -24
  348. data/spec/unit/filters/filter_form_builder_spec.rb +0 -524
  349. data/spec/unit/filters/resource_spec.rb +0 -128
  350. data/spec/unit/form_builder_spec.rb +0 -990
  351. data/spec/unit/generators/install_spec.rb +0 -31
  352. data/spec/unit/helpers/collection_spec.rb +0 -68
  353. data/spec/unit/helpers/output_safety_helper_spec.rb +0 -79
  354. data/spec/unit/helpers/scope_chain_spec.rb +0 -35
  355. data/spec/unit/helpers/settings_spec.rb +0 -30
  356. data/spec/unit/i18n_spec.rb +0 -29
  357. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  358. data/spec/unit/menu_collection_spec.rb +0 -62
  359. data/spec/unit/menu_item_spec.rb +0 -141
  360. data/spec/unit/menu_spec.rb +0 -71
  361. data/spec/unit/namespace/authorization_spec.rb +0 -27
  362. data/spec/unit/namespace/register_page_spec.rb +0 -99
  363. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  364. data/spec/unit/namespace_spec.rb +0 -124
  365. data/spec/unit/order_clause_spec.rb +0 -81
  366. data/spec/unit/page_controller_spec.rb +0 -5
  367. data/spec/unit/page_spec.rb +0 -128
  368. data/spec/unit/pretty_format_spec.rb +0 -82
  369. data/spec/unit/pundit_adapter_spec.rb +0 -98
  370. data/spec/unit/resource/action_items_spec.rb +0 -69
  371. data/spec/unit/resource/attributes_spec.rb +0 -49
  372. data/spec/unit/resource/includes_spec.rb +0 -21
  373. data/spec/unit/resource/menu_spec.rb +0 -18
  374. data/spec/unit/resource/naming_spec.rb +0 -122
  375. data/spec/unit/resource/ordering_spec.rb +0 -35
  376. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  377. data/spec/unit/resource/pagination_spec.rb +0 -38
  378. data/spec/unit/resource/routes_spec.rb +0 -125
  379. data/spec/unit/resource/scopes_spec.rb +0 -50
  380. data/spec/unit/resource/sidebars_spec.rb +0 -43
  381. data/spec/unit/resource_collection_spec.rb +0 -175
  382. data/spec/unit/resource_controller/data_access_spec.rb +0 -234
  383. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  384. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  385. data/spec/unit/resource_controller_spec.rb +0 -273
  386. data/spec/unit/resource_registration_spec.rb +0 -61
  387. data/spec/unit/resource_spec.rb +0 -320
  388. data/spec/unit/routing_spec.rb +0 -211
  389. data/spec/unit/scope_spec.rb +0 -209
  390. data/spec/unit/settings_spec.rb +0 -117
  391. data/spec/unit/view_factory_spec.rb +0 -19
  392. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -253
  393. data/spec/unit/view_helpers/display_helper_spec.rb +0 -203
  394. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  395. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  396. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
  397. data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
  398. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
  399. data/spec/unit/views/components/attributes_table_spec.rb +0 -271
  400. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  401. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  402. data/spec/unit/views/components/columns_spec.rb +0 -187
  403. data/spec/unit/views/components/index_list_spec.rb +0 -49
  404. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  405. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  406. data/spec/unit/views/components/panel_spec.rb +0 -58
  407. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  408. data/spec/unit/views/components/site_title_spec.rb +0 -76
  409. data/spec/unit/views/components/status_tag_spec.rb +0 -265
  410. data/spec/unit/views/components/table_for_spec.rb +0 -436
  411. data/spec/unit/views/components/tabs_spec.rb +0 -67
  412. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  413. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  414. data/spec/unit/views/pages/form_spec.rb +0 -54
  415. data/spec/unit/views/pages/index_spec.rb +0 -60
  416. data/spec/unit/views/pages/layout_spec.rb +0 -59
  417. data/spec/unit/views/pages/show_spec.rb +0 -32
  418. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  419. data/tasks/docs.rake +0 -64
  420. data/tasks/lint.rake +0 -21
  421. data/tasks/local.rake +0 -25
  422. data/tasks/parallel_tests.rake +0 -66
  423. data/tasks/test.rake +0 -29
@@ -1,313 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::CSVBuilder do
4
-
5
- describe '.default_for_resource using Post' do
6
- let(:application){ ActiveAdmin::Application.new }
7
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
8
- let(:resource){ ActiveAdmin::Resource.new(namespace, Post, {}) }
9
- let(:csv_builder) { ActiveAdmin::CSVBuilder.default_for_resource(resource).tap(&:exec_columns) }
10
-
11
- it 'returns a default csv_builder for Post' do
12
- expect(csv_builder).to be_a(ActiveAdmin::CSVBuilder)
13
- end
14
-
15
- it 'defines Id as the first column' do
16
- expect(csv_builder.columns.first.name).to eq 'Id'
17
- expect(csv_builder.columns.first.data).to eq :id
18
- end
19
-
20
- it "has Post's content_columns" do
21
- csv_builder.columns[1..-1].each_with_index do |column, index|
22
- expect(column.name).to eq resource.content_columns[index].to_s.humanize
23
- expect(column.data).to eq resource.content_columns[index]
24
- end
25
- end
26
-
27
- context 'when column has a localized name' do
28
- let(:localized_name) { 'Titulo' }
29
-
30
- before do
31
- allow(Post).to receive(:human_attribute_name).and_call_original
32
- allow(Post).to receive(:human_attribute_name).with(:title){ localized_name }
33
- end
34
-
35
- it 'gets name from I18n' do
36
- title_index = resource.content_columns.index(:title) + 1 # First col is always id
37
- expect(csv_builder.columns[title_index].name).to eq localized_name
38
- end
39
- end
40
- end
41
-
42
- context 'when empty' do
43
- let(:builder){ ActiveAdmin::CSVBuilder.new.tap(&:exec_columns) }
44
-
45
- it "should have no columns" do
46
- expect(builder.columns).to eq []
47
- end
48
- end
49
-
50
- context "with a symbol column (:title)" do
51
- let(:builder) do
52
- ActiveAdmin::CSVBuilder.new do
53
- column :title
54
- end.tap(&:exec_columns)
55
- end
56
-
57
- it "should have one column" do
58
- expect(builder.columns.size).to eq 1
59
- end
60
-
61
- describe "the column" do
62
- let(:column){ builder.columns.first }
63
-
64
- it "should have a name of 'Title'" do
65
- expect(column.name).to eq "Title"
66
- end
67
-
68
- it "should have the data :title" do
69
- expect(column.data).to eq :title
70
- end
71
- end
72
- end
73
-
74
- context "with a block and title" do
75
- let(:builder) do
76
- ActiveAdmin::CSVBuilder.new do
77
- column "My title" do
78
- # nothing
79
- end
80
- end.tap(&:exec_columns)
81
- end
82
-
83
- it "should have one column" do
84
- expect(builder.columns.size).to eq 1
85
- end
86
-
87
- describe "the column" do
88
- let(:column){ builder.columns.first }
89
-
90
- it "should have a name of 'My title'" do
91
- expect(column.name).to eq "My title"
92
- end
93
-
94
- it "should have the data :title" do
95
- expect(column.data).to be_an_instance_of(Proc)
96
- end
97
- end
98
- end
99
-
100
- context "with a humanize_name column option" do
101
- context "with symbol column name" do
102
- let(:builder) do
103
- ActiveAdmin::CSVBuilder.new do
104
- column :my_title, humanize_name: false
105
- end.tap(&:exec_columns)
106
- end
107
-
108
- describe "the column" do
109
- let(:column){ builder.columns.first }
110
-
111
- it "should have a name of 'my_title'" do
112
- expect(column.name).to eq "my_title"
113
- end
114
- end
115
- end
116
-
117
- context "with string column name" do
118
- let(:builder) do
119
- ActiveAdmin::CSVBuilder.new do
120
- column "my_title", humanize_name: false
121
- end.tap(&:exec_columns)
122
- end
123
-
124
- describe "the column" do
125
- let(:column){ builder.columns.first }
126
-
127
- it "should have a name of 'my_title'" do
128
- expect(column.name).to eq "my_title"
129
- end
130
- end
131
- end
132
- end
133
-
134
- context "with a separator" do
135
- let(:builder) do
136
- ActiveAdmin::CSVBuilder.new(col_sep: ";").tap(&:exec_columns)
137
- end
138
-
139
- it "should have proper separator" do
140
- expect(builder.options).to eq({col_sep: ";"})
141
- end
142
- end
143
-
144
- context "with humanize_name option" do
145
- let(:builder) do
146
- ActiveAdmin::CSVBuilder.new(humanize_name: false) do
147
- column :my_title
148
- end.tap(&:exec_columns)
149
- end
150
-
151
- describe "the column" do
152
- let(:column){ builder.columns.first }
153
-
154
- it "should have humanize_name option set" do
155
- expect(column.options).to eq humanize_name: false
156
- end
157
-
158
- it "should have a name of 'my_title'" do
159
- expect(column.name).to eq "my_title"
160
- end
161
- end
162
- end
163
-
164
- context "with csv_options" do
165
- let(:builder) do
166
- ActiveAdmin::CSVBuilder.new(force_quotes: true).tap(&:exec_columns)
167
- end
168
-
169
- it "should have proper separator" do
170
- expect(builder.options).to eq({force_quotes: true})
171
- end
172
- end
173
-
174
- context "with access to the controller" do
175
- let(:dummy_view_context) { double(controller: dummy_controller) }
176
- let(:dummy_controller) { double(names: %w(title summary updated_at created_at))}
177
- let(:builder) do
178
- ActiveAdmin::CSVBuilder.new do
179
- column "id"
180
- controller.names.each do |name|
181
- column(name)
182
- end
183
- end.tap{ |b| b.exec_columns(dummy_view_context) }
184
- end
185
-
186
- it "should build columns provided by the controller" do
187
- expect(builder.columns.map(&:data)).to match_array([:id, :title, :summary, :updated_at, :created_at])
188
- end
189
- end
190
-
191
- context "build csv using the supplied order" do
192
- before do
193
- @post1 = Post.create!(title: "Hello1", published_date: Date.today - 2.day)
194
- @post2 = Post.create!(title: "Hello2", published_date: Date.today - 1.day)
195
- end
196
- let(:dummy_controller) {
197
- class DummyController
198
- def find_collection(*)
199
- collection
200
- end
201
-
202
- def collection
203
- Post.order('published_date DESC')
204
- end
205
-
206
- def apply_decorator(resource)
207
- resource
208
- end
209
-
210
- def view_context
211
- end
212
- end
213
- DummyController.new
214
- }
215
- let(:builder) do
216
- ActiveAdmin::CSVBuilder.new do
217
- column "id"
218
- column "title"
219
- column "published_date"
220
- end
221
- end
222
-
223
- it "should generate data with the supplied order" do
224
- expect(builder).to receive(:build_row).and_return([]).once.ordered { |post| expect(post.id).to eq @post2.id }
225
- expect(builder).to receive(:build_row).and_return([]).once.ordered { |post| expect(post.id).to eq @post1.id }
226
- builder.build dummy_controller, []
227
- end
228
-
229
- it "should generate data ignoring pagination" do
230
- expect(dummy_controller).to receive(:find_collection).
231
- with(except: :pagination).once.
232
- and_call_original
233
- expect(builder).to receive(:build_row).and_return([]).twice
234
- builder.build dummy_controller, []
235
- end
236
-
237
- it "should disable the ActiveRecord query cache" do
238
- expect(builder).to receive(:build_row).twice do
239
- expect(ActiveRecord::Base.connection.query_cache_enabled).to be_falsy
240
- []
241
- end
242
- ActiveRecord::Base.cache do
243
- builder.build dummy_controller, []
244
- end
245
- end
246
- end
247
-
248
- context "build csv using specified encoding and encoding_options" do
249
- let(:dummy_controller) do
250
- class DummyController
251
- def find_collection(*)
252
- collection
253
- end
254
-
255
- def collection
256
- Post
257
- end
258
-
259
- def apply_decorator(resource)
260
- resource
261
- end
262
-
263
- def view_context
264
- end
265
- end
266
- DummyController.new
267
- end
268
- let(:encoding) { Encoding::ASCII }
269
- let(:opts) { {} }
270
- let(:builder) do
271
- ActiveAdmin::CSVBuilder.new(encoding: encoding, encoding_options: opts) do
272
- column "おはようございます"
273
- column "title"
274
- end
275
- end
276
-
277
- context "Shift-JIS with options" do
278
- let(:encoding) { Encoding::Shift_JIS }
279
- let(:opts) { { invalid: :replace, undef: :replace, replace: "?" } }
280
-
281
- it "encodes the CSV" do
282
- receiver = []
283
- builder.build dummy_controller, receiver
284
- line = receiver.last
285
- expect(line.encoding).to eq(encoding)
286
- end
287
- end
288
-
289
- context "ASCII with options" do
290
- let(:encoding) { Encoding::ASCII }
291
- let(:opts) do
292
- { invalid: :replace, undef: :replace, replace: "__REPLACED__" }
293
- end
294
-
295
- it "encodes the CSV without errors" do
296
- receiver = []
297
- builder.build dummy_controller, receiver
298
- line = receiver.last
299
- expect(line.encoding).to eq(encoding)
300
- expect(line).to include("__REPLACED__")
301
- end
302
- end
303
- end
304
-
305
- skip '#exec_columns'
306
-
307
- skip '#build_row' do
308
- it 'renders non-strings'
309
- it 'encodes values correctly'
310
- it 'passes custom encoding options to String#encode!'
311
- end
312
-
313
- end
@@ -1,135 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::Dependency do
4
-
5
- k = ActiveAdmin::Dependency
6
-
7
- describe 'method_missing' do
8
- before do
9
- allow(Gem).to receive(:loaded_specs)
10
- .and_return 'foo' => Gem::Specification.new('foo', '1.2.3')
11
- end
12
-
13
- it 'returns a Matcher' do
14
- expect(k.foo).to be_a ActiveAdmin::Dependency::Matcher
15
- expect(k.foo.inspect).to eq '<ActiveAdmin::Dependency::Matcher for foo 1.2.3>'
16
- expect(k.bar.inspect).to eq '<ActiveAdmin::Dependency::Matcher for (missing)>'
17
- end
18
-
19
- describe '`?`' do
20
- it 'base' do
21
- expect(k.foo?).to eq true
22
- expect(k.bar?).to eq false
23
- end
24
- it '=' do
25
- expect(k.foo? '= 1.2.3').to eq true
26
- expect(k.foo? '= 1').to eq false
27
- end
28
- it '>' do
29
- expect(k.foo? '> 1').to eq true
30
- expect(k.foo? '> 2').to eq false
31
- end
32
- it '<' do
33
- expect(k.foo? '< 2').to eq true
34
- expect(k.foo? '< 1').to eq false
35
- end
36
- it '>=' do
37
- expect(k.foo? '>= 1.2.3').to eq true
38
- expect(k.foo? '>= 1.2.2').to eq true
39
- expect(k.foo? '>= 1.2.4').to eq false
40
- end
41
- it '<=' do
42
- expect(k.foo? '<= 1.2.3').to eq true
43
- expect(k.foo? '<= 1.2.4').to eq true
44
- expect(k.foo? '<= 1.2.2').to eq false
45
- end
46
- it '~>' do
47
- expect(k.foo? '~> 1.2.0').to eq true
48
- expect(k.foo? '~> 1.1').to eq true
49
- expect(k.foo? '~> 1.2.4').to eq false
50
- end
51
- end
52
-
53
- describe '`!`' do
54
- it 'raises an error if requirement not met' do
55
- expect{ k.foo! '5' }.to raise_error ActiveAdmin::DependencyError,
56
- 'You provided foo 1.2.3 but we need: 5.'
57
- end
58
- it 'accepts multiple arguments' do
59
- expect{ k.foo! '> 1', '< 1.2' }.to raise_error ActiveAdmin::DependencyError,
60
- 'You provided foo 1.2.3 but we need: > 1, < 1.2.'
61
- end
62
- it 'raises an error if not provided' do
63
- expect{ k.bar! }.to raise_error ActiveAdmin::DependencyError,
64
- 'To use bar you need to specify it in your Gemfile.'
65
- end
66
- end
67
- end
68
-
69
- describe '[]' do
70
- before do
71
- allow(Gem).to receive(:loaded_specs)
72
- .and_return 'a-b' => Gem::Specification.new('a-b', '1.2.3')
73
- end
74
-
75
- it 'allows access to gems with an arbitrary name' do
76
- expect(k['a-b']).to be_a ActiveAdmin::Dependency::Matcher
77
- expect(k['a-b'].inspect).to eq '<ActiveAdmin::Dependency::Matcher for a-b 1.2.3>'
78
- expect(k['c-d'].inspect).to eq '<ActiveAdmin::Dependency::Matcher for (missing)>'
79
- end
80
-
81
- # Note: more extensive tests for match? and match! are above.
82
-
83
- it 'match?' do
84
- expect(k['a-b'].match?).to eq true
85
- expect(k['a-b'].match? '1.2.3').to eq true
86
- expect(k['b-c'].match?).to eq false
87
- end
88
-
89
- it 'match!' do
90
- expect(k['a-b'].match!).to eq nil
91
- expect(k['a-b'].match! '1.2.3').to eq nil
92
-
93
- expect{ k['a-b'].match! '2.5' }.to raise_error ActiveAdmin::DependencyError,
94
- 'You provided a-b 1.2.3 but we need: 2.5.'
95
-
96
- expect{ k['b-c'].match! }.to raise_error ActiveAdmin::DependencyError,
97
- 'To use b-c you need to specify it in your Gemfile.'
98
- end
99
-
100
- # Note: Ruby comparison operators are separate from the `foo? '> 1'` syntax
101
-
102
- describe 'Ruby comparison syntax' do
103
-
104
- it '==' do
105
- expect(k['a-b'] == '1.2.3').to eq true
106
- expect(k['a-b'] == '1.2').to eq false
107
- expect(k['a-b'] == 1).to eq false
108
- end
109
- it '>' do
110
- expect(k['a-b'] > 1).to eq true
111
- expect(k['a-b'] > 2).to eq false
112
- end
113
- it '<' do
114
- expect(k['a-b'] < 2).to eq true
115
- expect(k['a-b'] < 1).to eq false
116
- end
117
- it '>=' do
118
- expect(k['a-b'] >= '1.2.3').to eq true
119
- expect(k['a-b'] >= '1.2.2').to eq true
120
- expect(k['a-b'] >= '1.2.4').to eq false
121
- end
122
- it '<=' do
123
- expect(k['a-b'] <= '1.2.3').to eq true
124
- expect(k['a-b'] <= '1.2.4').to eq true
125
- expect(k['a-b'] <= '1.2.2').to eq false
126
- end
127
-
128
- it 'throws a custom error if the gem is missing' do
129
- expect{ k['b-c'] < 23 }.to raise_error ActiveAdmin::DependencyError,
130
- 'To use b-c you need to specify it in your Gemfile.'
131
- end
132
- end
133
- end
134
-
135
- end
@@ -1,110 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::Devise::Controller do
4
-
5
- let(:controller_class) do
6
- klass = Class.new do
7
- def self.layout(*); end
8
- def self.helper(*); end
9
- end
10
- klass.send(:include, ActiveAdmin::Devise::Controller)
11
- klass
12
- end
13
-
14
- let(:controller) { controller_class.new }
15
- let(:action_controller_config) { Rails.configuration.action_controller }
16
-
17
- def with_temp_relative_url_root(relative_url_root)
18
- previous_relative_url_root = action_controller_config[:relative_url_root]
19
- action_controller_config[:relative_url_root] = relative_url_root
20
-
21
- yield
22
- ensure
23
- action_controller_config[:relative_url_root] = previous_relative_url_root
24
- end
25
-
26
- context 'with a RAILS_RELATIVE_URL_ROOT set' do
27
-
28
- around do |example|
29
- with_temp_relative_url_root('/foo') { example.call }
30
- end
31
-
32
- it "should set the root path to the default namespace" do
33
- expect(controller.root_path).to eq "/foo/admin"
34
- end
35
-
36
- it "should set the root path to '/' when no default namespace" do
37
- allow(ActiveAdmin.application).to receive(:default_namespace).and_return(false)
38
- expect(controller.root_path).to eq "/foo/"
39
- end
40
-
41
- end
42
-
43
- context 'without a RAILS_RELATIVE_URL_ROOT set' do
44
-
45
- around do |example|
46
- with_temp_relative_url_root(nil) { example.call }
47
- end
48
-
49
- it "should set the root path to the default namespace" do
50
- expect(controller.root_path).to eq "/admin"
51
- end
52
-
53
- it "should set the root path to '/' when no default namespace" do
54
- allow(ActiveAdmin.application).to receive(:default_namespace).and_return(false)
55
- expect(controller.root_path).to eq "/"
56
- end
57
-
58
- end
59
-
60
- context "within a scoped route" do
61
-
62
- SCOPE = '/aa_scoped'
63
-
64
- before do
65
- # Remove existing routes
66
- routes = Rails.application.routes
67
- routes.clear!
68
-
69
- # Add scoped routes
70
- routes.draw do
71
- scope path: SCOPE do
72
- ActiveAdmin.routes(self)
73
- devise_for :admin_users, ActiveAdmin::Devise.config
74
- end
75
- end
76
- end
77
-
78
- after do
79
- # Resume default routes
80
- reload_routes!
81
- end
82
-
83
- it "should include scope path in root_path" do
84
- expect(controller.root_path).to eq "#{SCOPE}/admin"
85
- end
86
-
87
- end
88
-
89
- describe "#config" do
90
- let(:config) { ActiveAdmin::Devise.config }
91
-
92
- describe ":sign_out_via option" do
93
- it "should contain the application.logout_link_method" do
94
- expect(::Devise).to receive(:sign_out_via).and_return(:delete)
95
- expect(ActiveAdmin.application).to receive(:logout_link_method).and_return(:get)
96
-
97
- expect(config[:sign_out_via]).to include(:get)
98
- end
99
-
100
- it "should contain Devise's logout_via_method(s)" do
101
- expect(::Devise).to receive(:sign_out_via).and_return([:delete, :post])
102
- expect(ActiveAdmin.application).to receive(:logout_link_method).and_return(:get)
103
-
104
- expect(config[:sign_out_via]).to eq [:delete, :post, :get]
105
- end
106
-
107
- end # describe ":sign_out_via option"
108
- end # describe "#config"
109
-
110
- end
@@ -1,120 +0,0 @@
1
- require 'rails_helper'
2
-
3
- module MockModuleToInclude
4
- def self.included(dsl)
5
- end
6
- end
7
-
8
- RSpec.describe ActiveAdmin::DSL do
9
-
10
- let(:application) { ActiveAdmin::Application.new }
11
- let(:namespace) { ActiveAdmin::Namespace.new application, :admin }
12
- let(:resource_config) { namespace.register Post }
13
- let(:dsl){ ActiveAdmin::DSL.new(resource_config) }
14
-
15
- describe "#include" do
16
-
17
- it "should call the included class method on the module that is included" do
18
- expect(MockModuleToInclude).to receive(:included).with(dsl)
19
- dsl.run_registration_block do
20
- include MockModuleToInclude
21
- end
22
- end
23
-
24
- end
25
-
26
- describe '#action_item' do
27
- before do
28
- @default_items_count = resource_config.action_items.size
29
-
30
- dsl.run_registration_block do
31
- action_item :awesome, only: :show do
32
- "Awesome ActionItem"
33
- end
34
- end
35
- end
36
-
37
- it "adds action_item to the action_items of config" do
38
- expect(resource_config.action_items.size).to eq(@default_items_count + 1)
39
- end
40
-
41
- context 'DEPRECATED: when used without a name' do
42
- it "is configured for only the show action" do
43
- expect(ActiveAdmin::Deprecation).to receive(:warn).with(instance_of(String))
44
-
45
- dsl.run_registration_block do
46
- action_item only: :edit do
47
- "Awesome ActionItem"
48
- end
49
- end
50
-
51
- item = resource_config.action_items.last
52
- expect(item.display_on?(:edit)).to be true
53
- expect(item.display_on?(:index)).to be false
54
- end
55
- end
56
- end
57
-
58
- describe "#menu" do
59
-
60
- it "should set the menu_item_options on the configuration" do
61
- expect(resource_config).to receive(:menu_item_options=).with({parent: "Admin"})
62
- dsl.run_registration_block do
63
- menu parent: "Admin"
64
- end
65
- end
66
-
67
- end
68
-
69
- describe "#navigation_menu" do
70
-
71
- it "should set the navigation_menu_name on the configuration" do
72
- expect(resource_config).to receive(:navigation_menu_name=).with(:admin)
73
- dsl.run_registration_block do
74
- navigation_menu :admin
75
- end
76
- end
77
-
78
- it "should accept a block" do
79
- dsl = ActiveAdmin::DSL.new(resource_config)
80
- dsl.run_registration_block do
81
- navigation_menu { :dynamic_menu }
82
- end
83
- expect(resource_config.navigation_menu_name).to eq :dynamic_menu
84
- end
85
-
86
- end
87
-
88
- describe "#sidebar" do
89
-
90
- before do
91
- dsl.config.sidebar_sections << ActiveAdmin::SidebarSection.new(:email)
92
- end
93
-
94
- it "add sidebar_section to the sidebar_sections of config" do
95
- dsl.run_registration_block do
96
- sidebar :help
97
- end
98
- expect(dsl.config.sidebar_sections.map(&:name)).to match_array ['filters', 'Search status:', 'email', 'help']
99
- end
100
-
101
- end
102
-
103
- describe "#batch_action" do
104
- it "should add a batch action by symbol" do
105
- dsl.run_registration_block do
106
- config.batch_actions = true
107
- batch_action :foo
108
- end
109
- expect(resource_config.batch_actions.map(&:sym)).to eq [:foo, :destroy]
110
- end
111
-
112
- it "should add a batch action by title" do
113
- dsl.run_registration_block do
114
- config.batch_actions = true
115
- batch_action "foo bar"
116
- end
117
- expect(resource_config.batch_actions.map(&:sym)).to eq [:foo_bar, :destroy]
118
- end
119
- end
120
- end