github.com/stripe/stripe-go/v76@v76.25.0/subscription/client_test.go (about) 1 package subscription 2 3 import ( 4 "testing" 5 "time" 6 7 assert "github.com/stretchr/testify/require" 8 stripe "github.com/stripe/stripe-go/v76" 9 _ "github.com/stripe/stripe-go/v76/testing" 10 ) 11 12 func TestSubscriptionCancel(t *testing.T) { 13 subscription, err := Cancel("sub_123", &stripe.SubscriptionCancelParams{ 14 InvoiceNow: stripe.Bool(true), 15 Prorate: stripe.Bool(true), 16 }) 17 assert.Nil(t, err) 18 assert.NotNil(t, subscription) 19 } 20 21 func TestSubscriptionGet(t *testing.T) { 22 subscription, err := Get("sub_123", nil) 23 assert.Nil(t, err) 24 assert.NotNil(t, subscription) 25 } 26 27 func TestSubscriptionList(t *testing.T) { 28 i := List(&stripe.SubscriptionListParams{}) 29 30 // Verify that we can get at least one subscription 31 assert.True(t, i.Next()) 32 assert.Nil(t, i.Err()) 33 assert.NotNil(t, i.Subscription()) 34 assert.NotNil(t, i.SubscriptionList()) 35 } 36 37 func TestSubscriptionNew(t *testing.T) { 38 subscription, err := New(&stripe.SubscriptionParams{ 39 AddInvoiceItems: []*stripe.SubscriptionAddInvoiceItemParams{ 40 { 41 Price: stripe.String("price_123"), 42 Quantity: stripe.Int64(2), 43 }, 44 { 45 PriceData: &stripe.InvoiceItemPriceDataParams{ 46 Currency: stripe.String(string(stripe.CurrencyUSD)), 47 UnitAmount: stripe.Int64(1000), 48 Product: stripe.String("prod_123"), 49 }, 50 Quantity: stripe.Int64(4), 51 }, 52 }, 53 BillingCycleAnchor: stripe.Int64(time.Now().AddDate(0, 0, 12).Unix()), 54 CollectionMethod: stripe.String(string(stripe.SubscriptionCollectionMethodChargeAutomatically)), 55 Customer: stripe.String("cus_123"), 56 DaysUntilDue: stripe.Int64(30), 57 Items: []*stripe.SubscriptionItemsParams{ 58 { 59 Price: stripe.String("price_ABC"), 60 Quantity: stripe.Int64(10), 61 }, 62 { 63 PriceData: &stripe.SubscriptionItemPriceDataParams{ 64 Currency: stripe.String(string(stripe.CurrencyUSD)), 65 Product: stripe.String("prod_ABC"), 66 Recurring: &stripe.SubscriptionItemPriceDataRecurringParams{ 67 Interval: stripe.String(string(stripe.PriceRecurringIntervalMonth)), 68 IntervalCount: stripe.Int64(6), 69 }, 70 UnitAmount: stripe.Int64(1000), 71 }, 72 }, 73 }, 74 }) 75 assert.Nil(t, err) 76 assert.NotNil(t, subscription) 77 } 78 79 func TestSubscriptionNew_WithItems(t *testing.T) { 80 subscription, err := New(&stripe.SubscriptionParams{ 81 Customer: stripe.String("cus_123"), 82 Items: []*stripe.SubscriptionItemsParams{ 83 { 84 Plan: stripe.String("gold"), 85 Quantity: stripe.Int64(0), 86 }, 87 }, 88 }) 89 assert.Nil(t, err) 90 assert.NotNil(t, subscription) 91 } 92 93 func TestSubscriptionUpdate(t *testing.T) { 94 params := &stripe.SubscriptionParams{ 95 ProrationBehavior: stripe.String("none"), 96 } 97 subscription, err := Update("sub_123", params) 98 assert.Nil(t, err) 99 assert.NotNil(t, subscription) 100 } 101 102 func TestDeleteDiscount(t *testing.T) { 103 discount, err := DeleteDiscount("sub_123", nil) 104 assert.Nil(t, err) 105 assert.NotNil(t, discount) 106 }