# 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
+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)
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
--- /dev/null
+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