activeadmin 1.1.0 → 2.4.0

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 (465) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +469 -100
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +89 -47
  5. data/README.md +73 -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 +59 -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/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  33. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  34. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  35. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  36. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  37. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  38. data/app/views/layouts/active_admin_logged_out.html.erb +2 -2
  39. data/config/locales/ar.yml +3 -2
  40. data/config/locales/bg.yml +1 -1
  41. data/config/locales/bs.yml +1 -0
  42. data/config/locales/ca.yml +1 -1
  43. data/config/locales/cs.yml +1 -0
  44. data/config/locales/da.yml +1 -0
  45. data/config/locales/de-CH.yml +1 -0
  46. data/config/locales/de.yml +29 -0
  47. data/config/locales/el.yml +1 -0
  48. data/config/locales/en-CA.yml +1 -0
  49. data/config/locales/en-GB.yml +1 -0
  50. data/config/locales/en.yml +21 -1
  51. data/config/locales/eo.yml +145 -0
  52. data/config/locales/es-MX.yml +1 -0
  53. data/config/locales/es.yml +21 -1
  54. data/config/locales/fa.yml +1 -0
  55. data/config/locales/fi.yml +2 -1
  56. data/config/locales/fr.yml +2 -1
  57. data/config/locales/he.yml +1 -1
  58. data/config/locales/hr.yml +1 -0
  59. data/config/locales/hu.yml +5 -0
  60. data/config/locales/id.yml +1 -0
  61. data/config/locales/it.yml +13 -3
  62. data/config/locales/ja.yml +6 -0
  63. data/config/locales/ko.yml +1 -0
  64. data/config/locales/lt.yml +3 -2
  65. data/config/locales/lv.yml +1 -0
  66. data/config/locales/mk.yml +134 -0
  67. data/config/locales/nb.yml +16 -5
  68. data/config/locales/nl.yml +12 -0
  69. data/config/locales/pl.yml +72 -3
  70. data/config/locales/pt-BR.yml +9 -0
  71. data/config/locales/pt-PT.yml +1 -0
  72. data/config/locales/ro.yml +1 -0
  73. data/config/locales/ru.yml +3 -0
  74. data/config/locales/sk.yml +60 -0
  75. data/config/locales/sv-SE.yml +3 -0
  76. data/config/locales/tr.yml +10 -0
  77. data/config/locales/uk.yml +3 -0
  78. data/config/locales/vi.yml +48 -6
  79. data/config/locales/zh-CN.yml +34 -5
  80. data/config/locales/zh-TW.yml +1 -0
  81. data/docs/.gitignore +1 -0
  82. data/docs/0-installation.md +2 -2
  83. data/docs/1-general-configuration.md +16 -1
  84. data/docs/10-custom-pages.md +14 -0
  85. data/docs/12-arbre-components.md +41 -1
  86. data/docs/13-authorization-adapter.md +41 -22
  87. data/docs/2-resource-customization.md +10 -5
  88. data/docs/3-index-pages/custom-index.md +1 -1
  89. data/docs/3-index-pages/index-as-blog.md +1 -1
  90. data/docs/3-index-pages/index-as-table.md +12 -5
  91. data/docs/3-index-pages.md +17 -0
  92. data/docs/5-forms.md +16 -2
  93. data/docs/8-custom-actions.md +11 -0
  94. data/docs/CNAME +1 -1
  95. data/docs/Gemfile +2 -1
  96. data/docs/Gemfile.lock +248 -0
  97. data/docs/_config.yml +3 -1
  98. data/docs/_includes/toc.html +1 -1
  99. data/docs/_includes/top-menu.html +9 -1
  100. data/docs/documentation.md +1 -1
  101. data/docs/images/tidelift.svg +14 -0
  102. data/docs/index.html +109 -8
  103. data/docs/stylesheets/main.css +55 -2
  104. data/lib/active_admin/abstract_view_factory.rb +13 -51
  105. data/lib/active_admin/application.rb +52 -159
  106. data/lib/active_admin/application_settings.rb +42 -0
  107. data/lib/active_admin/asset_registration.rb +0 -8
  108. data/lib/active_admin/base_controller/authorization.rb +4 -6
  109. data/lib/active_admin/base_controller.rb +6 -6
  110. data/lib/active_admin/batch_actions/controller.rb +2 -2
  111. data/lib/active_admin/batch_actions/resource_extension.rb +9 -5
  112. data/lib/active_admin/callbacks.rb +1 -1
  113. data/lib/active_admin/controller_action.rb +2 -1
  114. data/lib/active_admin/csv_builder.rb +10 -7
  115. data/lib/active_admin/dependency.rb +3 -67
  116. data/lib/active_admin/deprecation.rb +0 -25
  117. data/lib/active_admin/dsl.rb +1 -8
  118. data/lib/active_admin/dynamic_setting.rb +38 -0
  119. data/lib/active_admin/dynamic_settings_node.rb +28 -0
  120. data/lib/active_admin/engine.rb +5 -0
  121. data/lib/active_admin/error.rb +4 -2
  122. data/lib/active_admin/filters/active_filter.rb +49 -12
  123. data/lib/active_admin/filters/active_sidebar.rb +6 -2
  124. data/lib/active_admin/filters/forms.rb +7 -4
  125. data/lib/active_admin/filters/formtastic_addons.rb +1 -1
  126. data/lib/active_admin/filters/resource_extension.rb +28 -4
  127. data/lib/active_admin/form_builder.rb +98 -63
  128. data/lib/active_admin/generators/boilerplate.rb +12 -4
  129. data/lib/active_admin/helpers/scope_chain.rb +1 -0
  130. data/lib/active_admin/inputs/datepicker_input.rb +8 -1
  131. data/lib/active_admin/inputs/filters/base/search_method_select.rb +2 -2
  132. data/lib/active_admin/inputs/filters/select_input.rb +5 -1
  133. data/lib/active_admin/menu.rb +2 -8
  134. data/lib/active_admin/menu_item.rb +4 -32
  135. data/lib/active_admin/namespace.rb +20 -8
  136. data/lib/active_admin/namespace_settings.rb +123 -0
  137. data/lib/active_admin/order_clause.rb +2 -2
  138. data/lib/active_admin/orm/active_record/comments/comment.rb +2 -2
  139. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +17 -7
  140. data/lib/active_admin/orm/active_record/comments.rb +15 -4
  141. data/lib/active_admin/page_dsl.rb +1 -1
  142. data/lib/active_admin/page_presenter.rb +2 -1
  143. data/lib/active_admin/pundit_adapter.rb +18 -5
  144. data/lib/active_admin/resource/action_items.rb +7 -2
  145. data/lib/active_admin/resource/attributes.rb +7 -4
  146. data/lib/active_admin/resource/belongs_to.rb +6 -1
  147. data/lib/active_admin/resource/menu.rb +3 -3
  148. data/lib/active_admin/resource/model.rb +15 -0
  149. data/lib/active_admin/resource/naming.rb +3 -3
  150. data/lib/active_admin/resource/routes.rb +20 -7
  151. data/lib/active_admin/resource/scopes.rb +3 -3
  152. data/lib/active_admin/resource/sidebars.rb +1 -1
  153. data/lib/active_admin/resource.rb +17 -3
  154. data/lib/active_admin/resource_collection.rb +2 -2
  155. data/lib/active_admin/resource_controller/action_builder.rb +10 -0
  156. data/lib/active_admin/resource_controller/data_access.rb +5 -1
  157. data/lib/active_admin/resource_controller/decorators.rb +5 -5
  158. data/lib/active_admin/resource_controller/polymorphic_routes.rb +36 -0
  159. data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
  160. data/lib/active_admin/resource_controller/scoping.rb +1 -1
  161. data/lib/active_admin/resource_controller.rb +2 -0
  162. data/lib/active_admin/resource_dsl.rb +7 -3
  163. data/lib/active_admin/router.rb +90 -84
  164. data/lib/active_admin/scope.rb +16 -8
  165. data/lib/active_admin/settings_node.rb +19 -0
  166. data/lib/active_admin/sidebar_section.rb +3 -1
  167. data/lib/active_admin/version.rb +1 -1
  168. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +2 -2
  169. data/lib/active_admin/view_helpers/display_helper.rb +13 -4
  170. data/lib/active_admin/view_helpers/download_format_links_helper.rb +1 -0
  171. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +3 -0
  172. data/lib/active_admin/view_helpers.rb +1 -1
  173. data/lib/active_admin/views/components/active_admin_form.rb +9 -4
  174. data/lib/active_admin/views/components/attributes_table.rb +3 -3
  175. data/lib/active_admin/views/components/menu.rb +32 -0
  176. data/lib/active_admin/views/components/menu_item.rb +58 -0
  177. data/lib/active_admin/views/components/paginated_collection.rb +3 -3
  178. data/lib/active_admin/views/components/scopes.rb +11 -4
  179. data/lib/active_admin/views/components/sidebar.rb +13 -0
  180. data/lib/active_admin/views/components/site_title.rb +5 -6
  181. data/lib/active_admin/views/components/status_tag.rb +6 -19
  182. data/lib/active_admin/views/components/table_for.rb +3 -12
  183. data/lib/active_admin/views/components/tabs.rb +15 -3
  184. data/lib/active_admin/views/footer.rb +3 -7
  185. data/lib/active_admin/views/header.rb +3 -15
  186. data/lib/active_admin/views/index_as_blog.rb +1 -1
  187. data/lib/active_admin/views/index_as_grid.rb +25 -25
  188. data/lib/active_admin/views/index_as_table.rb +18 -10
  189. data/lib/active_admin/views/pages/base.rb +30 -53
  190. data/lib/active_admin/views/tabbed_navigation.rb +4 -59
  191. data/lib/active_admin/views.rb +1 -1
  192. data/lib/active_admin.rb +10 -4
  193. data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
  194. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  195. data/lib/generators/active_admin/install/install_generator.rb +7 -3
  196. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +38 -3
  197. data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
  198. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  199. data/lib/generators/active_admin/page/page_generator.rb +1 -1
  200. data/lib/generators/active_admin/resource/resource_generator.rb +2 -2
  201. data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
  202. data/lib/ransack_ext.rb +3 -3
  203. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  204. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  205. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  206. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
  207. metadata +127 -523
  208. data/.github/ISSUE_TEMPLATE.md +0 -20
  209. data/.gitignore +0 -49
  210. data/.mdlrc +0 -1
  211. data/.rubocop.yml +0 -76
  212. data/.simplecov +0 -13
  213. data/.travis.yml +0 -51
  214. data/.yardopts +0 -7
  215. data/Gemfile +0 -58
  216. data/Rakefile +0 -54
  217. data/activeadmin.gemspec +0 -32
  218. data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
  219. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  220. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  221. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
  222. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
  223. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
  224. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
  225. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
  226. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
  227. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
  228. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  229. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  230. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  231. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
  232. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
  233. data/codecov.yml +0 -25
  234. data/config/i18n-tasks.yml +0 -26
  235. data/config/mdl_style.rb +0 -9
  236. data/cucumber.yml +0 -3
  237. data/features/action_item.feature +0 -73
  238. data/features/authorization.feature +0 -64
  239. data/features/authorization_cancan.feature +0 -52
  240. data/features/authorization_pundit.feature +0 -37
  241. data/features/belongs_to.feature +0 -124
  242. data/features/breadcrumb.feature +0 -75
  243. data/features/comments/commenting.feature +0 -178
  244. data/features/comments/viewing_index.feature +0 -19
  245. data/features/create_another.feature +0 -55
  246. data/features/dashboard.feature +0 -16
  247. data/features/decorators.feature +0 -43
  248. data/features/development_reloading.feature +0 -28
  249. data/features/edit_page.feature +0 -116
  250. data/features/favicon.feature +0 -20
  251. data/features/first_boot.feature +0 -16
  252. data/features/footer.feature +0 -28
  253. data/features/global_navigation.feature +0 -29
  254. data/features/i18n.feature +0 -55
  255. data/features/index/batch_actions.feature +0 -218
  256. data/features/index/filters.feature +0 -239
  257. data/features/index/format_as_csv.feature +0 -220
  258. data/features/index/formats.feature +0 -88
  259. data/features/index/index_as_block.feature +0 -15
  260. data/features/index/index_as_blog.feature +0 -69
  261. data/features/index/index_as_grid.feature +0 -45
  262. data/features/index/index_as_table.feature +0 -291
  263. data/features/index/index_blank_slate.feature +0 -83
  264. data/features/index/index_parameters.feature +0 -75
  265. data/features/index/index_scope_to.feature +0 -56
  266. data/features/index/index_scopes.feature +0 -285
  267. data/features/index/page_title.feature +0 -41
  268. data/features/index/pagination.feature +0 -63
  269. data/features/index/switch_index_view.feature +0 -73
  270. data/features/menu.feature +0 -72
  271. data/features/meta_tags.feature +0 -21
  272. data/features/new_page.feature +0 -107
  273. data/features/registering_assets.feature +0 -38
  274. data/features/registering_pages.feature +0 -237
  275. data/features/registering_resources.feature +0 -33
  276. data/features/renamed_resource.feature +0 -30
  277. data/features/root_to.feature +0 -17
  278. data/features/show/attributes_table_title.feature +0 -54
  279. data/features/show/columns.feature +0 -40
  280. data/features/show/default_content.feature +0 -44
  281. data/features/show/page_title.feature +0 -58
  282. data/features/show/tabs.feature +0 -33
  283. data/features/sidebar_sections.feature +0 -210
  284. data/features/site_title.feature +0 -47
  285. data/features/specifying_actions.feature +0 -118
  286. data/features/step_definitions/action_item_steps.rb +0 -7
  287. data/features/step_definitions/action_link_steps.rb +0 -19
  288. data/features/step_definitions/additional_web_steps.rb +0 -81
  289. data/features/step_definitions/asset_steps.rb +0 -15
  290. data/features/step_definitions/attribute_steps.rb +0 -18
  291. data/features/step_definitions/attributes_table_title_steps.rb +0 -11
  292. data/features/step_definitions/batch_action_steps.rb +0 -81
  293. data/features/step_definitions/blog_steps.rb +0 -3
  294. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  295. data/features/step_definitions/column_steps.rb +0 -8
  296. data/features/step_definitions/comment_steps.rb +0 -32
  297. data/features/step_definitions/configuration_steps.rb +0 -100
  298. data/features/step_definitions/dashboard_steps.rb +0 -15
  299. data/features/step_definitions/factory_steps.rb +0 -35
  300. data/features/step_definitions/filter_steps.rb +0 -48
  301. data/features/step_definitions/flash_steps.rb +0 -11
  302. data/features/step_definitions/footer_steps.rb +0 -11
  303. data/features/step_definitions/format_steps.rb +0 -56
  304. data/features/step_definitions/i18n_steps.rb +0 -11
  305. data/features/step_definitions/index_scope_steps.rb +0 -29
  306. data/features/step_definitions/index_views_steps.rb +0 -3
  307. data/features/step_definitions/layout_steps.rb +0 -3
  308. data/features/step_definitions/member_link_steps.rb +0 -7
  309. data/features/step_definitions/menu_steps.rb +0 -11
  310. data/features/step_definitions/meta_tag_steps.rb +0 -3
  311. data/features/step_definitions/pagination_steps.rb +0 -15
  312. data/features/step_definitions/sidebar_steps.rb +0 -11
  313. data/features/step_definitions/site_title_steps.rb +0 -17
  314. data/features/step_definitions/tab_steps.rb +0 -8
  315. data/features/step_definitions/table_steps.rb +0 -116
  316. data/features/step_definitions/user_steps.rb +0 -52
  317. data/features/step_definitions/web_steps.rb +0 -86
  318. data/features/sti_resource.feature +0 -65
  319. data/features/strong_parameters.feature +0 -69
  320. data/features/support/env.rb +0 -122
  321. data/features/support/paths.rb +0 -73
  322. data/features/support/regular_env.rb +0 -7
  323. data/features/support/reload_env.rb +0 -7
  324. data/features/support/selectors.rb +0 -45
  325. data/features/users/logging_in.feature +0 -36
  326. data/features/users/logging_out.feature +0 -13
  327. data/features/users/resetting_password.feature +0 -34
  328. data/gemfiles/rails_42.gemfile +0 -10
  329. data/gemfiles/rails_50.gemfile +0 -10
  330. data/gemfiles/rails_51.gemfile +0 -10
  331. data/lib/active_admin/event.rb +0 -24
  332. data/lib/active_admin/helpers/settings.rb +0 -114
  333. data/lib/active_admin/reloader.rb +0 -25
  334. data/lib/bug_report_templates/active_admin_master.rb +0 -113
  335. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  336. data/spec/bug_report_templates_spec.rb +0 -26
  337. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  338. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  339. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  340. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  341. data/spec/javascripts/fixtures/flashes.html +0 -2
  342. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  343. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  344. data/spec/javascripts/support/jasmine.yml +0 -74
  345. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  346. data/spec/rails_helper.rb +0 -59
  347. data/spec/requests/default_namespace_spec.rb +0 -81
  348. data/spec/requests/memory_spec.rb +0 -25
  349. data/spec/requests/stylesheets_spec.rb +0 -18
  350. data/spec/spec_helper.rb +0 -1
  351. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  352. data/spec/support/active_admin_request_helpers.rb +0 -39
  353. data/spec/support/rails_template.rb +0 -150
  354. data/spec/support/rails_template_with_data.rb +0 -327
  355. data/spec/support/templates/admin/stores.rb +0 -7
  356. data/spec/support/templates/en.yml +0 -8
  357. data/spec/support/templates/manifest.js +0 -3
  358. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  359. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  360. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  361. data/spec/support/templates/policies/application_policy.rb +0 -44
  362. data/spec/support/templates/policies/category_policy.rb +0 -7
  363. data/spec/support/templates/policies/post_policy.rb +0 -15
  364. data/spec/support/templates/policies/store_policy.rb +0 -11
  365. data/spec/support/templates/policies/user_policy.rb +0 -11
  366. data/spec/support/templates/post_decorator.rb +0 -10
  367. data/spec/unit/abstract_view_factory_spec.rb +0 -78
  368. data/spec/unit/action_builder_spec.rb +0 -125
  369. data/spec/unit/active_admin_spec.rb +0 -11
  370. data/spec/unit/application_spec.rb +0 -184
  371. data/spec/unit/asset_registration_spec.rb +0 -81
  372. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  373. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  374. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  375. data/spec/unit/auto_link_spec.rb +0 -93
  376. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  377. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  378. data/spec/unit/belongs_to_spec.rb +0 -76
  379. data/spec/unit/cancan_adapter_spec.rb +0 -43
  380. data/spec/unit/comments_spec.rb +0 -176
  381. data/spec/unit/component_spec.rb +0 -18
  382. data/spec/unit/config_shared_examples.rb +0 -59
  383. data/spec/unit/controller_filters_spec.rb +0 -41
  384. data/spec/unit/csv_builder_spec.rb +0 -304
  385. data/spec/unit/dependency_spec.rb +0 -135
  386. data/spec/unit/devise_spec.rb +0 -110
  387. data/spec/unit/dsl_spec.rb +0 -120
  388. data/spec/unit/filters/active_filter_spec.rb +0 -135
  389. data/spec/unit/filters/active_spec.rb +0 -24
  390. data/spec/unit/filters/filter_form_builder_spec.rb +0 -502
  391. data/spec/unit/filters/resource_spec.rb +0 -128
  392. data/spec/unit/form_builder_spec.rb +0 -990
  393. data/spec/unit/generators/install_spec.rb +0 -31
  394. data/spec/unit/helpers/collection_spec.rb +0 -68
  395. data/spec/unit/helpers/scope_chain_spec.rb +0 -35
  396. data/spec/unit/helpers/settings_spec.rb +0 -30
  397. data/spec/unit/i18n_spec.rb +0 -29
  398. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  399. data/spec/unit/menu_collection_spec.rb +0 -62
  400. data/spec/unit/menu_item_spec.rb +0 -141
  401. data/spec/unit/menu_spec.rb +0 -71
  402. data/spec/unit/namespace/authorization_spec.rb +0 -27
  403. data/spec/unit/namespace/register_page_spec.rb +0 -99
  404. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  405. data/spec/unit/namespace_spec.rb +0 -124
  406. data/spec/unit/order_clause_spec.rb +0 -81
  407. data/spec/unit/page_controller_spec.rb +0 -5
  408. data/spec/unit/page_spec.rb +0 -128
  409. data/spec/unit/pretty_format_spec.rb +0 -82
  410. data/spec/unit/pundit_adapter_spec.rb +0 -98
  411. data/spec/unit/resource/action_items_spec.rb +0 -69
  412. data/spec/unit/resource/attributes_spec.rb +0 -49
  413. data/spec/unit/resource/includes_spec.rb +0 -21
  414. data/spec/unit/resource/menu_spec.rb +0 -18
  415. data/spec/unit/resource/naming_spec.rb +0 -122
  416. data/spec/unit/resource/ordering_spec.rb +0 -35
  417. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  418. data/spec/unit/resource/pagination_spec.rb +0 -38
  419. data/spec/unit/resource/routes_spec.rb +0 -125
  420. data/spec/unit/resource/scopes_spec.rb +0 -50
  421. data/spec/unit/resource/sidebars_spec.rb +0 -43
  422. data/spec/unit/resource_collection_spec.rb +0 -175
  423. data/spec/unit/resource_controller/data_access_spec.rb +0 -230
  424. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  425. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  426. data/spec/unit/resource_controller_spec.rb +0 -273
  427. data/spec/unit/resource_registration_spec.rb +0 -61
  428. data/spec/unit/resource_spec.rb +0 -320
  429. data/spec/unit/routing_spec.rb +0 -211
  430. data/spec/unit/scope_spec.rb +0 -209
  431. data/spec/unit/settings_spec.rb +0 -117
  432. data/spec/unit/view_factory_spec.rb +0 -19
  433. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -252
  434. data/spec/unit/view_helpers/display_helper_spec.rb +0 -195
  435. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  436. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  437. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
  438. data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
  439. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
  440. data/spec/unit/views/components/attributes_table_spec.rb +0 -271
  441. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  442. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  443. data/spec/unit/views/components/columns_spec.rb +0 -187
  444. data/spec/unit/views/components/index_list_spec.rb +0 -49
  445. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  446. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  447. data/spec/unit/views/components/panel_spec.rb +0 -58
  448. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  449. data/spec/unit/views/components/site_title_spec.rb +0 -76
  450. data/spec/unit/views/components/status_tag_spec.rb +0 -265
  451. data/spec/unit/views/components/table_for_spec.rb +0 -436
  452. data/spec/unit/views/components/tabs_spec.rb +0 -67
  453. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  454. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  455. data/spec/unit/views/pages/form_spec.rb +0 -54
  456. data/spec/unit/views/pages/index_spec.rb +0 -60
  457. data/spec/unit/views/pages/layout_spec.rb +0 -59
  458. data/spec/unit/views/pages/show_spec.rb +0 -32
  459. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  460. data/tasks/docs.rake +0 -64
  461. data/tasks/lint.rake +0 -21
  462. data/tasks/local.rake +0 -25
  463. data/tasks/parallel_tests.rake +0 -66
  464. data/tasks/test.rake +0 -29
  465. /data/lib/generators/active_admin/install/templates/{admin_user.rb.erb → admin_users.rb.erb} +0 -0
