kra-new/internal/routecatalog/catalog_test.go

47 lines
1.8 KiB
Go

package routecatalog
import "testing"
func TestLookupMatchesRouteTemplatesAndPrefixes(t *testing.T) {
descriptor, ok := Lookup("POST", "/admin/payment/orders/alipay/order-1/refund")
if !ok || !descriptor.Audit || descriptor.Path != "/payment/orders/:provider/:tradeNo/refund" {
t.Fatalf("descriptor = %#v, ok=%v", descriptor, ok)
}
if descriptor, ok = Lookup("GET", "/admin/payment/orders/alipay/order-1"); !ok || descriptor.Audit || descriptor.Public {
t.Fatalf("private query descriptor = %#v, ok=%v", descriptor, ok)
}
}
func TestRoutePoliciesShareOneDescriptor(t *testing.T) {
callback := Describe("POST", "/payment/callback/:provider")
if !callback.Public || callback.Audit || callback.BodyPolicy != BodyPolicyPaymentCallback {
t.Fatalf("callback descriptor = %#v", callback)
}
if policy := BodyPolicyFor("PUT", "/admin/integration/configs/payment/saobei"); policy != BodyPolicyPaymentConfig {
t.Fatalf("payment policy = %q", policy)
}
if policy := BodyPolicyFor("PUT", "/admin/integration/configs/mq/emqx"); policy != BodyPolicyDefault {
t.Fatalf("mq policy = %q", policy)
}
if descriptor := Describe("POST", "/system/reloadSystem"); !descriptor.Audit || descriptor.Group != "系统服务" {
t.Fatalf("reload descriptor = %#v", descriptor)
}
}
func TestLookupMatchesWildcardTail(t *testing.T) {
if descriptor, ok := Lookup("GET", "/api/swagger/index.html"); !ok || !descriptor.Public || descriptor.Path != "/swagger/*any" {
t.Fatalf("wildcard descriptor = %#v, ok=%v", descriptor, ok)
}
if _, ok := Lookup("GET", "/api/swagger"); ok {
t.Fatal("wildcard route matched without a tail")
}
}
func TestEveryRouteHasAPIMetadata(t *testing.T) {
for _, descriptor := range Descriptors() {
if descriptor.Group == "" || descriptor.Description == "" {
t.Errorf("route metadata is incomplete: %#v", descriptor)
}
}
}