activeadmin 1.3.1 → 1.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 (333) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +467 -0
  3. data/.gitignore +2 -5
  4. data/.rspec +1 -0
  5. data/.rspec_parallel +2 -0
  6. data/.rubocop.yml +25 -7
  7. data/.simplecov +4 -6
  8. data/CHANGELOG.md +175 -83
  9. data/CODE_OF_CONDUCT.md +64 -12
  10. data/CONTRIBUTING.md +77 -40
  11. data/Gemfile +7 -55
  12. data/Gemfile.common +53 -0
  13. data/Gemfile.lock +431 -0
  14. data/README.md +39 -18
  15. data/Rakefile +1 -32
  16. data/app/assets/stylesheets/active_admin/_forms.scss +1 -1
  17. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  18. data/app/views/active_admin/devise/confirmations/new.html.erb +1 -1
  19. data/app/views/active_admin/devise/passwords/edit.html.erb +1 -1
  20. data/app/views/active_admin/devise/passwords/new.html.erb +1 -1
  21. data/app/views/active_admin/devise/registrations/new.html.erb +1 -1
  22. data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
  23. data/app/views/active_admin/devise/unlocks/new.html.erb +1 -1
  24. data/app/views/layouts/active_admin_logged_out.html.erb +1 -1
  25. data/bin/install_chromedriver.sh +17 -0
  26. data/config/locales/de.yml +10 -0
  27. data/config/locales/en.yml +19 -1
  28. data/config/locales/es.yml +20 -1
  29. data/config/locales/fi.yml +1 -1
  30. data/config/locales/it.yml +4 -0
  31. data/config/locales/nb.yml +15 -5
  32. data/config/locales/nl.yml +11 -0
  33. data/config/locales/pl.yml +71 -3
  34. data/config/locales/ru.yml +2 -0
  35. data/config/locales/tr.yml +9 -0
  36. data/config/locales/zh-CN.yml +33 -5
  37. data/config/mdl_style.rb +2 -0
  38. data/cucumber.yml +7 -3
  39. data/docs/.gitignore +1 -0
  40. data/docs/1-general-configuration.md +16 -1
  41. data/docs/10-custom-pages.md +14 -0
  42. data/docs/12-arbre-components.md +28 -1
  43. data/docs/13-authorization-adapter.md +36 -17
  44. data/docs/2-resource-customization.md +8 -3
  45. data/docs/3-index-pages.md +17 -0
  46. data/docs/3-index-pages/custom-index.md +1 -1
  47. data/docs/3-index-pages/index-as-blog.md +1 -1
  48. data/docs/3-index-pages/index-as-table.md +5 -5
  49. data/docs/5-forms.md +16 -2
  50. data/docs/8-custom-actions.md +11 -0
  51. data/docs/Gemfile +2 -0
  52. data/docs/Gemfile.lock +249 -0
  53. data/docs/_config.yml +1 -1
  54. data/docs/_includes/toc.html +1 -1
  55. data/docs/_includes/top-menu.html +9 -1
  56. data/docs/documentation.md +1 -1
  57. data/docs/images/tidelift.svg +14 -0
  58. data/docs/stylesheets/main.css +26 -2
  59. data/gemfiles/rails_42.gemfile +2 -2
  60. data/gemfiles/rails_42.gemfile.lock +410 -0
  61. data/gemfiles/rails_50.gemfile +2 -2
  62. data/gemfiles/rails_50.gemfile.lock +424 -0
  63. data/gemfiles/rails_51.gemfile +2 -2
  64. data/gemfiles/rails_51.gemfile.lock +423 -0
  65. data/lib/active_admin/abstract_view_factory.rb +13 -51
  66. data/lib/active_admin/application.rb +42 -142
  67. data/lib/active_admin/application_settings.rb +39 -0
  68. data/lib/active_admin/base_controller/authorization.rb +1 -2
  69. data/lib/active_admin/batch_actions/controller.rb +1 -1
  70. data/lib/active_admin/dependency.rb +8 -0
  71. data/lib/active_admin/deprecation.rb +0 -25
  72. data/lib/active_admin/dynamic_setting.rb +38 -0
  73. data/lib/active_admin/dynamic_settings_node.rb +28 -0
  74. data/lib/active_admin/engine.rb +5 -0
  75. data/lib/active_admin/filters/active_filter.rb +1 -1
  76. data/lib/active_admin/filters/resource_extension.rb +1 -1
  77. data/lib/active_admin/form_builder.rb +95 -60
  78. data/lib/active_admin/inputs/datepicker_input.rb +7 -0
  79. data/lib/active_admin/menu.rb +2 -8
  80. data/lib/active_admin/menu_item.rb +3 -31
  81. data/lib/active_admin/namespace.rb +18 -6
  82. data/lib/active_admin/namespace_settings.rb +107 -0
  83. data/lib/active_admin/orm/active_record/comments.rb +11 -0
  84. data/lib/active_admin/orm/active_record/comments/comment.rb +1 -1
  85. data/lib/active_admin/resource/action_items.rb +6 -1
  86. data/lib/active_admin/resource_controller/decorators.rb +3 -3
  87. data/lib/active_admin/resource_controller/scoping.rb +1 -1
  88. data/lib/active_admin/router.rb +89 -84
  89. data/lib/active_admin/scope.rb +5 -1
  90. data/lib/active_admin/settings_node.rb +19 -0
  91. data/lib/active_admin/version.rb +1 -1
  92. data/lib/active_admin/views/components/active_admin_form.rb +2 -3
  93. data/lib/active_admin/views/components/menu.rb +32 -0
  94. data/lib/active_admin/views/components/menu_item.rb +58 -0
  95. data/lib/active_admin/views/components/scopes.rb +11 -4
  96. data/lib/active_admin/views/components/sidebar.rb +13 -0
  97. data/lib/active_admin/views/components/site_title.rb +5 -6
  98. data/lib/active_admin/views/components/table_for.rb +1 -10
  99. data/lib/active_admin/views/components/tabs.rb +4 -1
  100. data/lib/active_admin/views/footer.rb +2 -6
  101. data/lib/active_admin/views/header.rb +3 -15
  102. data/lib/active_admin/views/index_as_blog.rb +1 -1
  103. data/lib/active_admin/views/index_as_grid.rb +25 -25
  104. data/lib/active_admin/views/index_as_table.rb +6 -6
  105. data/lib/active_admin/views/pages/base.rb +27 -53
  106. data/lib/active_admin/views/tabbed_navigation.rb +4 -59
  107. data/lib/bug_report_templates/active_admin_master.rb +2 -3
  108. data/tasks/application_generator.rb +48 -0
  109. data/tasks/gemfiles.rake +8 -0
  110. data/tasks/lint.rake +96 -7
  111. data/tasks/local.rake +10 -8
  112. data/tasks/test.rake +30 -16
  113. metadata +26 -440
  114. data/.travis.yml +0 -51
  115. data/features/action_item.feature +0 -73
  116. data/features/authorization.feature +0 -64
  117. data/features/authorization_cancan.feature +0 -52
  118. data/features/authorization_pundit.feature +0 -37
  119. data/features/belongs_to.feature +0 -124
  120. data/features/breadcrumb.feature +0 -75
  121. data/features/comments/commenting.feature +0 -178
  122. data/features/comments/viewing_index.feature +0 -19
  123. data/features/create_another.feature +0 -55
  124. data/features/dashboard.feature +0 -16
  125. data/features/decorators.feature +0 -43
  126. data/features/development_reloading.feature +0 -28
  127. data/features/edit_page.feature +0 -116
  128. data/features/favicon.feature +0 -20
  129. data/features/first_boot.feature +0 -16
  130. data/features/footer.feature +0 -28
  131. data/features/global_navigation.feature +0 -29
  132. data/features/i18n.feature +0 -55
  133. data/features/index/batch_actions.feature +0 -218
  134. data/features/index/filters.feature +0 -250
  135. data/features/index/format_as_csv.feature +0 -220
  136. data/features/index/formats.feature +0 -88
  137. data/features/index/index_as_block.feature +0 -15
  138. data/features/index/index_as_blog.feature +0 -69
  139. data/features/index/index_as_grid.feature +0 -45
  140. data/features/index/index_as_table.feature +0 -291
  141. data/features/index/index_blank_slate.feature +0 -83
  142. data/features/index/index_parameters.feature +0 -75
  143. data/features/index/index_scope_to.feature +0 -56
  144. data/features/index/index_scopes.feature +0 -285
  145. data/features/index/page_title.feature +0 -41
  146. data/features/index/pagination.feature +0 -63
  147. data/features/index/switch_index_view.feature +0 -73
  148. data/features/menu.feature +0 -72
  149. data/features/meta_tags.feature +0 -21
  150. data/features/new_page.feature +0 -136
  151. data/features/registering_assets.feature +0 -38
  152. data/features/registering_pages.feature +0 -237
  153. data/features/registering_resources.feature +0 -33
  154. data/features/renamed_resource.feature +0 -30
  155. data/features/root_to.feature +0 -17
  156. data/features/show/attributes_table_title.feature +0 -54
  157. data/features/show/columns.feature +0 -40
  158. data/features/show/default_content.feature +0 -44
  159. data/features/show/page_title.feature +0 -58
  160. data/features/show/tabs.feature +0 -33
  161. data/features/sidebar_sections.feature +0 -210
  162. data/features/site_title.feature +0 -47
  163. data/features/specifying_actions.feature +0 -118
  164. data/features/step_definitions/action_item_steps.rb +0 -7
  165. data/features/step_definitions/action_link_steps.rb +0 -19
  166. data/features/step_definitions/additional_web_steps.rb +0 -81
  167. data/features/step_definitions/asset_steps.rb +0 -15
  168. data/features/step_definitions/attribute_steps.rb +0 -18
  169. data/features/step_definitions/attributes_table_title_steps.rb +0 -11
  170. data/features/step_definitions/batch_action_steps.rb +0 -81
  171. data/features/step_definitions/blog_steps.rb +0 -3
  172. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  173. data/features/step_definitions/column_steps.rb +0 -8
  174. data/features/step_definitions/comment_steps.rb +0 -32
  175. data/features/step_definitions/configuration_steps.rb +0 -100
  176. data/features/step_definitions/dashboard_steps.rb +0 -15
  177. data/features/step_definitions/factory_steps.rb +0 -35
  178. data/features/step_definitions/filter_steps.rb +0 -47
  179. data/features/step_definitions/flash_steps.rb +0 -11
  180. data/features/step_definitions/footer_steps.rb +0 -11
  181. data/features/step_definitions/format_steps.rb +0 -56
  182. data/features/step_definitions/i18n_steps.rb +0 -11
  183. data/features/step_definitions/index_scope_steps.rb +0 -29
  184. data/features/step_definitions/index_views_steps.rb +0 -3
  185. data/features/step_definitions/layout_steps.rb +0 -3
  186. data/features/step_definitions/member_link_steps.rb +0 -7
  187. data/features/step_definitions/menu_steps.rb +0 -11
  188. data/features/step_definitions/meta_tag_steps.rb +0 -3
  189. data/features/step_definitions/pagination_steps.rb +0 -15
  190. data/features/step_definitions/sidebar_steps.rb +0 -11
  191. data/features/step_definitions/site_title_steps.rb +0 -17
  192. data/features/step_definitions/tab_steps.rb +0 -8
  193. data/features/step_definitions/table_steps.rb +0 -116
  194. data/features/step_definitions/user_steps.rb +0 -52
  195. data/features/step_definitions/web_steps.rb +0 -86
  196. data/features/sti_resource.feature +0 -65
  197. data/features/strong_parameters.feature +0 -69
  198. data/features/support/env.rb +0 -122
  199. data/features/support/paths.rb +0 -73
  200. data/features/support/regular_env.rb +0 -7
  201. data/features/support/reload_env.rb +0 -7
  202. data/features/support/selectors.rb +0 -45
  203. data/features/users/logging_in.feature +0 -36
  204. data/features/users/logging_out.feature +0 -13
  205. data/features/users/resetting_password.feature +0 -34
  206. data/gemfiles/rails_52.gemfile +0 -11
  207. data/lib/active_admin/helpers/settings.rb +0 -114
  208. data/spec/bug_report_templates_spec.rb +0 -26
  209. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  210. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  211. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  212. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  213. data/spec/javascripts/fixtures/flashes.html +0 -2
  214. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  215. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  216. data/spec/javascripts/support/jasmine.yml +0 -74
  217. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  218. data/spec/rails_helper.rb +0 -59
  219. data/spec/requests/default_namespace_spec.rb +0 -81
  220. data/spec/requests/memory_spec.rb +0 -25
  221. data/spec/requests/stylesheets_spec.rb +0 -18
  222. data/spec/spec_helper.rb +0 -1
  223. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  224. data/spec/support/active_admin_request_helpers.rb +0 -39
  225. data/spec/support/rails_template.rb +0 -153
  226. data/spec/support/rails_template_with_data.rb +0 -327
  227. data/spec/support/templates/admin/stores.rb +0 -7
  228. data/spec/support/templates/en.yml +0 -8
  229. data/spec/support/templates/manifest.js +0 -3
  230. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  231. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  232. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  233. data/spec/support/templates/policies/application_policy.rb +0 -44
  234. data/spec/support/templates/policies/category_policy.rb +0 -7
  235. data/spec/support/templates/policies/post_policy.rb +0 -15
  236. data/spec/support/templates/policies/store_policy.rb +0 -11
  237. data/spec/support/templates/policies/user_policy.rb +0 -11
  238. data/spec/support/templates/post_decorator.rb +0 -24
  239. data/spec/unit/abstract_view_factory_spec.rb +0 -78
  240. data/spec/unit/action_builder_spec.rb +0 -158
  241. data/spec/unit/active_admin_spec.rb +0 -11
  242. data/spec/unit/application_spec.rb +0 -184
  243. data/spec/unit/asset_registration_spec.rb +0 -81
  244. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  245. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  246. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  247. data/spec/unit/auto_link_spec.rb +0 -93
  248. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  249. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  250. data/spec/unit/belongs_to_spec.rb +0 -76
  251. data/spec/unit/cancan_adapter_spec.rb +0 -43
  252. data/spec/unit/comments_spec.rb +0 -176
  253. data/spec/unit/component_spec.rb +0 -18
  254. data/spec/unit/config_shared_examples.rb +0 -59
  255. data/spec/unit/controller_filters_spec.rb +0 -41
  256. data/spec/unit/csv_builder_spec.rb +0 -313
  257. data/spec/unit/dependency_spec.rb +0 -135
  258. data/spec/unit/devise_spec.rb +0 -110
  259. data/spec/unit/dsl_spec.rb +0 -120
  260. data/spec/unit/filters/active_filter_spec.rb +0 -189
  261. data/spec/unit/filters/active_spec.rb +0 -24
  262. data/spec/unit/filters/filter_form_builder_spec.rb +0 -524
  263. data/spec/unit/filters/resource_spec.rb +0 -128
  264. data/spec/unit/form_builder_spec.rb +0 -990
  265. data/spec/unit/generators/install_spec.rb +0 -31
  266. data/spec/unit/helpers/collection_spec.rb +0 -68
  267. data/spec/unit/helpers/output_safety_helper_spec.rb +0 -79
  268. data/spec/unit/helpers/scope_chain_spec.rb +0 -35
  269. data/spec/unit/helpers/settings_spec.rb +0 -30
  270. data/spec/unit/i18n_spec.rb +0 -29
  271. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  272. data/spec/unit/menu_collection_spec.rb +0 -62
  273. data/spec/unit/menu_item_spec.rb +0 -141
  274. data/spec/unit/menu_spec.rb +0 -71
  275. data/spec/unit/namespace/authorization_spec.rb +0 -27
  276. data/spec/unit/namespace/register_page_spec.rb +0 -99
  277. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  278. data/spec/unit/namespace_spec.rb +0 -124
  279. data/spec/unit/order_clause_spec.rb +0 -81
  280. data/spec/unit/page_controller_spec.rb +0 -5
  281. data/spec/unit/page_spec.rb +0 -128
  282. data/spec/unit/pretty_format_spec.rb +0 -82
  283. data/spec/unit/pundit_adapter_spec.rb +0 -98
  284. data/spec/unit/resource/action_items_spec.rb +0 -69
  285. data/spec/unit/resource/attributes_spec.rb +0 -49
  286. data/spec/unit/resource/includes_spec.rb +0 -21
  287. data/spec/unit/resource/menu_spec.rb +0 -18
  288. data/spec/unit/resource/naming_spec.rb +0 -122
  289. data/spec/unit/resource/ordering_spec.rb +0 -35
  290. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  291. data/spec/unit/resource/pagination_spec.rb +0 -38
  292. data/spec/unit/resource/routes_spec.rb +0 -125
  293. data/spec/unit/resource/scopes_spec.rb +0 -50
  294. data/spec/unit/resource/sidebars_spec.rb +0 -43
  295. data/spec/unit/resource_collection_spec.rb +0 -175
  296. data/spec/unit/resource_controller/data_access_spec.rb +0 -234
  297. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  298. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  299. data/spec/unit/resource_controller_spec.rb +0 -273
  300. data/spec/unit/resource_registration_spec.rb +0 -61
  301. data/spec/unit/resource_spec.rb +0 -320
  302. data/spec/unit/routing_spec.rb +0 -211
  303. data/spec/unit/scope_spec.rb +0 -209
  304. data/spec/unit/settings_spec.rb +0 -117
  305. data/spec/unit/view_factory_spec.rb +0 -19
  306. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -253
  307. data/spec/unit/view_helpers/display_helper_spec.rb +0 -203
  308. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  309. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  310. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
  311. data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
  312. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
  313. data/spec/unit/views/components/attributes_table_spec.rb +0 -271
  314. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  315. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  316. data/spec/unit/views/components/columns_spec.rb +0 -187
  317. data/spec/unit/views/components/index_list_spec.rb +0 -49
  318. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  319. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  320. data/spec/unit/views/components/panel_spec.rb +0 -58
  321. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  322. data/spec/unit/views/components/site_title_spec.rb +0 -76
  323. data/spec/unit/views/components/status_tag_spec.rb +0 -265
  324. data/spec/unit/views/components/table_for_spec.rb +0 -436
  325. data/spec/unit/views/components/tabs_spec.rb +0 -67
  326. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  327. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  328. data/spec/unit/views/pages/form_spec.rb +0 -54
  329. data/spec/unit/views/pages/index_spec.rb +0 -60
  330. data/spec/unit/views/pages/layout_spec.rb +0 -59
  331. data/spec/unit/views/pages/show_spec.rb +0 -32
  332. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  333. data/tasks/parallel_tests.rake +0 -66
