billing-service/internal/config/config_test.go
Haitao Pan 78255baec1
Codex/multi node billing ingestion (#4)
* feat: add multi-source billing ingestion

* Move release traceability workflow logic into scripts

* feat: release traceability

---------

Co-authored-by: Haitao Pan <manbuzhe2009@qq.com>
2026-04-12 15:44:42 +08:00

53 lines
1.9 KiB
Go

package config
import "testing"
func TestLoadExporterSourcesFromJSON(t *testing.T) {
sources, err := loadExporterSources("", `[{"source_id":"jp","base_url":"https://jp-xhttp-contabo.svc.plus","expected_node_id":"jp-xhttp-contabo.svc.plus","expected_env":"prod","enabled":true,"timeout_seconds":20}]`)
if err != nil {
t.Fatalf("load sources: %v", err)
}
if len(sources) != 1 {
t.Fatalf("expected 1 source, got %d", len(sources))
}
if sources[0].SourceID != "jp" || sources[0].BaseURL != "https://jp-xhttp-contabo.svc.plus" {
t.Fatalf("unexpected source %#v", sources[0])
}
if sources[0].TimeoutSeconds != 20 {
t.Fatalf("expected timeout 20, got %d", sources[0].TimeoutSeconds)
}
}
func TestLoadExporterSourcesFallsBackToLegacyBaseURL(t *testing.T) {
sources, err := loadExporterSources("http://127.0.0.1:8080", "")
if err != nil {
t.Fatalf("load legacy source: %v", err)
}
if len(sources) != 1 {
t.Fatalf("expected 1 source, got %d", len(sources))
}
if sources[0].SourceID != "default" || sources[0].BaseURL != "http://127.0.0.1:8080" {
t.Fatalf("unexpected source %#v", sources[0])
}
}
func TestParseImageRefWithFullShaTag(t *testing.T) {
tag, commit, version := parseImageRef("registry.example.com/billing-service:sha-0123456789abcdef0123456789abcdef01234567")
if tag != "sha-0123456789abcdef0123456789abcdef01234567" {
t.Fatalf("unexpected tag %q", tag)
}
if commit != "0123456789abcdef0123456789abcdef01234567" {
t.Fatalf("unexpected commit %q", commit)
}
if version != commit {
t.Fatalf("expected version to equal commit, got %q vs %q", version, commit)
}
}
func TestParseImageRefRejectsIncompleteSha(t *testing.T) {
tag, commit, version := parseImageRef("registry.example.com/billing-service:sha-1234")
if tag != "sha-1234" || commit != "" || version != "" {
t.Fatalf("expected partial parse failure, got tag=%q commit=%q version=%q", tag, commit, version)
}
}