feat: allow custom QR login output

This commit is contained in:
2026-07-20 11:00:13 +08:00
parent 378ee865e7
commit 88df3149be
3 changed files with 59 additions and 0 deletions
+29
View File
@@ -12,12 +12,41 @@ import (
"net/http/cookiejar"
"net/http/httptest"
"net/url"
"os"
"strings"
"sync"
"testing"
"time"
)
func TestWithQRWriter(t *testing.T) {
var output bytes.Buffer
client, err := NewClient(t.TempDir(), WithQRWriter(&output))
if err != nil {
t.Fatal(err)
}
if client.qrWriter != &output {
t.Fatalf("qrWriter = %v, want custom writer", client.qrWriter)
}
}
func TestWithQRWriterRejectsNil(t *testing.T) {
_, err := NewClient(t.TempDir(), WithQRWriter(nil))
if err == nil || err.Error() != "QR writer must not be nil" {
t.Fatalf("error = %v, want QR writer must not be nil", err)
}
}
func TestDefaultQRWriterIsStdout(t *testing.T) {
client, err := NewClient(t.TempDir())
if err != nil {
t.Fatal(err)
}
if client.qrWriter != os.Stdout {
t.Fatalf("qrWriter = %v, want os.Stdout", client.qrWriter)
}
}
func TestRequestEncryptedPostAndPlainResponse(t *testing.T) {
var received url.Values
handlerErrors := make(chan error, 1)