mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-05-06 16:16:26 +00:00
83 lines
2.3 KiB
Go
83 lines
2.3 KiB
Go
package main
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/base64"
|
|
"testing"
|
|
|
|
"github.com/rcourtman/pulse-go-rewrite/pkg/server"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestVersionCmd(t *testing.T) {
|
|
oldVersion := Version
|
|
oldBuildTime := BuildTime
|
|
oldGitCommit := GitCommit
|
|
defer func() {
|
|
Version = oldVersion
|
|
BuildTime = oldBuildTime
|
|
GitCommit = oldGitCommit
|
|
}()
|
|
|
|
Version = "1.2.3"
|
|
BuildTime = "2023-01-01"
|
|
GitCommit = "abcdef"
|
|
|
|
output := captureOutput(func() {
|
|
cmd := newProgram(newTestCLIEnv(), newTestCLIProcess(), newTestMockFS()).RootCommand()
|
|
cmd.SetArgs([]string{"version"})
|
|
_ = cmd.Execute()
|
|
})
|
|
|
|
assert.Contains(t, output, "Pulse 1.2.3")
|
|
assert.Contains(t, output, "Built: 2023-01-01")
|
|
assert.Contains(t, output, "Commit: abcdef")
|
|
|
|
BuildTime = "unknown"
|
|
GitCommit = "unknown"
|
|
output = captureOutput(func() {
|
|
cmd := newProgram(newTestCLIEnv(), newTestCLIProcess(), newTestMockFS()).RootCommand()
|
|
cmd.SetArgs([]string{"version"})
|
|
_ = cmd.Execute()
|
|
})
|
|
assert.Contains(t, output, "Pulse 1.2.3")
|
|
assert.NotContains(t, output, "Built:")
|
|
assert.NotContains(t, output, "Commit:")
|
|
}
|
|
|
|
func TestNormalizeImportPayload(t *testing.T) {
|
|
_, err := server.NormalizeImportPayload([]byte(" "))
|
|
assert.Error(t, err)
|
|
assert.Contains(t, err.Error(), "configuration payload is empty")
|
|
|
|
s, err := server.NormalizeImportPayload([]byte(" ISE= "))
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, "ISE=", s)
|
|
|
|
s, err = server.NormalizeImportPayload([]byte(" dGVzdA== "))
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, "test", s)
|
|
|
|
s, err = server.NormalizeImportPayload([]byte("!!"))
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, base64.StdEncoding.EncodeToString([]byte("!!")), s)
|
|
}
|
|
|
|
func TestResolveMetricsPortFromEnvPrefersPrefixedOverride(t *testing.T) {
|
|
t.Setenv("PULSE_METRICS_PORT", "0")
|
|
t.Setenv("METRICS_PORT", "9091")
|
|
|
|
if got := server.ResolveMetricsPortFromEnv(nil, 7655); got != 0 {
|
|
t.Fatalf("ResolveMetricsPortFromEnv() = %d, want 0", got)
|
|
}
|
|
}
|
|
|
|
func TestResolveMetricsPortFromEnvFallsBackOnInvalidValue(t *testing.T) {
|
|
t.Setenv("PULSE_METRICS_PORT", "not-a-port")
|
|
|
|
var stderr bytes.Buffer
|
|
if got := server.ResolveMetricsPortFromEnv(&stderr, 9091); got != 9091 {
|
|
t.Fatalf("ResolveMetricsPortFromEnv() = %d, want fallback 9091", got)
|
|
}
|
|
assert.Contains(t, stderr.String(), "Ignoring invalid PULSE_METRICS_PORT value")
|
|
}
|