diff --git a/app/views/users/piv_cac_setup_from_sign_in/prompt.html.erb b/app/views/users/piv_cac_setup_from_sign_in/prompt.html.erb
index 348b068e81f..cbcd456be03 100644
--- a/app/views/users/piv_cac_setup_from_sign_in/prompt.html.erb
+++ b/app/views/users/piv_cac_setup_from_sign_in/prompt.html.erb
@@ -25,11 +25,16 @@
<%= f.submit t('forms.piv_cac_setup.submit') %>
-
- <%= link_to t('forms.piv_cac_setup.no_thanks'),
- new_user_session_url,
- class: 'usa-button usa-button--wide usa-button--big usa-button--outline' %>
-
<% end %>
+<%= render ButtonComponent.new(
+ action: ->(**tag_options, &block) do
+ button_to(login_add_piv_cac_prompt_path, **tag_options, method: :post, &block)
+ end,
+ big: true,
+ wide: true,
+ outline: true,
+ class: 'margin-top-2',
+ ).with_content(t('forms.piv_cac_setup.no_thanks')) %>
+
<%= render 'shared/cancel', link: new_user_session_url %>
diff --git a/spec/features/users/sign_in_spec.rb b/spec/features/users/sign_in_spec.rb
index 6b8c57b068b..6b4a16b0c18 100644
--- a/spec/features/users/sign_in_spec.rb
+++ b/spec/features/users/sign_in_spec.rb
@@ -59,7 +59,15 @@
scenario 'user opts to not add piv/cac card' do
perform_steps_to_get_to_add_piv_cac_during_sign_up
click_on t('forms.piv_cac_setup.no_thanks')
- expect(current_path).to eq account_path
+ expect(current_path).to eq sign_up_completed_path
+ end
+
+ context 'without an associated service provider' do
+ scenario 'user opts to not add piv/cac card' do
+ perform_steps_to_get_to_add_piv_cac_during_sign_up(sp: nil)
+ click_on t('forms.piv_cac_setup.no_thanks')
+ expect(current_path).to eq account_path
+ end
end
scenario 'user is suspended, gets show please call page after 2fa' do
@@ -974,9 +982,13 @@
end
end
- def perform_steps_to_get_to_add_piv_cac_during_sign_up
+ def perform_steps_to_get_to_add_piv_cac_during_sign_up(sp: :oidc)
user = create(:user, :fully_registered, :with_phone)
- visit_idp_from_sp_with_ial1(:oidc)
+ if sp
+ visit_idp_from_sp_with_ial1(sp)
+ else
+ visit new_user_session_path
+ end
click_on t('account.login.piv_cac')
allow(FeatureManagement).to receive(:development_and_identity_pki_disabled?).and_return(false)