DodoApp: Support remote clusters
Change-Id: I6f4e6a0a32cc723b47c96518d83b1ffdb5169f14
diff --git a/core/installer/schema_test.go b/core/installer/schema_test.go
index 61739fb..04375bf 100644
--- a/core/installer/schema_test.go
+++ b/core/installer/schema_test.go
@@ -2,6 +2,8 @@
import (
"testing"
+
+ "cuelang.org/go/cue"
)
func TestFindPortFields(t *testing.T) {
@@ -34,3 +36,56 @@
t.Fatalf("expected 'z' and 'w.z' port fields, %v", p)
}
}
+
+const isNotNetwork = `
+input: {
+ repoAddr: string
+ repoPublicAddr: string
+ managerAddr: string
+ appId: string
+ branch: string
+ sshPrivateKey: string
+ username?: string
+ cluster: #Cluster
+ username?: string | *"test"
+ vpnAuthKey: string @role(VPNAuthKey) @usernameField(username)
+}
+
+#Cluster: {
+ name: string
+ kubeconfig: string
+ ingressClassName: string
+}
+`
+
+func TestIsNotNetwork(t *testing.T) {
+ v, err := ParseCueAppConfig(CueAppData{"/test.cue": []byte(isNotNetwork)})
+ if err != nil {
+ t.Fatal(err)
+ }
+ if isNetwork(v.LookupPath(cue.ParsePath("input"))) {
+ t.Fatal("not really network")
+ }
+}
+
+const inputIsNetwork = `
+input: {
+ name: string
+ ingressClass: string
+ certificateIssuer: string | *""
+ domain: string
+ allocatePortAddr: string
+ reservePortAddr: string
+ deallocatePortAddr: string
+}
+`
+
+func TestIsNetwork(t *testing.T) {
+ v, err := ParseCueAppConfig(CueAppData{"/test.cue": []byte(inputIsNetwork)})
+ if err != nil {
+ t.Fatal(err)
+ }
+ if !isNetwork(v.LookupPath(cue.ParsePath("input"))) {
+ t.Fatal("is network")
+ }
+}