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

     1  package session
     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 TestCheckoutSessionGet(t *testing.T) {
    12  	session, err := Get("cs_123", nil)
    13  	assert.Nil(t, err)
    14  	assert.NotNil(t, session)
    15  }
    16  
    17  func TestCheckoutSessionNew(t *testing.T) {
    18  	params := &stripe.CheckoutSessionParams{
    19  		CancelURL:         stripe.String("https://stripe.com/cancel"),
    20  		ClientReferenceID: stripe.String("1234"),
    21  		LineItems: []*stripe.CheckoutSessionLineItemParams{
    22  			{
    23  				Quantity: stripe.Int64(2),
    24  			},
    25  		},
    26  		PaymentIntentData: &stripe.CheckoutSessionPaymentIntentDataParams{
    27  			Description: stripe.String("description"),
    28  			Metadata: map[string]string{
    29  				"attr1": "val1",
    30  				"attr2": "val2",
    31  			},
    32  			Shipping: &stripe.ShippingDetailsParams{
    33  				Address: &stripe.AddressParams{
    34  					Line1: stripe.String("line1"),
    35  					City:  stripe.String("city"),
    36  				},
    37  				Carrier: stripe.String("carrier"),
    38  				Name:    stripe.String("name"),
    39  			},
    40  		},
    41  		PaymentMethodTypes: stripe.StringSlice([]string{
    42  			"card",
    43  		}),
    44  		SubscriptionData: &stripe.CheckoutSessionSubscriptionDataParams{
    45  			Metadata: map[string]string{
    46  				"attr1": "val1",
    47  				"attr2": "val2",
    48  			},
    49  		},
    50  		SuccessURL: stripe.String("https://stripe.com/success"),
    51  	}
    52  	params.AddExpand("line_items")
    53  	session, err := New(params)
    54  	assert.Nil(t, err)
    55  	assert.NotNil(t, session)
    56  	assert.Equal(t, session.LineItems.Data[0].Object, "item")
    57  }
    58  
    59  func TestCheckoutSessionList(t *testing.T) {
    60  	i := List(&stripe.CheckoutSessionListParams{})
    61  
    62  	// Verify that we can get at least one session.
    63  	assert.True(t, i.Next())
    64  	assert.Nil(t, i.Err())
    65  	assert.NotNil(t, i.CheckoutSession())
    66  	assert.NotNil(t, i.CheckoutSessionList())
    67  }
    68  
    69  func TestCheckoutSessionListLineItems(t *testing.T) {
    70  	params := &stripe.CheckoutSessionListLineItemsParams{Session: stripe.String("cs_123")}
    71  	i := ListLineItems(params)
    72  
    73  	// Verify that we can get at least one line item.
    74  	assert.True(t, i.Next())
    75  	assert.Nil(t, i.Err())
    76  	assert.NotNil(t, i.LineItem())
    77  	assert.NotNil(t, i.LineItemList())
    78  }