@@ -1,304 +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
- end
238
-
239
- context "build csv using specified encoding and encoding_options" do
240
- let(:dummy_controller) do
241
- class DummyController
242
- def find_collection(*)
243
- collection
244
- end
245
-
246
- def collection
247
- Post
248
- end
249
-
250
- def apply_decorator(resource)
251
- resource
252
- end
253
-
254
- def view_context
255
- end
256
- end
257
- DummyController.new
258
- end
259
- let(:encoding) { Encoding::ASCII }
260
- let(:opts) { {} }
261
- let(:builder) do
262
- ActiveAdmin::CSVBuilder.new(encoding: encoding, encoding_options: opts) do
263
- column "おはようございます"
264
- column "title"
265
- end
266
- end
267
-
268
- context "Shift-JIS with options" do
269
- let(:encoding) { Encoding::Shift_JIS }
270
- let(:opts) { { invalid: :replace, undef: :replace, replace: "?" } }
271
-
272
- it "encodes the CSV" do
273
- receiver = []
274
- builder.build dummy_controller, receiver
275
- line = receiver.last
276
- expect(line.encoding).to eq(encoding)
277
- end
278
- end
279
-
280
- context "ASCII with options" do
281
- let(:encoding) { Encoding::ASCII }
282
- let(:opts) do
283
- { invalid: :replace, undef: :replace, replace: "__REPLACED__" }
284
- end
285
-
286
- it "encodes the CSV without errors" do
287
- receiver = []
288
- builder.build dummy_controller, receiver
289
- line = receiver.last
290
- expect(line.encoding).to eq(encoding)
291
- expect(line).to include("__REPLACED__")
292
- end
293
- end
294
- end
295
-
296
- skip '#exec_columns'
297
-
298
- skip '#build_row' do
299
- it 'renders non-strings'
300
- it 'encodes values correctly'
301
- it 'passes custom encoding options to String#encode!'
302
- end
303
-
304
- 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