mirror of
https://github.com/we-promise/sure.git
synced 2026-04-07 14:31:25 +00:00
* Hide payment contribution options from demo and manually created users Demo data users and manually created users don't have stripe_customer_id set on their family, so they should not see payment/contribution options. Changes: - Add can_manage_subscription? method to Family::Subscribeable that checks for presence of stripe_customer_id - Guard Settings::PaymentsController to return 403 for users without stripe_customer_id - Guard SubscriptionsController#show action (Stripe portal redirect) for users without stripe_customer_id - Update settings navigation to hide the payment link when stripe_customer_id is not present - Add tests for the new behavior * Fix broken test --------- Co-authored-by: Claude <noreply@anthropic.com>
23 lines
549 B
Ruby
23 lines
549 B
Ruby
require "test_helper"
|
|
|
|
class Settings::PaymentsControllerTest < ActionDispatch::IntegrationTest
|
|
setup do
|
|
sign_in @user = users(:empty)
|
|
@family = @user.family
|
|
end
|
|
|
|
test "returns forbidden when family has no stripe_customer_id" do
|
|
assert_nil @family.stripe_customer_id
|
|
|
|
get settings_payment_path
|
|
assert_response :forbidden
|
|
end
|
|
|
|
test "shows payment settings when family has stripe_customer_id" do
|
|
@family.update!(stripe_customer_id: "cus_test123")
|
|
|
|
get settings_payment_path
|
|
assert_response :success
|
|
end
|
|
end
|