33 lines
916 B
Go
33 lines
916 B
Go
package cli
|
|
|
|
import (
|
|
"bytes"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/smallnest/pigo/internal/provider"
|
|
)
|
|
|
|
// TestPrintProviderHelp verifies the --help "Supported providers" block is
|
|
// derived from the registry: every built-in provider name, its env vars, and
|
|
// its protocol must appear, so the docs cannot silently drift from the code.
|
|
func TestPrintProviderHelp(t *testing.T) {
|
|
var buf bytes.Buffer
|
|
PrintProviderHelp(&buf)
|
|
out := buf.String()
|
|
|
|
for _, spec := range provider.ProviderSpecs() {
|
|
if !strings.Contains(out, spec.Name+":") {
|
|
t.Errorf("help output missing provider %q", spec.Name)
|
|
}
|
|
for _, env := range spec.EnvVars {
|
|
if !strings.Contains(out, env) {
|
|
t.Errorf("help output missing env var %q for provider %q", env, spec.Name)
|
|
}
|
|
}
|
|
if !strings.Contains(out, "["+spec.Protocol+"]") {
|
|
t.Errorf("help output missing protocol %q for provider %q", spec.Protocol, spec.Name)
|
|
}
|
|
}
|
|
}
|