Preserve INFO severity for signal-cli stderr

This commit is contained in:
ziggy 2026-07-10 18:16:19 +03:00
parent 1a43bdaca5
commit 090432e596
2 changed files with 26 additions and 5 deletions

View File

@ -55,10 +55,25 @@ func classifySignalCliOutput(stdout string, stderr string) (string, string, stri
output, infoMessages, warnMessages := stripInfoAndWarnMessages(stdout)
stderr = strings.TrimSpace(stderr)
if stderr != "" {
if warnMessages != "" {
warnMessages += "\n"
stderrOutput, stderrInfoMessages, stderrWarnMessages := stripInfoAndWarnMessages(stderr)
if stderrInfoMessages != "" {
if infoMessages != "" {
infoMessages += "\n"
}
infoMessages += stderrInfoMessages
}
if stderrWarnMessages != "" {
if warnMessages != "" {
warnMessages += "\n"
}
warnMessages += stderrWarnMessages
}
if stderrOutput != "" {
if warnMessages != "" {
warnMessages += "\n"
}
warnMessages += stderrOutput
}
warnMessages += stderr
}
return output, infoMessages, warnMessages
}

View File

@ -7,13 +7,19 @@ import (
func TestClassifySignalCliOutputKeepsStderrOutOfResponse(t *testing.T) {
stdout := "{\"account\":\"+380000000001\"}\n"
stderr := "WARN IncomingMessageHandler - Invalid content! reason\njava.lang.Throwable\n\tat example"
stderr := "INFO Manager - Routine status\nWARN IncomingMessageHandler - Invalid content! reason\njava.lang.Throwable\n\tat example"
output, _, warnings := classifySignalCliOutput(stdout, stderr)
output, infos, warnings := classifySignalCliOutput(stdout, stderr)
if output != strings.TrimSpace(stdout) {
t.Fatalf("got output %q, wanted %q", output, strings.TrimSpace(stdout))
}
if !strings.Contains(infos, "INFO Manager - Routine status") {
t.Fatalf("INFO stderr was not preserved at INFO severity: %q", infos)
}
if strings.Contains(warnings, "INFO Manager - Routine status") {
t.Fatalf("INFO stderr was promoted to warning severity: %q", warnings)
}
if !strings.Contains(warnings, "Invalid content! reason") || !strings.Contains(warnings, "java.lang.Throwable") {
t.Fatalf("warnings did not preserve stderr: %q", warnings)
}