working on valuemonitor

This commit is contained in:
2026-08-17 09:49:50 -04:00
parent 5083d3911b
commit 3d14359832
5 changed files with 377 additions and 14 deletions
+39
View File
@@ -0,0 +1,39 @@
package settings
import (
"fmt"
"os"
"testing"
)
func TestStringValueMonitor(t *testing.T) {
key, value := "my key to monitor", "first value"
monitor, err := NewValueMonitor(TheSettings, key, func(s string) (string, error) { return value, nil })
if err != nil {
t.Fatalf("error opening new value monitor: %v\n", err)
}
if want, got := value, monitor.GetValue(); want != got {
t.Fatalf("error: wanted %q; got %q\n", want, got)
}
value = "second value"
TheSettings.SetKeyValue(key, value)
if want, got := value, monitor.GetValue(); want != got {
t.Fatalf("error: wanted %q; got %q\n", want, got)
}
value = "third value"
f, err := os.OpenFile(TheSettings.GetFilename(), os.O_APPEND|os.O_WRONLY, 0664)
if err != nil {
t.Fatalf("error opening file writer to append settings: %v\n", err)
}
_, err = f.WriteString(fmt.Sprintf("\n%s=%s\n", key, value))
if err != nil {
t.Fatalf("error appending to file: %v\n", err)
}
err = TheSettings.Update()
if err != nil {
t.Fatalf("error updating the settings: %v\n", err)
}
if want, got := value, monitor.GetValue(); want != got {
t.Fatalf("error: wanted %q; got %q\n", want, got)
}
}