修复仲裁退款并新增免押额度
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
package dispute
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"hfb_sys/backend/internal/model"
|
||||
)
|
||||
|
||||
func TestBuildArbitrationSettlementSkipsFrozenReleaseWhenNoFrozenBalance(t *testing.T) {
|
||||
order := model.RentalOrder{
|
||||
ID: 11,
|
||||
OrderNo: "RO202606080001",
|
||||
RenterID: 101,
|
||||
OwnerID: 202,
|
||||
RentAmount: 200,
|
||||
OwnerRentAmount: 180,
|
||||
DepositAmount: 100,
|
||||
}
|
||||
|
||||
settlement, err := buildArbitrationSettlement(order, ArbitrateRequest{
|
||||
Result: "release_deposit",
|
||||
Remark: "测试裁决",
|
||||
}, 0)
|
||||
if err != nil {
|
||||
t.Fatalf("buildArbitrationSettlement() error = %v", err)
|
||||
}
|
||||
|
||||
for _, entry := range settlement.Entries {
|
||||
if entry.BizType == "arbitration_release_frozen" {
|
||||
t.Fatalf("不应在无冻结余额时生成解冻流水: %+v", entry)
|
||||
}
|
||||
}
|
||||
if settlement.OwnerIncomeAmount != 180 {
|
||||
t.Fatalf("OwnerIncomeAmount = %.1f, want 180.0", settlement.OwnerIncomeAmount)
|
||||
}
|
||||
if settlement.RenterRefundAmount != 100 {
|
||||
t.Fatalf("RenterRefundAmount = %.1f, want 100.0", settlement.RenterRefundAmount)
|
||||
}
|
||||
for _, entry := range settlement.Entries {
|
||||
if entry.UserID == order.RenterID && entry.BizType == "arbitration_renter_refund" {
|
||||
t.Fatalf("外部支付订单不应生成租客钱包退款流水: %+v", entry)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestBuildArbitrationSettlementLimitsFrozenReleaseToExistingBalance(t *testing.T) {
|
||||
order := model.RentalOrder{
|
||||
ID: 12,
|
||||
OrderNo: "RO202606080002",
|
||||
RenterID: 101,
|
||||
OwnerID: 202,
|
||||
RentAmount: 200,
|
||||
OwnerRentAmount: 180,
|
||||
DepositAmount: 100,
|
||||
}
|
||||
|
||||
settlement, err := buildArbitrationSettlement(order, ArbitrateRequest{
|
||||
Result: "order_close",
|
||||
Remark: "测试裁决",
|
||||
}, 120)
|
||||
if err != nil {
|
||||
t.Fatalf("buildArbitrationSettlement() error = %v", err)
|
||||
}
|
||||
|
||||
releaseEntryCount := 0
|
||||
for _, entry := range settlement.Entries {
|
||||
if entry.BizType != "arbitration_release_frozen" {
|
||||
continue
|
||||
}
|
||||
releaseEntryCount++
|
||||
if entry.Amount != 120 {
|
||||
t.Fatalf("release frozen amount = %.1f, want 120.0", entry.Amount)
|
||||
}
|
||||
}
|
||||
if releaseEntryCount != 1 {
|
||||
t.Fatalf("release frozen entry count = %d, want 1", releaseEntryCount)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user