commit: 09540192c96d2ed35accf0b34f3acd9d04170727
parent: 08059ddda96496e5f3e257edbbecab43404faee7
Author: Matt Jankowski <mjankowski@thoughtbot.com>
Date: Fri, 14 Apr 2017 21:09:55 -0400
Rename admin/accounts_helper to admin/filter_helper (#1816)
- Add some spec coverage for both methods
- Add explicit constant call-outs for where the params are from
Diffstat:
4 files changed, 51 insertions(+), 31 deletions(-)
diff --git a/app/helpers/admin/accounts_helper.rb b/app/helpers/admin/accounts_helper.rb
@@ -1,26 +0,0 @@
-# frozen_string_literal: true
-
-module Admin::AccountsHelper
- def filter_params(more_params)
- params.permit(:local, :remote, :by_domain, :silenced, :suspended, :recent, :resolved).merge(more_params)
- end
-
- def filter_link_to(text, more_params)
- new_url = filtered_url_for(more_params)
- link_to text, new_url, class: filter_link_class(new_url)
- end
-
- def table_link_to(icon, text, path, options = {})
- link_to safe_join([fa_icon(icon), text]), path, options.merge(class: 'table-action-link')
- end
-
- private
-
- def filter_link_class(new_url)
- filtered_url_for(params) == new_url ? 'selected' : ''
- end
-
- def filtered_url_for(params)
- url_for filter_params(params)
- end
-end
diff --git a/app/helpers/admin/filter_helper.rb b/app/helpers/admin/filter_helper.rb
@@ -0,0 +1,31 @@
+# frozen_string_literal: true
+
+module Admin::FilterHelper
+ ACCOUNT_FILTERS = %i[local remote by_domain silenced suspended recent].freeze
+ REPORT_FILTERS = %i[resolved].freeze
+
+ FILTERS = ACCOUNT_FILTERS + REPORT_FILTERS
+
+ def filter_link_to(text, more_params)
+ new_url = filtered_url_for(more_params)
+ link_to text, new_url, class: filter_link_class(new_url)
+ end
+
+ def table_link_to(icon, text, path, options = {})
+ link_to safe_join([fa_icon(icon), text]), path, options.merge(class: 'table-action-link')
+ end
+
+ private
+
+ def filter_params(more_params)
+ params.permit(FILTERS).merge(more_params)
+ end
+
+ def filter_link_class(new_url)
+ filtered_url_for(params) == new_url ? 'selected' : ''
+ end
+
+ def filtered_url_for(params)
+ url_for filter_params(params)
+ end
+end
diff --git a/spec/helpers/admin/accounts_helper_spec.rb b/spec/helpers/admin/accounts_helper_spec.rb
@@ -1,5 +0,0 @@
-require 'rails_helper'
-
-RSpec.describe Admin::AccountsHelper, type: :helper do
-
-end
diff --git a/spec/helpers/admin/filter_helper_spec.rb b/spec/helpers/admin/filter_helper_spec.rb
@@ -0,0 +1,20 @@
+require 'rails_helper'
+
+describe Admin::FilterHelper do
+ it 'Uses filter_link_to to create filter links' do
+ params = ActionController::Parameters.new(
+ { test: 'test' }
+ )
+ allow(helper).to receive(:params).and_return(params)
+ allow(helper).to receive(:url_for).and_return('/test')
+ result = helper.filter_link_to('text', { resolved: true })
+
+ expect(result).to match(/text/)
+ end
+
+ it 'Uses table_link_to to create icon links' do
+ result = helper.table_link_to 'icon', 'text', 'path'
+
+ expect(result).to match(/text/)
+ end
+end