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 }