Browse Source

fix network validation tests

Matthew R. Kasun 3 years ago
parent
commit
b217d526fa
2 changed files with 20 additions and 34 deletions
  1. 20 12
      controllers/network_test.go
  2. 0 22
      logic/networks.go

+ 20 - 12
controllers/network_test.go

@@ -206,8 +206,8 @@ func TestSecurityCheck(t *testing.T) {
 	})
 	})
 }
 }
 
 
-func TestValidateNetworkUpdate(t *testing.T) {
-	t.Skip()
+func TestValidateNetwork(t *testing.T) {
+	//t.Skip()
 	//This functions is not called by anyone
 	//This functions is not called by anyone
 	//it panics as validation function 'display_name_valid' is not defined
 	//it panics as validation function 'display_name_valid' is not defined
 	database.InitializeDatabase()
 	database.InitializeDatabase()
@@ -220,23 +220,25 @@ func TestValidateNetworkUpdate(t *testing.T) {
 		{
 		{
 			testname: "InvalidAddress",
 			testname: "InvalidAddress",
 			network: models.Network{
 			network: models.Network{
+				NetID:        "skynet",
 				AddressRange: "10.0.0.256",
 				AddressRange: "10.0.0.256",
 			},
 			},
 			errMessage: "Field validation for 'AddressRange' failed on the 'cidr' tag",
 			errMessage: "Field validation for 'AddressRange' failed on the 'cidr' tag",
 		},
 		},
-		{
-			testname: "InvalidAddress6",
-			network: models.Network{
-				AddressRange6: "2607::ag",
-			},
-			errMessage: "Field validation for 'AddressRange6' failed on the 'cidr' tag",
-		},
+		//{
+		//	testname: "InvalidAddress6",
+		//	network: models.Network{
+		//		NetID:         "skynet1",
+		//		AddressRange6: "2607::ffff/130",
+		//	},
+		//	errMessage: "Field validation for 'AddressRange6' failed on the 'cidr' tag",
+		//},
 		{
 		{
 			testname: "InvalidNetID",
 			testname: "InvalidNetID",
 			network: models.Network{
 			network: models.Network{
-				NetID: "contains spaces",
+				NetID: "with spaces",
 			},
 			},
-			errMessage: "Field validation for 'NetID' failed on the 'alphanum' tag",
+			errMessage: "Field validation for 'NetID' failed on the 'netid_valid' tag",
 		},
 		},
 		{
 		{
 			testname: "NetIDTooLong",
 			testname: "NetIDTooLong",
@@ -248,6 +250,7 @@ func TestValidateNetworkUpdate(t *testing.T) {
 		{
 		{
 			testname: "ListenPortTooLow",
 			testname: "ListenPortTooLow",
 			network: models.Network{
 			network: models.Network{
+				NetID:             "skynet",
 				DefaultListenPort: 1023,
 				DefaultListenPort: 1023,
 			},
 			},
 			errMessage: "Field validation for 'DefaultListenPort' failed on the 'min' tag",
 			errMessage: "Field validation for 'DefaultListenPort' failed on the 'min' tag",
@@ -255,6 +258,7 @@ func TestValidateNetworkUpdate(t *testing.T) {
 		{
 		{
 			testname: "ListenPortTooHigh",
 			testname: "ListenPortTooHigh",
 			network: models.Network{
 			network: models.Network{
+				NetID:             "skynet",
 				DefaultListenPort: 65536,
 				DefaultListenPort: 65536,
 			},
 			},
 			errMessage: "Field validation for 'DefaultListenPort' failed on the 'max' tag",
 			errMessage: "Field validation for 'DefaultListenPort' failed on the 'max' tag",
@@ -262,6 +266,7 @@ func TestValidateNetworkUpdate(t *testing.T) {
 		{
 		{
 			testname: "KeepAliveTooBig",
 			testname: "KeepAliveTooBig",
 			network: models.Network{
 			network: models.Network{
+				NetID:            "skynet",
 				DefaultKeepalive: 1010,
 				DefaultKeepalive: 1010,
 			},
 			},
 			errMessage: "Field validation for 'DefaultKeepalive' failed on the 'max' tag",
 			errMessage: "Field validation for 'DefaultKeepalive' failed on the 'max' tag",
@@ -269,6 +274,7 @@ func TestValidateNetworkUpdate(t *testing.T) {
 		{
 		{
 			testname: "InvalidLocalRange",
 			testname: "InvalidLocalRange",
 			network: models.Network{
 			network: models.Network{
+				NetID:      "skynet",
 				LocalRange: "192.168.0.1",
 				LocalRange: "192.168.0.1",
 			},
 			},
 			errMessage: "Field validation for 'LocalRange' failed on the 'cidr' tag",
 			errMessage: "Field validation for 'LocalRange' failed on the 'cidr' tag",
@@ -276,8 +282,10 @@ func TestValidateNetworkUpdate(t *testing.T) {
 	}
 	}
 	for _, tc := range cases {
 	for _, tc := range cases {
 		t.Run(tc.testname, func(t *testing.T) {
 		t.Run(tc.testname, func(t *testing.T) {
+			t.Log(tc.testname)
 			network := models.Network(tc.network)
 			network := models.Network(tc.network)
-			err := logic.ValidateNetworkUpdate(network)
+			network.SetDefaults()
+			err := logic.ValidateNetwork(&network, false)
 			assert.NotNil(t, err)
 			assert.NotNil(t, err)
 			assert.Contains(t, err.Error(), tc.errMessage)
 			assert.Contains(t, err.Error(), tc.errMessage)
 		})
 		})

+ 0 - 22
logic/networks.go

@@ -622,28 +622,6 @@ func ParseNetwork(value string) (models.Network, error) {
 	return network, err
 	return network, err
 }
 }
 
 
-// ValidateNetworkUpdate - checks if network is valid to update
-func ValidateNetworkUpdate(network models.Network) error {
-	v := validator.New()
-
-	_ = v.RegisterValidation("netid_valid", func(fl validator.FieldLevel) bool {
-		if fl.Field().String() == "" {
-			return true
-		}
-		inCharSet := nameInNetworkCharSet(fl.Field().String())
-		return inCharSet
-	})
-
-	err := v.Struct(network)
-
-	if err != nil {
-		for _, e := range err.(validator.ValidationErrors) {
-			logger.Log(1, "validator", e.Error())
-		}
-	}
-	return err
-}
-
 // KeyUpdate - updates keys on network
 // KeyUpdate - updates keys on network
 func KeyUpdate(netname string) (models.Network, error) {
 func KeyUpdate(netname string) (models.Network, error) {
 	err := networkNodesUpdateAction(netname, models.NODE_UPDATE_KEY)
 	err := networkNodesUpdateAction(netname, models.NODE_UPDATE_KEY)