feat: usage example
Assisted-by: GLM 5.3 Flash
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
// Copyright (c) 2026 Petr Balvín <opensource@petrbalvin.org> (https://petrbalvin.org)
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestRunPrintsConfigAndMarshal(t *testing.T) {
|
||||
var stdout, stderr bytes.Buffer
|
||||
if code := Run(&stdout, &stderr); code != 0 {
|
||||
t.Fatalf("Run returned %d, stderr = %q", code, stderr.String())
|
||||
}
|
||||
got := stdout.String()
|
||||
for _, want := range []string{
|
||||
"title: interpres demo",
|
||||
"launched: 2024-11-04T09:00:00Z",
|
||||
"debug: false",
|
||||
"server: 127.0.0.1:9090",
|
||||
"user: petr",
|
||||
"admin=true",
|
||||
"admin=false",
|
||||
"--- marshal (group by kind, default) ---",
|
||||
`title = "interpres demo"`,
|
||||
"--- marshal (GroupByKind=false) ---",
|
||||
"[server]",
|
||||
"port = 9090",
|
||||
"[[users]]",
|
||||
"--- round-trip ---",
|
||||
} {
|
||||
if !strings.Contains(got, want) {
|
||||
t.Errorf("output missing %q\n----\n%s", want, got)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestRunMarshalerFieldRendersAsScalar(t *testing.T) {
|
||||
// The Port Marshaler hook returns a string, so the field becomes a
|
||||
// scalar "9000:9001" inside [srv] rather than an integer.
|
||||
var stdout, stderr bytes.Buffer
|
||||
if code := Run(&stdout, &stderr); code != 0 {
|
||||
t.Fatalf("Run returned %d, stderr = %q", code, stderr.String())
|
||||
}
|
||||
for _, want := range []string{
|
||||
`port = "9000:9001"`,
|
||||
`addr = "10.0.0.1:8080"`,
|
||||
`tag = "primary"`,
|
||||
} {
|
||||
if !strings.Contains(stdout.String(), want) {
|
||||
t.Errorf("output missing %q\n----\n%s", want, stdout.String())
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user