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

     1  package creditnote
     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 TestCreditNoteGet(t *testing.T) {
    12  	cn, err := Get("cn_123", nil)
    13  	assert.Nil(t, err)
    14  	assert.NotNil(t, cn)
    15  }
    16  
    17  func TestCreditNoteList(t *testing.T) {
    18  	params := &stripe.CreditNoteListParams{
    19  		Invoice: stripe.String("in_123"),
    20  	}
    21  	i := List(params)
    22  
    23  	// Verify that we can get at least one credit note
    24  	assert.True(t, i.Next())
    25  	assert.Nil(t, i.Err())
    26  	assert.NotNil(t, i.CreditNote())
    27  	assert.NotNil(t, i.CreditNoteList())
    28  }
    29  
    30  func TestCreditNoteListLines(t *testing.T) {
    31  	i := ListLines(&stripe.CreditNoteListLinesParams{
    32  		CreditNote: stripe.String("cn_123"),
    33  	})
    34  
    35  	// Verify that we can get at least one invoice
    36  	assert.True(t, i.Next())
    37  	assert.Nil(t, i.Err())
    38  	assert.NotNil(t, i.CreditNoteLineItem())
    39  	assert.NotNil(t, i.CreditNoteLineItemList())
    40  }
    41  
    42  func TestPreviewLines(t *testing.T) {
    43  	params := &stripe.CreditNotePreviewLinesParams{
    44  		Invoice: stripe.String("in_123"),
    45  		Lines: []*stripe.CreditNotePreviewLinesLineParams{
    46  			{
    47  				Type:            stripe.String(string(stripe.CreditNoteLineItemTypeInvoiceLineItem)),
    48  				Amount:          stripe.Int64(100),
    49  				InvoiceLineItem: stripe.String("ili_123"),
    50  				TaxRates: stripe.StringSlice([]string{
    51  					"txr_123",
    52  				}),
    53  			},
    54  		},
    55  	}
    56  	i := PreviewLines(params)
    57  
    58  	// Verify that we can get at least one invoice
    59  	assert.True(t, i.Next())
    60  	assert.Nil(t, i.Err())
    61  	assert.NotNil(t, i.CreditNoteLineItem())
    62  }
    63  
    64  func TestCreditNoteNew(t *testing.T) {
    65  	params := &stripe.CreditNoteParams{
    66  		Amount:  stripe.Int64(100),
    67  		Invoice: stripe.String("in_123"),
    68  		Reason:  stripe.String(string(stripe.CreditNoteReasonDuplicate)),
    69  		Lines: []*stripe.CreditNoteLineParams{
    70  			{
    71  				Type:            stripe.String(string(stripe.CreditNoteLineItemTypeInvoiceLineItem)),
    72  				Amount:          stripe.Int64(100),
    73  				InvoiceLineItem: stripe.String("ili_123"),
    74  				TaxRates: stripe.StringSlice([]string{
    75  					"txr_123",
    76  				}),
    77  			},
    78  		},
    79  	}
    80  	cn, err := New(params)
    81  	assert.Nil(t, err)
    82  	assert.NotNil(t, cn)
    83  }
    84  
    85  func TestCreditNoteUpdate(t *testing.T) {
    86  	params := &stripe.CreditNoteParams{
    87  		Params: stripe.Params{
    88  			Metadata: map[string]string{
    89  				"foo": "bar",
    90  			},
    91  		},
    92  	}
    93  	cn, err := Update("cn_123", params)
    94  	assert.Nil(t, err)
    95  	assert.NotNil(t, cn)
    96  }
    97  
    98  func TestCreditNotePreview(t *testing.T) {
    99  	params := &stripe.CreditNotePreviewParams{
   100  		Amount:  stripe.Int64(100),
   101  		Invoice: stripe.String("in_123"),
   102  		Lines: []*stripe.CreditNotePreviewLineParams{
   103  			{
   104  				Type:            stripe.String(string(stripe.CreditNoteLineItemTypeInvoiceLineItem)),
   105  				Amount:          stripe.Int64(100),
   106  				InvoiceLineItem: stripe.String("ili_123"),
   107  				TaxRates: stripe.StringSlice([]string{
   108  					"txr_123",
   109  				}),
   110  			},
   111  		},
   112  	}
   113  	cn, err := Preview(params)
   114  	assert.Nil(t, err)
   115  	assert.NotNil(t, cn)
   116  }
   117  
   118  func TestCreditNoteVoidCreditNote(t *testing.T) {
   119  	params := &stripe.CreditNoteVoidCreditNoteParams{}
   120  	cn, err := VoidCreditNote("cn_123", params)
   121  	assert.Nil(t, err)
   122  	assert.NotNil(t, cn)
   123  }