81 lines
2.2 KiB
Go
81 lines
2.2 KiB
Go
|
|
package woogo
|
||
|
|
|
||
|
|
import (
|
||
|
|
"errors"
|
||
|
|
"testing"
|
||
|
|
|
||
|
|
"git.cloudyne.io/go/hiscaler-gox/jsonx"
|
||
|
|
"github.com/stretchr/testify/assert"
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestOrderRefundService_All(t *testing.T) {
|
||
|
|
t.Run("getOrderId", getOrderId)
|
||
|
|
params := OrderRefundsQueryParams{}
|
||
|
|
items, _, _, _, err := wooClient.Services.OrderRefund.All(orderId, params)
|
||
|
|
if err != nil {
|
||
|
|
t.Errorf("wooClient.Services.OrderRefund.All error: %s", err.Error())
|
||
|
|
} else {
|
||
|
|
if len(items) > 0 {
|
||
|
|
childId = items[0].ID
|
||
|
|
}
|
||
|
|
t.Logf("items = %s", jsonx.ToPrettyJson(items))
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestOrderRefundService_Create(t *testing.T) {
|
||
|
|
t.Run("getOrderId", getOrderId)
|
||
|
|
req := CreateOrderRefundRequest{
|
||
|
|
Amount: 1,
|
||
|
|
Reason: "product is lost",
|
||
|
|
RefundedBy: 0,
|
||
|
|
MetaData: nil,
|
||
|
|
LineItems: nil,
|
||
|
|
}
|
||
|
|
item, err := wooClient.Services.OrderRefund.Create(mainId, req)
|
||
|
|
if err != nil {
|
||
|
|
t.Fatalf("wooClient.Services.OrderRefund.Create error: %s", err.Error())
|
||
|
|
} else {
|
||
|
|
assert.Equal(t, 100.00, item.Amount, "refund amount")
|
||
|
|
childId = item.ID
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestOrderRefundService_One(t *testing.T) {
|
||
|
|
t.Run("TestOrderRefundService_All", TestOrderRefundService_All)
|
||
|
|
item, err := wooClient.Services.OrderRefund.One(mainId, childId, 2)
|
||
|
|
if err != nil {
|
||
|
|
t.Errorf("wooClient.Services.OrderRefund.One(%d, %d) error: %s", orderId, noteId, err.Error())
|
||
|
|
} else {
|
||
|
|
assert.Equal(t, childId, item.ID, "note id")
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestOrderRefundService_CreateDelete(t *testing.T) {
|
||
|
|
t.Run("getOrderId", getOrderId)
|
||
|
|
req := CreateOrderRefundRequest{
|
||
|
|
Amount: 100,
|
||
|
|
Reason: "product is lost",
|
||
|
|
RefundedBy: 0,
|
||
|
|
MetaData: nil,
|
||
|
|
LineItems: nil,
|
||
|
|
}
|
||
|
|
item, err := wooClient.Services.OrderRefund.Create(mainId, req)
|
||
|
|
if err != nil {
|
||
|
|
t.Fatalf("wooClient.Services.OrderRefund.Create error: %s", err.Error())
|
||
|
|
} else {
|
||
|
|
assert.Equal(t, 100.00, item.Amount, "refund amount")
|
||
|
|
noteId = item.ID
|
||
|
|
}
|
||
|
|
|
||
|
|
// Delete
|
||
|
|
_, err = wooClient.Services.OrderNote.Delete(mainId, childId, true)
|
||
|
|
if err != nil {
|
||
|
|
t.Fatalf("wooClient.Services.OrderRefund.Delete(%d, %d, %v) error: %s", mainId, childId, true, err.Error())
|
||
|
|
} else {
|
||
|
|
_, err = wooClient.Services.OrderNote.One(mainId, childId)
|
||
|
|
if !errors.Is(err, ErrNotFound) {
|
||
|
|
t.Fatalf("wooClient.Services.OrderRefund.Delete(%d, %d, %v) failed", mainId, childId, true)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|