github.com/stripe/stripe-go/v76@v76.25.0/price/client_test.go (about)

     1  package price
     2  
     3  import (
     4  	"testing"
     5  
     6  	assert "github.com/stretchr/testify/require"
     7  	stripe "github.com/stripe/stripe-go/v76"
     8  	_ "github.com/stripe/stripe-go/v76/testing"
     9  )
    10  
    11  func TestPriceGet(t *testing.T) {
    12  	price, err := Get("gold", nil)
    13  	assert.Nil(t, err)
    14  	assert.NotNil(t, price)
    15  }
    16  
    17  func TestPriceList(t *testing.T) {
    18  	params := &stripe.PriceListParams{
    19  		Active: stripe.Bool(true),
    20  		LookupKeys: stripe.StringSlice([]string{
    21  			"Key1",
    22  			"Key2",
    23  		}),
    24  		Recurring: &stripe.PriceListRecurringParams{
    25  			Interval:  stripe.String(string(stripe.PriceRecurringIntervalMonth)),
    26  			UsageType: stripe.String(string(stripe.PriceRecurringUsageTypeLicensed)),
    27  		},
    28  	}
    29  	i := List(params)
    30  
    31  	// Verify that we can get at least one price
    32  	assert.True(t, i.Next())
    33  	assert.Nil(t, i.Err())
    34  	assert.NotNil(t, i.Price())
    35  	assert.NotNil(t, i.PriceList())
    36  }
    37  
    38  func TestPriceNew(t *testing.T) {
    39  	price, err := New(&stripe.PriceParams{
    40  		BillingScheme: stripe.String(string(stripe.PriceBillingSchemeTiered)),
    41  		Currency:      stripe.String(string(stripe.CurrencyUSD)),
    42  		Recurring: &stripe.PriceRecurringParams{
    43  			Interval:      stripe.String(string(stripe.PriceRecurringIntervalMonth)),
    44  			IntervalCount: stripe.Int64(6),
    45  			UsageType:     stripe.String(string(stripe.PriceRecurringUsageTypeLicensed)),
    46  		},
    47  		ProductData: &stripe.PriceProductDataParams{
    48  			Name:                stripe.String("Sapphire Elite"),
    49  			StatementDescriptor: stripe.String("statement descriptor"),
    50  		},
    51  		Tiers: []*stripe.PriceTierParams{
    52  			{UnitAmount: stripe.Int64(500), UpTo: stripe.Int64(5)},
    53  			{UnitAmount: stripe.Int64(400), UpTo: stripe.Int64(10)},
    54  			{UnitAmount: stripe.Int64(300), UpTo: stripe.Int64(15)},
    55  			{UnitAmount: stripe.Int64(200), UpTo: stripe.Int64(20)},
    56  			{UnitAmount: stripe.Int64(200), UpToInf: stripe.Bool(true)},
    57  		},
    58  	})
    59  	assert.Nil(t, err)
    60  	assert.NotNil(t, price)
    61  }
    62  
    63  func TestPriceUpdate(t *testing.T) {
    64  	price, err := Update("gold", &stripe.PriceParams{
    65  		Nickname: stripe.String("Updated nickame"),
    66  	})
    67  	assert.Nil(t, err)
    68  	assert.NotNil(t, price)
    69  }