feat(business-line): auto bind Wayne namespace on create
This commit is contained in:
@@ -81,6 +81,75 @@ func TestParseWayneUsersSupportsNativePageList(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestWayneRoleBindingServiceEnsureNamespaceUsesExisting(t *testing.T) {
|
||||
var got []string
|
||||
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
got = append(got, r.Method+" "+r.URL.RequestURI())
|
||||
switch r.URL.RequestURI() {
|
||||
case "/login/db":
|
||||
_, _ = w.Write([]byte(`{"data":{"token":"` + testJWT(time.Now().Add(time.Hour)) + `"}}`))
|
||||
case "/api/v1/namespaces?name=kodo&pageNo=1&pageSize=500":
|
||||
assertBearer(t, r)
|
||||
_, _ = w.Write([]byte(`{"data":{"list":[{"id":12,"name":"kodo","kubeNamespace":"kodo-prod"}]}}`))
|
||||
default:
|
||||
t.Fatalf("unexpected request %s %s", r.Method, r.URL.RequestURI())
|
||||
}
|
||||
}))
|
||||
defer server.Close()
|
||||
|
||||
svc := NewWayneRoleBindingService(testWayneConfig(server.URL), nil)
|
||||
namespace, err := svc.EnsureNamespace(context.Background(), "kodo")
|
||||
if err != nil {
|
||||
t.Fatalf("EnsureNamespace() error = %v", err)
|
||||
}
|
||||
if namespace.ID != 12 || namespace.Name != "kodo" || namespace.KubeNamespace != "kodo-prod" {
|
||||
t.Fatalf("namespace = %#v", namespace)
|
||||
}
|
||||
if strings.Join(got, "\n") != strings.Join([]string{
|
||||
"POST /login/db",
|
||||
"GET /api/v1/namespaces?name=kodo&pageNo=1&pageSize=500",
|
||||
}, "\n") {
|
||||
t.Fatalf("requests:\n%s", strings.Join(got, "\n"))
|
||||
}
|
||||
}
|
||||
|
||||
func TestWayneRoleBindingServiceEnsureNamespaceCreatesMissing(t *testing.T) {
|
||||
var createBody WayneNamespace
|
||||
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
switch r.URL.RequestURI() {
|
||||
case "/login/db":
|
||||
_, _ = w.Write([]byte(`{"data":{"token":"` + testJWT(time.Now().Add(time.Hour)) + `"}}`))
|
||||
case "/api/v1/namespaces?name=las&pageNo=1&pageSize=500":
|
||||
assertBearer(t, r)
|
||||
_, _ = w.Write([]byte(`{"data":{"list":[]}}`))
|
||||
case "/api/v1/namespaces":
|
||||
if r.Method != http.MethodPost {
|
||||
t.Fatalf("method = %s, want POST", r.Method)
|
||||
}
|
||||
assertBearer(t, r)
|
||||
if err := json.Unmarshal(readTestBody(t, r), &createBody); err != nil {
|
||||
t.Fatalf("invalid create body: %v", err)
|
||||
}
|
||||
_, _ = w.Write([]byte(`{"data":{"id":21,"name":"las","kubeNamespace":"las"}}`))
|
||||
default:
|
||||
t.Fatalf("unexpected request %s %s", r.Method, r.URL.RequestURI())
|
||||
}
|
||||
}))
|
||||
defer server.Close()
|
||||
|
||||
svc := NewWayneRoleBindingService(testWayneConfig(server.URL), nil)
|
||||
namespace, err := svc.EnsureNamespace(context.Background(), "las")
|
||||
if err != nil {
|
||||
t.Fatalf("EnsureNamespace() error = %v", err)
|
||||
}
|
||||
if namespace.ID != 21 || namespace.Name != "las" || namespace.KubeNamespace != "las" {
|
||||
t.Fatalf("namespace = %#v", namespace)
|
||||
}
|
||||
if createBody.Name != "las" || createBody.KubeNamespace != "las" || createBody.MetaData != "{}" {
|
||||
t.Fatalf("create body = %#v", createBody)
|
||||
}
|
||||
}
|
||||
|
||||
func TestWayneRoleBindingServiceCreateAndDeleteNativeBindings(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
|
||||
Reference in New Issue
Block a user