berrypod/test/simpleshop_theme/stripe/setup_test.exs

56 lines
1.8 KiB
Elixir
Raw Normal View History

defmodule SimpleshopTheme.Stripe.SetupTest do
use SimpleshopTheme.DataCase, async: false
alias SimpleshopTheme.Settings
alias SimpleshopTheme.Stripe.Setup
describe "localhost?/0" do
test "returns true for localhost endpoint" do
# In test env, endpoint URL is localhost
assert Setup.localhost?()
end
end
describe "webhook_url/0" do
test "returns the webhook endpoint URL" do
url = Setup.webhook_url()
assert url =~ "/webhooks/stripe"
end
end
describe "save_signing_secret/1" do
test "stores signing secret and loads into Application env" do
Setup.save_signing_secret("whsec_test_secret_123")
assert Settings.get_secret("stripe_signing_secret") == "whsec_test_secret_123"
assert Application.get_env(:stripity_stripe, :signing_secret) == "whsec_test_secret_123"
end
end
describe "disconnect/0" do
test "removes all Stripe settings from DB and Application env" do
# Set up some Stripe config
Settings.put_secret("stripe_api_key", "sk_test_123")
Settings.put_secret("stripe_signing_secret", "whsec_test_456")
Settings.put_setting("stripe_webhook_endpoint_id", "we_test_789")
Application.put_env(:stripity_stripe, :api_key, "sk_test_123")
Application.put_env(:stripity_stripe, :signing_secret, "whsec_test_456")
assert :ok = Setup.disconnect()
# DB cleared
refute Settings.has_secret?("stripe_api_key")
refute Settings.has_secret?("stripe_signing_secret")
assert Settings.get_setting("stripe_webhook_endpoint_id") == nil
# Application env cleared
assert Application.get_env(:stripity_stripe, :api_key) == nil
assert Application.get_env(:stripity_stripe, :signing_secret) == nil
end
test "handles disconnect when nothing is configured" do
assert :ok = Setup.disconnect()
end
end
end