54 lines
1.1 KiB
Go
54 lines
1.1 KiB
Go
package config
|
|
|
|
import "maps"
|
|
import "testing"
|
|
|
|
func TestDiffValueMapsNone (test *testing.T) {
|
|
str := `
|
|
thing = something
|
|
|
|
otherThing = otherValue
|
|
# comment
|
|
otherThing = true
|
|
otherThing = 234
|
|
|
|
yetAnotherThing = 0.23498
|
|
`
|
|
file1 := parseFileString(test, str)
|
|
file2 := parseFileString(test, str)
|
|
diff := diffValueMaps(file1.Map(), file2.Map())
|
|
if len(diff) != 0 {
|
|
test.Fatalf("diff not empty:\n%v", diff)
|
|
}
|
|
}
|
|
|
|
func TestDiffValueMaps (test *testing.T) {
|
|
file1 := parseFileString(test,
|
|
`key4=0
|
|
key1=value1
|
|
# comment
|
|
key2=34`)
|
|
file2 := parseFileString(test,
|
|
`key1=value2
|
|
key2=34
|
|
# comment
|
|
|
|
key3=0.2`)
|
|
diff := diffValueMaps(file1.Map(), file2.Map())
|
|
correct := map[string] struct { } {
|
|
"key1": struct { } { },
|
|
"key3": struct { } { },
|
|
"key4": struct { } { },
|
|
}
|
|
if !maps.Equal(diff, correct) {
|
|
test.Error("diffs do not match")
|
|
test.Errorf("EXPECTED:\n%v", correct)
|
|
test.Errorf("GOT:\n%v", diff)
|
|
test.Fail()
|
|
}
|
|
}
|
|
|
|
// TODO we need way more tests!
|
|
// need to test watching files. maybe make a temp dir and do it there. remember
|
|
// to defer cleaning up the dir and closing of the config.
|