toBe('sk_test_fake_suite_key') ->and(config('stripe.key'))->toBe('pk_test_fake_suite_key') ->and(config('stripe.webhook_secret'))->toBe('whsec_fake_suite_secret') ->and(config('stripe.mode'))->toBe('test'); }); it('does not hard-fail the boot when stripe secrets are missing', function () { config(['stripe.secret' => null, 'stripe.webhook_secret' => null]); expect(config('stripe.secret'))->toBeNull() ->and(config('stripe.mode'))->toBe('test'); }); it('exposes both payment providers as enum', function () { expect(PaymentProvider::Payone->value)->toBe('payone') ->and(PaymentProvider::Stripe->value)->toBe('stripe') ->and(PaymentProvider::from('stripe'))->toBe(PaymentProvider::Stripe) ->and(PaymentProvider::tryFrom('unknown'))->toBeNull(); }); it('has the stripe sdk installed', function () { expect(class_exists(StripeClient::class))->toBeTrue(); });