修复结账金额和后台类型
This commit is contained in:
@@ -0,0 +1,114 @@
|
||||
package order
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"hfb_sys/backend/internal/model"
|
||||
|
||||
"gorm.io/datatypes"
|
||||
)
|
||||
|
||||
func TestCalculateCheckoutSettlementRefundsUnusedRent(t *testing.T) {
|
||||
order := model.RentalOrder{
|
||||
RentAmount: 383,
|
||||
OwnerRentAmount: 353,
|
||||
DepositAmount: 150,
|
||||
AccountSnapshot: datatypes.JSON([]byte(`{
|
||||
"haf_coin_amount": 100000000,
|
||||
"asset_summary": {
|
||||
"price_breakdown": {
|
||||
"buyer_coin_base_price": 263,
|
||||
"seller_coin_base_price": 233,
|
||||
"consumable_price": 120
|
||||
}
|
||||
}
|
||||
}`)),
|
||||
}
|
||||
|
||||
settlement := calculateCheckoutSettlement(order, 7, 90, 0)
|
||||
|
||||
if settlement.ActualRentAmount != 244 {
|
||||
t.Fatalf("ActualRentAmount = %.2f, want 244.00", settlement.ActualRentAmount)
|
||||
}
|
||||
if settlement.OwnerRentIncome != 217 {
|
||||
t.Fatalf("OwnerRentIncome = %.2f, want 217.00", settlement.OwnerRentIncome)
|
||||
}
|
||||
if settlement.PlatformFee != 27 {
|
||||
t.Fatalf("PlatformFee = %.2f, want 27.00", settlement.PlatformFee)
|
||||
}
|
||||
if settlement.RentRefund != 139 {
|
||||
t.Fatalf("RentRefund = %.2f, want 139.00", settlement.RentRefund)
|
||||
}
|
||||
if settlement.DepositRefund != 150 {
|
||||
t.Fatalf("DepositRefund = %.2f, want 150.00", settlement.DepositRefund)
|
||||
}
|
||||
if settlement.RenterRefund != 289 {
|
||||
t.Fatalf("RenterRefund = %.2f, want 289.00", settlement.RenterRefund)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCalculateCheckoutSettlementUsesBuyerAndSellerRatiosSeparately(t *testing.T) {
|
||||
order := model.RentalOrder{
|
||||
RentAmount: 383,
|
||||
OwnerRentAmount: 353,
|
||||
DepositAmount: 150,
|
||||
AccountSnapshot: datatypes.JSON([]byte(`{
|
||||
"haf_coin_amount": 100000000,
|
||||
"asset_summary": {
|
||||
"price_breakdown": {
|
||||
"buyer_coin_base_price": 263,
|
||||
"seller_coin_base_price": 233,
|
||||
"consumable_price": 120
|
||||
}
|
||||
}
|
||||
}`)),
|
||||
}
|
||||
|
||||
settlement := calculateCheckoutSettlement(order, 0, 50, 0)
|
||||
|
||||
if settlement.ActualRentAmount != 132 {
|
||||
t.Fatalf("租客侧实际租金 = %.2f, want 132.00", settlement.ActualRentAmount)
|
||||
}
|
||||
if settlement.OwnerRentIncome != 117 {
|
||||
t.Fatalf("卖家侧租金收入 = %.2f, want 117.00", settlement.OwnerRentIncome)
|
||||
}
|
||||
if settlement.PlatformFee != 15 {
|
||||
t.Fatalf("平台差价 = %.2f, want 15.00", settlement.PlatformFee)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCalculateCheckoutSettlementAddsDepositCompensation(t *testing.T) {
|
||||
order := model.RentalOrder{
|
||||
RentAmount: 383,
|
||||
OwnerRentAmount: 353,
|
||||
DepositAmount: 150,
|
||||
AccountSnapshot: datatypes.JSON([]byte(`{
|
||||
"haf_coin_amount": 100000000,
|
||||
"asset_summary": {
|
||||
"price_breakdown": {
|
||||
"buyer_coin_base_price": 263,
|
||||
"seller_coin_base_price": 233,
|
||||
"consumable_price": 120
|
||||
}
|
||||
}
|
||||
}`)),
|
||||
}
|
||||
|
||||
settlement := calculateCheckoutSettlement(order, 120, 100, 30)
|
||||
|
||||
if settlement.ActualRentAmount != 383 {
|
||||
t.Fatalf("ActualRentAmount = %.2f, want 383.00", settlement.ActualRentAmount)
|
||||
}
|
||||
if settlement.OwnerRentIncome != 353 {
|
||||
t.Fatalf("OwnerRentIncome = %.2f, want 353.00", settlement.OwnerRentIncome)
|
||||
}
|
||||
if settlement.DepositCompensation != 30 {
|
||||
t.Fatalf("DepositCompensation = %.2f, want 30.00", settlement.DepositCompensation)
|
||||
}
|
||||
if settlement.OwnerIncome != 383 {
|
||||
t.Fatalf("OwnerIncome = %.2f, want 383.00", settlement.OwnerIncome)
|
||||
}
|
||||
if settlement.RenterRefund != 120 {
|
||||
t.Fatalf("RenterRefund = %.2f, want 120.00", settlement.RenterRefund)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user