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,253 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe "Breadcrumbs" do
4
-
5
- include ActiveAdmin::ViewHelpers
6
- include ActionView::Helpers::SanitizeHelper
7
-
8
- describe "generating a trail from paths" do
9
-
10
- def params; {}; end
11
- def link_to(name, url); {name: name, path: url}; end
12
-
13
- actions = ActiveAdmin::BaseController::ACTIVE_ADMIN_ACTIONS
14
-
15
- let(:user) { double display_name: 'Jane Doe' }
16
- let(:user_config) { double find_resource: user, resource_name: double(route_key: 'users'),
17
- defined_actions: actions }
18
- let(:post) { double display_name: 'Hello World' }
19
- let(:post_config) { double find_resource: post, resource_name: double(route_key: 'posts'),
20
- defined_actions: actions, belongs_to_config: double(target: user_config) }
21
-
22
- let :active_admin_config do
23
- post_config
24
- end
25
-
26
- let(:trail) { breadcrumb_links(path) }
27
-
28
- context "when request '/admin'" do
29
- let(:path) { "/admin" }
30
-
31
- it "should not have any items" do
32
- expect(trail.size).to eq 0
33
- end
34
- end
35
-
36
- context "when path 'admin/users'" do
37
- let(:path) { 'admin/users' }
38
-
39
- it 'should have one item' do
40
- expect(trail.size).to eq 1
41
- end
42
- it 'should have a link to /admin' do
43
- expect(trail[0][:name]).to eq 'Admin'
44
- expect(trail[0][:path]).to eq '/admin'
45
- end
46
- end
47
-
48
- context "when path '/admin/users'" do
49
- let(:path) { "/admin/users" }
50
-
51
- it "should have one item" do
52
- expect(trail.size).to eq 1
53
- end
54
- it "should have a link to /admin" do
55
- expect(trail[0][:name]).to eq "Admin"
56
- expect(trail[0][:path]).to eq "/admin"
57
- end
58
- end
59
-
60
- context "when path '/admin/users/1'" do
61
- let(:path) { "/admin/users/1" }
62
-
63
- it "should have 2 items" do
64
- expect(trail.size).to eq 2
65
- end
66
- it "should have a link to /admin" do
67
- expect(trail[0][:name]).to eq "Admin"
68
- expect(trail[0][:path]).to eq "/admin"
69
- end
70
- it "should have a link to /admin/users" do
71
- expect(trail[1][:name]).to eq "Users"
72
- expect(trail[1][:path]).to eq "/admin/users"
73
- end
74
- end
75
-
76
- context "when path '/admin/users/1/posts'" do
77
- let(:path) { "/admin/users/1/posts" }
78
-
79
- it "should have 3 items" do
80
- expect(trail.size).to eq 3
81
- end
82
- it "should have a link to /admin" do
83
- expect(trail[0][:name]).to eq "Admin"
84
- expect(trail[0][:path]).to eq "/admin"
85
- end
86
- it "should have a link to /admin/users" do
87
- expect(trail[1][:name]).to eq "Users"
88
- expect(trail[1][:path]).to eq "/admin/users"
89
- end
90
-
91
- context "when User.find(1) doesn't exist" do
92
- before { allow(user_config).to receive(:find_resource) }
93
- it "should have a link to /admin/users/1" do
94
- expect(trail[2][:name]).to eq "1"
95
- expect(trail[2][:path]).to eq "/admin/users/1"
96
- end
97
- end
98
-
99
- context "when User.find(1) does exist" do
100
- it "should have a link to /admin/users/1 using display name" do
101
- expect(trail[2][:name]).to eq "Jane Doe"
102
- expect(trail[2][:path]).to eq "/admin/users/1"
103
- end
104
- end
105
- end
106
-
107
- context "when path '/admin/users/4e24d6249ccf967313000000/posts'" do
108
- let(:path) { "/admin/users/4e24d6249ccf967313000000/posts" }
109
-
110
- it "should have 3 items" do
111
- expect(trail.size).to eq 3
112
- end
113
- it "should have a link to /admin" do
114
- expect(trail[0][:name]).to eq "Admin"
115
- expect(trail[0][:path]).to eq "/admin"
116
- end
117
- it "should have a link to /admin/users" do
118
- expect(trail[1][:name]).to eq "Users"
119
- expect(trail[1][:path]).to eq "/admin/users"
120
- end
121
-
122
- context "when User.find(4e24d6249ccf967313000000) doesn't exist" do
123
- before { allow(user_config).to receive(:find_resource) }
124
- it "should have a link to /admin/users/4e24d6249ccf967313000000" do
125
- expect(trail[2][:name]).to eq "4e24d6249ccf967313000000"
126
- expect(trail[2][:path]).to eq "/admin/users/4e24d6249ccf967313000000"
127
- end
128
- end
129
-
130
- context "when User.find(4e24d6249ccf967313000000) does exist" do
131
- before do
132
- display_name = double(display_name: 'Hello :)')
133
- allow(user_config).to receive(:find_resource).and_return(display_name)
134
- end
135
- it "should have a link to /admin/users/4e24d6249ccf967313000000 using display name" do
136
- expect(trail[2][:name]).to eq "Hello :)"
137
- expect(trail[2][:path]).to eq "/admin/users/4e24d6249ccf967313000000"
138
- end
139
- end
140
- end
141
-
142
- context "when path '/admin/users/2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4/posts'" do
143
- let(:path) { "/admin/users/2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4/posts" }
144
-
145
- it "should have 3 items" do
146
- expect(trail.size).to eq 3
147
- end
148
- it "should have a link to /admin" do
149
- expect(trail[0][:name]).to eq "Admin"
150
- expect(trail[0][:path]).to eq "/admin"
151
- end
152
- it "should have a link to /admin/users" do
153
- expect(trail[1][:name]).to eq "Users"
154
- expect(trail[1][:path]).to eq "/admin/users"
155
- end
156
-
157
- context "when User.find(2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4) doesn't exist" do
158
- before { allow(user_config).to receive(:find_resource) }
159
- it "should have a link to /admin/users/2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4" do
160
- expect(trail[2][:name]).to eq "2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4".titlecase
161
- expect(trail[2][:path]).to eq "/admin/users/2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4"
162
- end
163
- end
164
-
165
- context "when User.find(2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4) does exist" do
166
- before do
167
- display_name = double(display_name: 'Hello :)')
168
- allow(user_config).to receive(:find_resource).and_return(display_name)
169
- end
170
- it "should have a link to /admin/users/2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4 using display name" do
171
- expect(trail[2][:name]).to eq "Hello :)"
172
- expect(trail[2][:path]).to eq "/admin/users/2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4"
173
- end
174
- end
175
- end
176
-
177
- context "when path '/admin/users/1/coments/1'" do
178
- let(:path) { "/admin/users/1/posts/1" }
179
-
180
- it "should have 4 items" do
181
- expect(trail.size).to eq 4
182
- end
183
- it "should have a link to /admin" do
184
- expect(trail[0][:name]).to eq "Admin"
185
- expect(trail[0][:path]).to eq "/admin"
186
- end
187
- it "should have a link to /admin/users" do
188
- expect(trail[1][:name]).to eq "Users"
189
- expect(trail[1][:path]).to eq "/admin/users"
190
- end
191
- it "should have a link to /admin/users/1" do
192
- expect(trail[2][:name]).to eq "Jane Doe"
193
- expect(trail[2][:path]).to eq "/admin/users/1"
194
- end
195
- it "should have a link to /admin/users/1/posts" do
196
- expect(trail[3][:name]).to eq "Posts"
197
- expect(trail[3][:path]).to eq "/admin/users/1/posts"
198
- end
199
- end
200
-
201
- context "when path '/admin/users/1/coments/1/edit'" do
202
- let(:path) { "/admin/users/1/posts/1/edit" }
203
-
204
- it "should have 5 items" do
205
- expect(trail.size).to eq 5
206
- end
207
- it "should have a link to /admin" do
208
- expect(trail[0][:name]).to eq "Admin"
209
- expect(trail[0][:path]).to eq "/admin"
210
- end
211
- it "should have a link to /admin/users" do
212
- expect(trail[1][:name]).to eq "Users"
213
- expect(trail[1][:path]).to eq "/admin/users"
214
- end
215
- it "should have a link to /admin/users/1" do
216
- expect(trail[2][:name]).to eq "Jane Doe"
217
- expect(trail[2][:path]).to eq "/admin/users/1"
218
- end
219
- it "should have a link to /admin/users/1/posts" do
220
- expect(trail[3][:name]).to eq "Posts"
221
- expect(trail[3][:path]).to eq "/admin/users/1/posts"
222
- end
223
- it "should have a link to /admin/users/1/posts/1" do
224
- expect(trail[4][:name]).to eq "Hello World"
225
- expect(trail[4][:path]).to eq "/admin/users/1/posts/1"
226
- end
227
- end
228
-
229
- context "when the 'show' action is disabled" do
230
- let(:post_config) { double find_resource: post, resource_name: double(route_key: 'posts'),
231
- defined_actions: actions - [:show], # this is the change
232
- belongs_to_config: double(target: user_config) }
233
-
234
- let(:path) { "/admin/posts/1/edit" }
235
-
236
- it "should have 3 items" do
237
- expect(trail.size).to eq 3
238
- end
239
- it "should have a link to /admin" do
240
- expect(trail[0][:name]).to eq "Admin"
241
- expect(trail[0][:path]).to eq "/admin"
242
- end
243
- it "should have a link to /admin/posts" do
244
- expect(trail[1][:name]).to eq "Posts"
245
- expect(trail[1][:path]).to eq "/admin/posts"
246
- end
247
- it "should not link to the show view for the post" do
248
- expect(trail[2]).to eq "Hello World"
249
- end
250
- end
251
-
252
- end
253
- end
@@ -1,203 +0,0 @@
1
- require 'rails_helper'
2
- require 'active_admin/view_helpers/active_admin_application_helper'
3
- require 'active_admin/view_helpers/auto_link_helper'
4
- require 'active_admin/view_helpers/display_helper'
5
- require 'active_admin/view_helpers/method_or_proc_helper'
6
-
7
- RSpec.describe ActiveAdmin::ViewHelpers::DisplayHelper do
8
- include ActiveAdmin::ViewHelpers::ActiveAdminApplicationHelper
9
- include ActiveAdmin::ViewHelpers::AutoLinkHelper
10
- include ActiveAdmin::ViewHelpers::DisplayHelper
11
- include MethodOrProcHelper
12
- include ActionView::Helpers::UrlHelper
13
- include ActionView::Helpers::TranslationHelper
14
- include ActionView::Helpers::SanitizeHelper
15
-
16
- def active_admin_namespace
17
- active_admin_application.namespaces[:admin]
18
- end
19
-
20
- def authorized?(*)
21
- true
22
- end
23
-
24
- def url_options
25
- { locale: nil }
26
- end
27
-
28
- before do
29
- load_resources do
30
- ActiveAdmin.register(User)
31
- ActiveAdmin.register(Post){ belongs_to :user, optional: true }
32
- end
33
- end
34
-
35
- describe '#display_name' do
36
- ActiveAdmin::Application.new.display_name_methods.map(&:to_s).each do |m|
37
- it "should return #{m} when defined" do
38
- klass = Class.new do
39
- define_method(m) { m }
40
- end
41
- expect(display_name klass.new).to eq m
42
- end
43
-
44
- it "should sanitize the result of #{m} when defined" do
45
- klass = Class.new do
46
- define_method(m) { '<script>alert(1)</script>' }
47
- end
48
- expect(display_name klass.new).to eq 'alert(1)'
49
- end
50
- end
51
-
52
- it "should memoize the result for the class" do
53
- subject = Class.new.new
54
- expect(subject).to receive(:name).twice.and_return "My Name"
55
-
56
- expect(display_name subject).to eq "My Name"
57
-
58
- expect(ActiveAdmin.application).to_not receive(:display_name_methods)
59
- expect(display_name subject).to eq "My Name"
60
- end
61
-
62
- it "should not call a method if it's an association" do
63
- klass = Class.new
64
- subject = klass.new
65
- allow(klass).to receive(:reflect_on_all_associations).and_return [ double(name: :login) ]
66
- allow(subject).to receive :login
67
- expect(subject).to_not receive :login
68
- allow(subject).to receive(:email).and_return 'foo@bar.baz'
69
-
70
- expect(display_name subject).to eq 'foo@bar.baz'
71
- end
72
-
73
- it "should return `nil` when the passed object is `nil`" do
74
- expect(display_name nil).to eq nil
75
- end
76
-
77
- it "should return 'false' when the passed object is `false`" do
78
- expect(display_name false).to eq "false"
79
- end
80
-
81
- it "should default to `to_s`" do
82
- subject = Class.new.new
83
- expect(display_name subject).to eq sanitize(subject.to_s)
84
- end
85
-
86
- context "when no display name method is defined" do
87
- context "on a Rails model" do
88
- it "should show the model name" do
89
- class ThisModel
90
- extend ActiveModel::Naming
91
- end
92
- subject = ThisModel.new
93
- expect(display_name subject).to eq "This model"
94
- end
95
-
96
- it "should show the model name, plus the ID if in use" do
97
- subject = Tagging.create!
98
- expect(display_name subject).to eq "Tagging #1"
99
- end
100
-
101
- it "should translate the model name" do
102
- with_translation activerecord: {models: {tagging: {one: "Different"}}} do
103
- subject = Tagging.create!
104
- expect(display_name subject).to eq "Different #1"
105
- end
106
- end
107
- end
108
- end
109
- end
110
-
111
- describe '#format_attribute' do
112
- it 'calls the provided block to format the value' do
113
- value = format_attribute double(foo: 2), ->r { r.foo + 1 }
114
-
115
- expect(value).to eq '3'
116
- end
117
-
118
- it 'finds values as methods' do
119
- value = format_attribute double(name: 'Joe'), :name
120
-
121
- expect(value).to eq 'Joe'
122
- end
123
-
124
- it 'finds values from hashes' do
125
- value = format_attribute({id: 100}, :id)
126
-
127
- expect(value).to eq '100'
128
- end
129
-
130
- [1, 1.2, :a_symbol].each do |val|
131
- it "calls to_s to format the value of type #{val.class}" do
132
- value = format_attribute double(foo: val), :foo
133
-
134
- expect(value).to eq val.to_s
135
- end
136
- end
137
-
138
- it 'localizes dates' do
139
- date = Date.parse '2016/02/28'
140
-
141
- value = format_attribute double(date: date), :date
142
-
143
- expect(value).to eq 'February 28, 2016'
144
- end
145
-
146
- it 'localizes times' do
147
- time = Time.parse '2016/02/28 9:34 PM'
148
-
149
- value = format_attribute double(time: time), :time
150
-
151
- expect(value).to eq 'February 28, 2016 21:34'
152
- end
153
-
154
- it 'uses a display_name method for arbitrary objects' do
155
- object = double to_s: :wrong, display_name: :right
156
-
157
- value = format_attribute double(object: object), :object
158
-
159
- expect(value).to eq 'right'
160
- end
161
-
162
- it 'auto-links ActiveRecord records by association' do
163
- post = Post.create! author: User.new
164
-
165
- value = format_attribute post, :author
166
-
167
- expect(value).to match /<a href="\/admin\/users\/\d+"> <\/a>/
168
- end
169
-
170
- it 'auto-links ActiveRecord records & uses a display_name method' do
171
- post = Post.create! author: User.new(first_name: 'A', last_name: 'B')
172
-
173
- value = format_attribute post, :author
174
-
175
- expect(value).to match /<a href="\/admin\/users\/\d+">A B<\/a>/
176
- end
177
-
178
- pending 'auto-links Mongoid records'
179
-
180
- it 'calls status_tag for boolean values' do
181
- post = Post.new starred: true
182
-
183
- value = format_attribute post, :starred
184
-
185
- expect(value.to_s).to eq "<span class=\"status_tag yes\">Yes</span>\n"
186
- end
187
-
188
- it 'calls status_tag for boolean non-database values' do
189
- post = Post.new
190
- post.define_singleton_method(:true_method) do
191
- true
192
- end
193
- post.define_singleton_method(:false_method) do
194
- false
195
- end
196
- true_value = format_attribute post, :true_method
197
- expect(true_value.to_s).to eq "<span class=\"status_tag yes\">Yes</span>\n"
198
- false_value = format_attribute post, :false_method
199
- expect(false_value.to_s).to eq "<span class=\"status_tag no\">No</span>\n"
200
- end
201
-
202
- end
203
- end
@@ -1,39 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::ViewHelpers::DownloadFormatLinksHelper do
4
- describe "class methods" do
5
- before :all do
6
- begin
7
- # The mime type to be used in respond_to |format| style web-services in rails
8
- Mime::Type.register "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", :xlsx
9
- rescue NameError
10
- puts "Mime module not defined. Skipping registration of xlsx"
11
- end
12
- end
13
-
14
- subject do
15
- Class.new do
16
- include ActiveAdmin::ViewHelpers::DownloadFormatLinksHelper
17
- end
18
- end
19
-
20
- it "extends the class to add a formats class method that returns the default formats." do
21
- expect(subject.formats).to eq [:csv, :xml, :json]
22
- end
23
-
24
- it "does not let you alter the formats array directly" do
25
- subject.formats << :xlsx
26
- expect(subject.formats).to eq [:csv, :xml, :json]
27
- end
28
-
29
- it "allows us to add new formats" do
30
- subject.add_format :xlsx
31
- expect(subject.formats).to eq [:csv, :xml, :json, :xlsx]
32
- end
33
-
34
- it "raises an exception if you provide an unregisterd mime type extension" do
35
- expect{ subject.add_format :hoge }.to raise_error 'Please register the hoge mime type with `Mime::Type.register`'
36
- end
37
-
38
- end
39
- end
@@ -1,50 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::ViewHelpers::FormHelper, ".fields_for" do
4
- include ActiveAdmin::ViewHelpers::FormHelper
5
-
6
- it "should skip :action, :controller and :commit" do
7
- expect(fields_for_params(
8
- scope: "All", action: "index", controller: "PostController", commit: "Filter", utf8: "Yes!")).
9
- to eq [ { scope: "All" } ]
10
- end
11
-
12
- it "should skip the except" do
13
- expect(fields_for_params({scope: "All", name: "Greg"}, except: :name)).
14
- to eq [ { scope: "All" } ]
15
- end
16
-
17
- it "should allow an array for the except" do
18
- expect(fields_for_params({scope: "All", name: "Greg", age: "12"}, except: [:name, :age])).
19
- to eq [ { scope: "All" } ]
20
- end
21
-
22
- it "should work with hashes" do
23
- params = fields_for_params(filters: { name: "John", age: "12" })
24
-
25
- expect(params.size).to eq 2
26
- expect(params).to include({"filters[name]" => "John" })
27
- expect(params).to include({ "filters[age]" => "12" })
28
- end
29
-
30
- it "should work with nested hashes" do
31
- expect(fields_for_params(filters: { user: { name: "John" }})).
32
- to eq [ { "filters[user][name]" => "John" } ]
33
- end
34
-
35
- it "should work with arrays" do
36
- expect(fields_for_params(people: ["greg", "emily", "philippe"])).
37
- to eq [ { "people[]" => "greg" },
38
- { "people[]" => "emily" },
39
- { "people[]" => "philippe" } ]
40
- end
41
-
42
- it "should work with symbols" do
43
- expect(fields_for_params(filter: :id)).
44
- to eq [ { filter: "id" } ]
45
- end
46
-
47
- it "should work with booleans" do
48
- expect(fields_for_params(booleantest: false)).to eq [ { booleantest: false } ]
49
- end
50
- end
@@ -1,24 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::ViewHelpers::FlashHelper do
4
-
5
- describe '.flash_messages' do
6
- let(:view) { action_view }
7
-
8
- it "should not include 'timedout' flash messages by default" do
9
- view.request.flash[:alert] = "Alert"
10
- view.request.flash[:timedout] = true
11
- expect(view.flash_messages).to include 'alert'
12
- expect(view.flash_messages).to_not include 'timedout'
13
- end
14
-
15
- it "should not return flash messages included in flash_keys_to_except" do
16
- expect(view.active_admin_application).to receive(:flash_keys_to_except).and_return ["hideme"]
17
- view.request.flash[:alert] = "Alert"
18
- view.request.flash[:hideme] = "Do not show"
19
- expect(view.flash_messages).to include 'alert'
20
- expect(view.flash_messages).to_not include 'hideme'
21
- end
22
-
23
- end
24
- end
@@ -1,42 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::ViewHelpers::FormHelper do
4
-
5
- describe '.active_admin_form_for' do
6
- let(:view) { action_view }
7
- let(:resource) { double 'resource' }
8
- let(:default_options) { { builder: ActiveAdmin::FormBuilder } }
9
-
10
- it 'calls semantic_form_for with the ActiveAdmin form builder' do
11
- expect(view).to receive(:semantic_form_for).with(resource, builder: ActiveAdmin::FormBuilder)
12
- view.active_admin_form_for(resource)
13
- end
14
-
15
- it 'allows the form builder to be customized' do
16
- # We can't use a stub here because options gets marshalled, and a new
17
- # instance built. Any constant will work.
18
- custom_builder = Object
19
- expect(view).to receive(:semantic_form_for).with(resource, builder: custom_builder)
20
- view.active_admin_form_for(resource, builder: custom_builder)
21
- end
22
- end
23
-
24
- describe ".hidden_field_tags_for" do
25
- let(:view) { action_view }
26
-
27
- it "should render hidden field tags for params" do
28
- html = Capybara.string view.hidden_field_tags_for(ActionController::Parameters.new(scope: "All", filter: "None"))
29
- expect(html).to have_selector("input#hidden_active_admin_scope[name=scope][type=hidden][value=All]", visible: false)
30
- expect(html).to have_selector("input#hidden_active_admin_filter[name=filter][type=hidden][value=None]", visible: false)
31
- end
32
-
33
- it "should generate not default id for hidden input" do
34
- expect(view.hidden_field_tags_for(ActionController::Parameters.new(scope: "All"))[/id="([^"]+)"/, 1]).to_not eq "scope"
35
- end
36
-
37
- it "should filter out the field passed via the option :except" do
38
- html = Capybara.string view.hidden_field_tags_for(ActionController::Parameters.new(scope: "All", filter: "None"), except: :filter)
39
- expect(html).to have_selector("input#hidden_active_admin_scope[name=scope][type=hidden][value=All]", visible: false)
40
- end
41
- end
42
- end