Assisted-by: GLM 5.3 Flash
This commit is contained in:
@@ -6,6 +6,8 @@ package interpres
|
||||
import (
|
||||
"errors"
|
||||
"math"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
@@ -726,3 +728,48 @@ func TestParseNestingLimit(t *testing.T) {
|
||||
t.Errorf("Msg = %q, want it to name the nesting limit", se.Msg)
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseFile(t *testing.T) {
|
||||
path := filepath.Join(t.TempDir(), "config.toml")
|
||||
if err := os.WriteFile(path, []byte("port = 8080\n"), 0o644); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
doc, err := ParseFile(path)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if got := doc.Map()["port"]; got != int64(8080) {
|
||||
t.Errorf("port = %v, want 8080", got)
|
||||
}
|
||||
|
||||
_, err = ParseFile(filepath.Join(t.TempDir(), "missing.toml"))
|
||||
if err == nil || !strings.Contains(err.Error(), "missing.toml") {
|
||||
t.Errorf("read error = %v, want it to name the file", err)
|
||||
}
|
||||
|
||||
bad := filepath.Join(t.TempDir(), "broken.toml")
|
||||
if err := os.WriteFile(bad, []byte("port =\n"), 0o644); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
_, err = ParseFile(bad)
|
||||
if err == nil || !strings.Contains(err.Error(), "broken.toml") {
|
||||
t.Errorf("parse error = %v, want it to name the file", err)
|
||||
}
|
||||
s, ok := errors.AsType[*SyntaxError](err)
|
||||
if !ok || s.Line != 1 {
|
||||
t.Errorf("parse error = %v, want a SyntaxError with line 1 inside", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestValid(t *testing.T) {
|
||||
if err := Valid([]byte("a = 1\n[t]\nb = 2\n")); err != nil {
|
||||
t.Errorf("Valid(valid) = %v, want nil", err)
|
||||
}
|
||||
err := Valid([]byte("a = \n"))
|
||||
if err == nil {
|
||||
t.Fatal("Valid(invalid) = nil, want an error")
|
||||
}
|
||||
if _, ok := errors.AsType[*SyntaxError](err); !ok {
|
||||
t.Errorf("Valid(invalid) = %v, want a SyntaxError", err)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user