package order import ( "testing" "github.com/perfect-panel/server/internal/model/payment" ) func TestCalculateFee_Percent(t *testing.T) { p := &payment.Payment{FeeMode: 1, FeePercent: 5} if calculateFee(1000, p) != 50 { t.Fatal("fee percent 5% of 1000 should be 50") } } func TestCalculateFee_PercentRounding(t *testing.T) { p := &payment.Payment{FeeMode: 1, FeePercent: 5} if calculateFee(999, p) != 50 { // 999*5% = 49.95 → round to 50 t.Fatal("fee percent 5% of 999 should round to 50") } } func TestCalculateFee_Fixed(t *testing.T) { p := &payment.Payment{FeeMode: 2, FeeAmount: 300} if calculateFee(1000, p) != 300 { t.Fatal("fixed fee 300 should be 300") } } func TestCalculateFee_Mixed(t *testing.T) { p := &payment.Payment{FeeMode: 3, FeePercent: 10, FeeAmount: 100} if calculateFee(1000, p) != 200 { t.Fatal("mixed fee 10% + 100 of 1000 should be 200") } }