mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-04-30 04:20:20 +00:00
87 lines
2.4 KiB
Go
87 lines
2.4 KiB
Go
package main
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/rcourtman/pulse-go-rewrite/internal/dockeragent"
|
|
)
|
|
|
|
func TestParseTargetSpec(t *testing.T) {
|
|
target, err := parseTargetSpec("https://pulse.example.com|abc123|true")
|
|
if err != nil {
|
|
t.Fatalf("parseTargetSpec returned error: %v", err)
|
|
}
|
|
|
|
if target.URL != "https://pulse.example.com" {
|
|
t.Fatalf("expected URL https://pulse.example.com, got %q", target.URL)
|
|
}
|
|
if target.Token != "abc123" {
|
|
t.Fatalf("expected token abc123, got %q", target.Token)
|
|
}
|
|
if !target.InsecureSkipVerify {
|
|
t.Fatalf("expected insecure flag true")
|
|
}
|
|
}
|
|
|
|
func TestParseTargetSpecDefaults(t *testing.T) {
|
|
target, err := parseTargetSpec(" https://pulse.example.com | token456 ")
|
|
if err != nil {
|
|
t.Fatalf("parseTargetSpec returned error: %v", err)
|
|
}
|
|
|
|
if target.URL != "https://pulse.example.com" {
|
|
t.Fatalf("expected URL https://pulse.example.com, got %q", target.URL)
|
|
}
|
|
if target.Token != "token456" {
|
|
t.Fatalf("expected token token456, got %q", target.Token)
|
|
}
|
|
if target.InsecureSkipVerify {
|
|
t.Fatalf("expected insecure flag false")
|
|
}
|
|
}
|
|
|
|
func TestParseTargetSpecInvalid(t *testing.T) {
|
|
if _, err := parseTargetSpec("https://pulse.example.com"); err == nil {
|
|
t.Fatalf("expected error for missing token")
|
|
}
|
|
if _, err := parseTargetSpec("https://pulse.example.com|token|maybe"); err == nil {
|
|
t.Fatalf("expected error for invalid insecure flag")
|
|
}
|
|
}
|
|
|
|
func TestParseTargetSpecsSkipsBlanks(t *testing.T) {
|
|
specs, err := parseTargetSpecs([]string{"https://a|tokenA", " ", "\n", "https://b|tokenB|true"})
|
|
if err != nil {
|
|
t.Fatalf("parseTargetSpecs returned error: %v", err)
|
|
}
|
|
|
|
if len(specs) != 2 {
|
|
t.Fatalf("expected 2 targets, got %d", len(specs))
|
|
}
|
|
|
|
expected := []dockeragent.TargetConfig{
|
|
{URL: "https://a", Token: "tokenA", InsecureSkipVerify: false},
|
|
{URL: "https://b", Token: "tokenB", InsecureSkipVerify: true},
|
|
}
|
|
|
|
for i, target := range specs {
|
|
if target != expected[i] {
|
|
t.Fatalf("target %d mismatch: expected %+v, got %+v", i, expected[i], target)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestSplitTargetSpecs(t *testing.T) {
|
|
values := splitTargetSpecs("https://a|tokenA;https://b|tokenB\nhttps://c|tokenC")
|
|
expected := []string{"https://a|tokenA", "https://b|tokenB", "https://c|tokenC"}
|
|
|
|
if len(values) != len(expected) {
|
|
t.Fatalf("expected %d values, got %d", len(expected), len(values))
|
|
}
|
|
|
|
for i, v := range values {
|
|
if v != expected[i] {
|
|
t.Fatalf("value %d mismatch: expected %q, got %q", i, expected[i], v)
|
|
}
|
|
}
|
|
}
|