Files
hfb_sys/backend/internal/modules/qualityowner/dto_test.go
T

42 lines
1.6 KiB
Go

package qualityowner
import "testing"
func TestParseConfigValueDefaultsAndValidation(t *testing.T) {
rules, err := ParseConfigValue(`{"insurance_fee_bps":800,"premium_insurance_fee_bps":400}`)
if err != nil {
t.Fatalf("ParseConfigValue() error = %v", err)
}
if rules.DepositAmountCent != defaultDepositCent || rules.InsuranceFeeBps != 800 || rules.PremiumInsuranceFeeBps != 400 {
t.Fatalf("unexpected rules: %+v", rules)
}
if rules.AgreementTitle != defaultAgreementTitle ||
rules.AgreementReadSeconds != defaultAgreementReadSeconds ||
rules.AgreementContent == "" {
t.Fatalf("unexpected agreement defaults: %+v", rules)
}
if _, err := ParseConfigValue(`{"deposit_amount_cent":20000,"insurance_fee_bps":400,"premium_insurance_fee_bps":800}`); err == nil {
t.Fatal("expected premium rate above normal rate to be rejected")
}
if _, err := ParseConfigValue(`{"deposit_amount_cent":0}`); err == nil {
t.Fatal("expected zero deposit to be rejected")
}
if _, err := ParseConfigValue(`{"agreement_read_seconds":14}`); err == nil {
t.Fatal("expected agreement reading time below 15 seconds to be rejected")
}
}
func TestDefaultConfigValueCanBeParsed(t *testing.T) {
rules, err := ParseConfigValue(DefaultConfigValue())
if err != nil {
t.Fatalf("ParseConfigValue(DefaultConfigValue()) error = %v", err)
}
if rules.DepositAmountCent != 20000 || rules.InsuranceFeeBps != 800 || rules.PremiumInsuranceFeeBps != 400 {
t.Fatalf("unexpected default rules: %+v", rules)
}
if rules.AgreementReadSeconds != 15 || rules.AgreementTitle == "" || rules.AgreementContent == "" {
t.Fatalf("unexpected default agreement: %+v", rules)
}
}