diff --git a/app/controllers/icla_signatures_controller.rb b/app/controllers/icla_signatures_controller.rb index 6ca810337..433aa4c71 100644 --- a/app/controllers/icla_signatures_controller.rb +++ b/app/controllers/icla_signatures_controller.rb @@ -9,7 +9,13 @@ class IclaSignaturesController < ApplicationController # Displays a list of all users who have a signed ICLA. # def index - @icla_signatures = IclaSignature.by_user.page(params[:page]).per(50) + @icla_signatures = IclaSignature.by_user + + if params[:contributors_q] + @icla_signatures = @icla_signatures.search(params[:contributors_q]) + end + + @icla_signatures = @icla_signatures.page(params[:page]).per(50) end # diff --git a/spec/controllers/icla_signatures_controller_spec.rb b/spec/controllers/icla_signatures_controller_spec.rb index 2ce2ca62a..6a8ddad36 100644 --- a/spec/controllers/icla_signatures_controller_spec.rb +++ b/spec/controllers/icla_signatures_controller_spec.rb @@ -12,6 +12,17 @@ it 'assigns @icla_signatures' do expect(assigns(:icla_signatures)).to include(icla_signature) end + + context 'when searching for an icla signature' do + let!(:jimmy_icla) { create(:icla_signature, first_name: 'Jimmy', last_name: 'John', email: 'someotheremail@chef.io') } + let!(:billy_icla) { create(:icla_signature, first_name: 'Billy', last_name: 'Bob', email: 'thisdude@chef.io') } + + it 'returns icla signatures that match the search' do + get :index, contributors_q: 'Jimmy' + expect(assigns[:icla_signatures]).to include(jimmy_icla) + expect(assigns[:icla_signatures]).to_not include(billy_icla) + end + end end describe 'GET #agreement' do