47 lines
1.8 KiB
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)
|
|
}
|
|
}
|
|
}
|