Эх сурвалжийг харах

配置文件存储方式修改为 先进行安全存储,如果异常则直接进行存储,如果还异常则返回 err

fly 1 жил өмнө
parent
commit
19e1a4b8ee

+ 5 - 1
config/config.go

@@ -28,7 +28,11 @@ func Load() error {
 }
 
 func Store() error {
-	return viper.SafeWriteConfig()
+	err := viper.SafeWriteConfig()
+	if err != nil {
+		err = viper.WriteConfig()
+	}
+	return err
 }
 
 func Register(module string, key string, value any) {

+ 19 - 2
config/config_test.go

@@ -51,12 +51,29 @@ func TestSetConfigInfo(t *testing.T) {
 			SetConfigInfo(tt.args.name, tt.args.config, tt.args.path)
 			Register("http", "baseUrl", "http://192.168.0.141:8080")
 			Register("mqtt", "host", "http://192.168.0.141:8080")
-			Register("sensor", "uart.port", "/dev/ttyS2")
+			Register("sensor", "uart.port", "/dada/ttyS2")
 			Register("sensor", "points", []byte{0, 1, 2, 3, 4, 5, 6})
 			Register("sensor", "key", 3)
-			Set("sensor", "test", 999)
+			Set("sensor", "test", 5469)
 			Store()
 
 		})
 	}
 }
+
+func TestStore(t *testing.T) {
+	tests := []struct {
+		name    string
+		wantErr bool
+	}{
+		// TODO: Add test cases.
+		{name: "test", wantErr: false},
+	}
+	for _, tt := range tests {
+		t.Run(tt.name, func(t *testing.T) {
+			if err := Store(); (err != nil) != tt.wantErr {
+				t.Errorf("Store() error = %v, wantErr %v", err, tt.wantErr)
+			}
+		})
+	}
+}

+ 5 - 1
config/object.go

@@ -33,7 +33,11 @@ func (c *config) Load() error {
 }
 
 func (c *config) Store() error {
-	return c.Viper.SafeWriteConfig()
+	err := viper.SafeWriteConfig()
+	if err != nil {
+		err = viper.WriteConfig()
+	}
+	return err
 }
 
 func (c *config) Register(module, key string, value any) {