diff --git a/app/app/services/pinwheel_service.rb b/app/app/services/pinwheel_service.rb
index a996fb5f..dfe0e8f6 100644
--- a/app/app/services/pinwheel_service.rb
+++ b/app/app/services/pinwheel_service.rb
@@ -56,13 +56,25 @@ def fetch_paystubs(account_id:)
end
def create_link_token(end_user_id:, response_type:, id:)
- @http.post(build_url(USER_TOKENS_ENDPOINT), {
+ params = {
org_name: "Verify.gov",
required_jobs: [ "paystubs" ],
end_user_id: end_user_id,
- skip_intro_screen: true,
- "#{response_type}_id": id
- }.to_json).body
+ skip_intro_screen: true
+ }
+
+ case response_type.presence
+ when "employer"
+ params["employer_id"] = id
+ when "platform"
+ params["platform_id"] = id
+ when nil
+ # do nothing
+ else
+ raise "Invalid `response_type`: #{response_type}"
+ end
+
+ @http.post(build_url(USER_TOKENS_ENDPOINT), params.to_json).body
end
def fetch_webhook_subscriptions
diff --git a/app/app/views/cbv_flows/_employer.html.erb b/app/app/views/cbv_flows/_employer.html.erb
index e9bcf4b2..3f58e428 100644
--- a/app/app/views/cbv_flows/_employer.html.erb
+++ b/app/app/views/cbv_flows/_employer.html.erb
@@ -36,4 +36,15 @@
<% end %>
+
+
Employer not listed?
+
<% end %>
diff --git a/app/config/locales/en.yml b/app/config/locales/en.yml
index 0c1ef162..85bda9d0 100644
--- a/app/config/locales/en.yml
+++ b/app/config/locales/en.yml
@@ -28,6 +28,7 @@ en:
header: Get payment info from your employer.
results: Results
search: Search
+ search_by_payroll_provider: Search for payroll provider
select: Select
subheader: Search for an employer
entry:
diff --git a/app/spec/controllers/api/pinwheel_controller_spec.rb b/app/spec/controllers/api/pinwheel_controller_spec.rb
new file mode 100644
index 00000000..1f080467
--- /dev/null
+++ b/app/spec/controllers/api/pinwheel_controller_spec.rb
@@ -0,0 +1,41 @@
+require "rails_helper"
+
+RSpec.describe Api::PinwheelController do
+ include PinwheelApiHelper
+
+ context "#create_token" do
+ let(:cbv_flow) { CbvFlow.create(case_number: "TEST123") }
+ let(:valid_params) do
+ {
+ pinwheel: { response_type: "employer", id: "123" }
+ }
+ end
+
+ before do
+ session[:cbv_flow_id] = cbv_flow.id
+ stub_create_token_response
+ end
+
+ it "creates a link token with Pinwheel" do
+ post :create_token, params: valid_params
+
+ expect(JSON.parse(response.body))
+ .to include("token" => be_a(String))
+ end
+
+ describe "when the button is pressed without an employer or ID" do
+ let(:valid_params) do
+ {
+ pinwheel: { response_type: "", id: "" }
+ }
+ end
+
+ it "still creates a link token with Pinwheel" do
+ post :create_token, params: valid_params
+
+ expect(JSON.parse(response.body))
+ .to include("token" => be_a(String))
+ end
+ end
+ end
+end
diff --git a/app/spec/services/pinwheel_service_spec.rb b/app/spec/services/pinwheel_service_spec.rb
index aef7059a..46380bbf 100644
--- a/app/spec/services/pinwheel_service_spec.rb
+++ b/app/spec/services/pinwheel_service_spec.rb
@@ -25,6 +25,13 @@
response = service.create_link_token(end_user_id: end_user_id, response_type: 'employer', id: 'fake_id')
expect(response['data']['id']).to eq(end_user_id)
end
+
+ context "with an empty response_type and id" do
+ it 'returns a user token' do
+ response = service.create_link_token(end_user_id: end_user_id, response_type: '', id: '')
+ expect(response['data']['id']).to eq(end_user_id)
+ end
+ end
end
describe "#verify_webhook_signature" do