@@ -1,71 +0,0 @@
1
- require 'rails_helper'
2
- require 'active_admin/menu'
3
- require 'active_admin/menu_item'
4
-
5
- include ActiveAdmin
6
-
7
- RSpec.describe ActiveAdmin::Menu do
8
-
9
- context "with no items" do
10
- it "should have an empty item collection" do
11
- menu = Menu.new
12
- expect(menu.items).to be_empty
13
- end
14
-
15
- it "should accept new items" do
16
- menu = Menu.new
17
- menu.add label: "Dashboard"
18
- expect(menu.items.first.label).to eq "Dashboard"
19
- end
20
- end
21
-
22
- context "with many items" do
23
- let(:menu) do
24
- Menu.new do |m|
25
- m.add label: "Dashboard"
26
- m.add label: "Blog"
27
- end
28
- end
29
-
30
- it "should give access to the menu item as an array" do
31
- expect(menu['Dashboard'].label).to eq 'Dashboard'
32
- end
33
- end
34
-
35
- describe "adding items with children" do
36
- it "should add an empty item if the parent does not exist" do
37
- menu = Menu.new
38
- menu.add parent: "Admin", label: "Users"
39
-
40
- expect(menu["Admin"]["Users"]).to be_an_instance_of(ActiveAdmin::MenuItem)
41
- end
42
-
43
- it "should add a child to a parent if it exists" do
44
- menu = Menu.new
45
- menu.add parent: "Admin", label: "Users"
46
- menu.add parent: "Admin", label: "Projects"
47
-
48
- expect(menu["Admin"]["Projects"]).to be_an_instance_of(ActiveAdmin::MenuItem)
49
- end
50
-
51
- it "should assign children regardless of resource file load order" do
52
- menu = Menu.new
53
- menu.add parent: "Users", label: "Posts"
54
- menu.add label: "Users", url: "/some/url"
55
-
56
- expect(menu["Users"].url).to eq "/some/url"
57
- expect(menu["Users"]["Posts"]).to be_a ActiveAdmin::MenuItem
58
- end
59
- end
60
-
61
- describe "sorting items" do
62
- it "should sort children by the result of their label proc" do
63
- menu = Menu.new
64
- menu.add label: proc{ "G" }, id: "not related 1"
65
- menu.add label: proc{ "B" }, id: "not related 2"
66
- menu.add label: proc{ "A" }, id: "not related 3"
67
-
68
- expect(menu.items.map(&:label)).to eq %w[A B G]
69
- end
70
- end
71
- end
@@ -1,27 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::Resource, "authorization" do
4
-
5
- let(:app){ ActiveAdmin::Application.new }
6
- let(:namespace){ ActiveAdmin::Namespace.new(app, :admin) }
7
- let(:auth){ double }
8
-
9
- describe "authorization_adapter" do
10
-
11
- it "should return AuthorizationAdapter by default" do
12
- expect(app.authorization_adapter).to eq ActiveAdmin::AuthorizationAdapter
13
- expect(namespace.authorization_adapter).to eq ActiveAdmin::AuthorizationAdapter
14
- end
15
-
16
- it "should be settable on the namespace" do
17
- namespace.authorization_adapter = auth
18
- expect(namespace.authorization_adapter).to eq auth
19
- end
20
-
21
- it "should be settable on the application" do
22
- app.authorization_adapter = auth
23
- expect(app.authorization_adapter).to eq auth
24
- end
25
-
26
- end
27
- end
@@ -1,99 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::Namespace, "registering a page" do
4
- let(:application){ ActiveAdmin::Application.new }
5
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
6
- let(:menu){ namespace.fetch_menu(:default) }
7
-
8
- context "with no configuration" do
9
- before do
10
- namespace.register_page "Status"
11
- end
12
-
13
- it "should store the namespaced registered configuration" do
14
- expect(namespace.resources.keys).to include('Status')
15
- end
16
-
17
- it "should create a new controller in the default namespace" do
18
- expect(defined?(Admin::StatusController)).to eq 'constant'
19
- end
20
-
21
- it "should create a menu item" do
22
- expect(menu["Status"]).to be_an_instance_of(ActiveAdmin::MenuItem)
23
- end
24
- end
25
-
26
- context "with a block configuration" do
27
- it "should be evaluated in the dsl" do
28
- expect{ |block|
29
- namespace.register_page "Status", &block
30
- }.to yield_control
31
- end
32
- end
33
-
34
- describe "adding to the menu" do
35
- describe "adding as a top level item" do
36
- before do
37
- namespace.register_page "Status"
38
- end
39
-
40
- it "should add a new menu item" do
41
- expect(menu['Status']).to_not eq nil
42
- end
43
- end
44
-
45
- describe "adding as a child" do
46
- before do
47
- namespace.register_page "Status" do
48
- menu parent: 'Extra'
49
- end
50
- end
51
-
52
- it "should generate the parent menu item" do
53
- expect(menu['Extra']).to_not eq nil
54
- end
55
-
56
- it "should generate its own child item" do
57
- expect(menu['Extra']['Status']).to_not eq nil
58
- end
59
- end
60
-
61
- describe "disabling the menu" do
62
- before do
63
- namespace.register_page "Status" do
64
- menu false
65
- end
66
- end
67
-
68
- it "should not create a menu item" do
69
- expect(menu["Status"]).to eq nil
70
- end
71
- end # describe "disabling the menu"
72
- end # describe "adding to the menu"
73
-
74
- describe "adding as a belongs to" do
75
- context "when not optional" do
76
- before do
77
- namespace.register_page "Reports" do
78
- belongs_to :author
79
- end
80
- end
81
-
82
- it "should be excluded from the menu" do
83
- expect(menu["Reports"]).to be_nil
84
- end
85
- end
86
-
87
- context "when optional" do
88
- before do
89
- namespace.register_page "Reports" do
90
- belongs_to :author, optional: true
91
- end
92
- end
93
-
94
- it "should be in the menu" do
95
- expect(menu["Reports"]).to_not be_nil
96
- end
97
- end
98
- end # describe "adding as a belongs to"
99
- end
@@ -1,162 +0,0 @@
1
- require 'rails_helper'
2
-
3
- # TODO: refactor this file so it doesn't depend on the Admin namespace in such a broken way.
4
- # Specifically, the dashboard is already defined.
5
-
6
- RSpec.describe ActiveAdmin::Namespace, "registering a resource" do
7
- let(:application){ ActiveAdmin::Application.new }
8
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
9
- let(:menu){ namespace.fetch_menu(:default) }
10
-
11
- after { namespace.unload! }
12
-
13
- context "with no configuration" do
14
- before do
15
- namespace.register Category
16
- end
17
-
18
- it "should store the namespaced registered configuration" do
19
- expect(namespace.resources.keys).to include('Category')
20
- end
21
-
22
- it "should create a new controller in the default namespace" do
23
- expect(defined?(Admin::CategoriesController)).to eq 'constant'
24
- end
25
-
26
- skip "should not create the dashboard controller" do
27
- defined?(Admin::DashboardController).to_not eq 'constant'
28
- end
29
-
30
- it "should create a menu item" do
31
- expect(menu["Categories"]).to be_a ActiveAdmin::MenuItem
32
- expect(menu["Categories"].instance_variable_get(:@url)).to be_a Proc
33
- end
34
- end
35
-
36
- context "with a block configuration" do
37
- it "should be evaluated in the dsl" do
38
- expect{ |block|
39
- namespace.register Category, &block
40
- }.to yield_control
41
- end
42
- end
43
-
44
- context "with a resource that's namespaced" do
45
- before do
46
- module ::Mock; class Resource; def self.has_many(arg1, arg2); end; end; end
47
- namespace.register Mock::Resource
48
- end
49
-
50
- it "should store the namespaced registered configuration" do
51
- expect(namespace.resources.keys).to include('Mock::Resource')
52
- end
53
- it "should create a new controller in the default namespace" do
54
- expect(defined?(Admin::MockResourcesController)).to eq 'constant'
55
- end
56
- it "should create a menu item" do
57
- expect(menu["Mock Resources"]).to be_an_instance_of(ActiveAdmin::MenuItem)
58
- end
59
-
60
- it "should use the resource as the model in the controller" do
61
- expect(Admin::MockResourcesController.resource_class).to eq Mock::Resource
62
- end
63
- end # context "with a resource that's namespaced"
64
-
65
- describe "finding resource instances" do
66
- it "should return the resource when its been registered" do
67
- post = namespace.register Post
68
- expect(namespace.resource_for(Post)).to eq post
69
- end
70
-
71
- it 'should return nil when the resource has not been registered' do
72
- expect(namespace.resource_for(Post)).to eq nil
73
- end
74
-
75
- it "should return the parent when the parent class has been registered and the child has not" do
76
- user = namespace.register User
77
- expect(namespace.resource_for(Publisher)).to eq user
78
- end
79
-
80
- it "should return the resource if it and it's parent were registered" do
81
- user = namespace.register User
82
- publisher = namespace.register Publisher
83
- expect(namespace.resource_for(Publisher)).to eq publisher
84
- end
85
- end # describe "finding resource instances"
86
-
87
- describe "adding to the menu" do
88
- describe "adding as a top level item" do
89
- before do
90
- namespace.register Category
91
- end
92
- it "should add a new menu item" do
93
- expect(menu['Categories']).to_not eq nil
94
- end
95
- end # describe "adding as a top level item"
96
-
97
- describe "adding as a child" do
98
- before do
99
- namespace.register Category do
100
- menu parent: 'Blog'
101
- end
102
- end
103
- it "should generate the parent menu item" do
104
- expect(menu['Blog']).to_not eq nil
105
- end
106
- it "should generate its own child item" do
107
- expect(menu['Blog']['Categories']).to_not eq nil
108
- end
109
- end # describe "adding as a child"
110
-
111
- describe "disabling the menu" do
112
- before do
113
- namespace.register Category do
114
- menu false
115
- end
116
- end
117
- it "should not create a menu item" do
118
- expect(menu["Categories"]).to eq nil
119
- end
120
- end # describe "disabling the menu"
121
-
122
- describe "adding as a belongs to" do
123
- context "when not optional" do
124
- before do
125
- namespace.register Post do
126
- belongs_to :author
127
- end
128
- end
129
- it "should not show up in the menu" do
130
- expect(menu["Posts"]).to eq nil
131
- end
132
- end
133
- context "when optional" do
134
- before do
135
- namespace.register Post do
136
- belongs_to :author, optional: true
137
- end
138
- end
139
- it "should show up in the menu" do
140
- expect(menu["Posts"]).to_not eq nil
141
- end
142
- end
143
- end
144
- end # describe "adding to the menu"
145
-
146
- describe "dashboard controller name" do
147
- context "when namespaced" do
148
- it "should be namespaced" do
149
- namespace = ActiveAdmin::Namespace.new(application, :one)
150
- namespace.register Category
151
- expect(defined?(One::CategoriesController)).to eq 'constant'
152
- end
153
- end
154
- context "when not namespaced" do
155
- it "should not be namespaced" do
156
- namespace = ActiveAdmin::Namespace.new(application, :two)
157
- namespace.register Category
158
- expect(defined?(Two::CategoriesController)).to eq 'constant'
159
- end
160
- end
161
- end # describe "dashboard controller name"
162
- end # describe "registering a resource"
@@ -1,124 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::Namespace do
4
-
5
- let(:application){ ActiveAdmin::Application.new }
6
-
7
- context "when new" do
8
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
9
-
10
- it "should have an application instance" do
11
- expect(namespace.application).to eq application
12
- end
13
-
14
- it "should have a name" do
15
- expect(namespace.name).to eq :admin
16
- end
17
-
18
- it "should have no resources" do
19
- expect(namespace.resources).to be_empty
20
- end
21
-
22
- it "should not have any menu item" do
23
- expect(namespace.fetch_menu(:default).children).to be_empty
24
- end
25
- end # context "when new"
26
-
27
- describe "#unload!" do
28
- context "when controller is only defined without a namespace" do
29
- before do
30
- # To ensure Admin::PostsController is defined
31
- ActiveAdmin.register Post
32
-
33
- # To ensure ::PostsController is defined
34
- ActiveAdmin.register Post, namespace: false
35
-
36
- # To prevent unload! from unregistering ::PostsController
37
- ActiveAdmin.application.namespaces.instance_variable_get(:@namespaces).delete(:root)
38
-
39
- # To force Admin::PostsController to not be there
40
- Admin.send(:remove_const, 'PostsController')
41
- end
42
-
43
- it "should not crash" do
44
- expect { ActiveAdmin.unload! }.not_to raise_error
45
- end
46
- end
47
- end
48
-
49
- describe "settings" do
50
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
51
-
52
- it "should inherit the site title from the application" do
53
- ActiveAdmin::Namespace.setting :site_title, "Not the Same"
54
- expect(namespace.site_title).to eq application.site_title
55
- end
56
-
57
- it "should be able to override the site title" do
58
- expect(namespace.site_title).to eq application.site_title
59
- namespace.site_title = "My Site Title"
60
- expect(namespace.site_title).to_not eq application.site_title
61
- end
62
- end
63
-
64
- describe "#fetch_menu" do
65
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
66
-
67
- it "returns the menu" do
68
- expect(namespace.fetch_menu(:default)).to be_an_instance_of(ActiveAdmin::Menu)
69
- end
70
-
71
- it "should have utility nav menu" do
72
- expect(namespace.fetch_menu(:utility_navigation)).to be_an_instance_of(ActiveAdmin::Menu)
73
- end
74
-
75
- it "should raise an exception if the menu doesn't exist" do
76
- expect {
77
- namespace.fetch_menu(:not_a_menu_that_exists)
78
- }.to raise_error(KeyError)
79
- end
80
- end
81
-
82
- describe "#build_menu" do
83
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
84
-
85
- it "should set the block as a menu build callback" do
86
- namespace.build_menu do |menu|
87
- menu.add label: "menu item"
88
- end
89
-
90
- expect(namespace.fetch_menu(:default)["menu item"]).to_not eq nil
91
- end
92
-
93
- it "should set a block on a custom menu" do
94
- namespace.build_menu :test do |menu|
95
- menu.add label: "menu item"
96
- end
97
-
98
- expect(namespace.fetch_menu(:test)["menu item"]).to_not eq nil
99
- end
100
- end
101
-
102
- describe "utility navigation" do
103
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
104
- let(:menu) do
105
- namespace.build_menu :utility_navigation do |menu|
106
- menu.add label: "ActiveAdmin.info", url: "http://www.activeadmin.info", html_options: { target: :blank }
107
- namespace.add_logout_button_to_menu menu, 1, class: "matt"
108
- end
109
- namespace.fetch_menu(:utility_navigation)
110
- end
111
-
112
- it "should have a logout button to the far left" do
113
- expect(menu["Logout"]).to_not eq nil
114
- expect(menu["Logout"].priority).to eq 1
115
- end
116
-
117
- it "should have a static link with a target of :blank" do
118
- expect(menu["ActiveAdmin.info"]).to_not eq nil
119
- expect(menu["ActiveAdmin.info"].html_options).to include(target: :blank)
120
- end
121
-
122
- end
123
-
124
- end