Files
go-sip/internal/configread/saas_adjustments_test.go
T

55 lines
1.5 KiB
Go

package configread
import (
"encoding/json"
"os"
"testing"
"git.ipao.vip/rogee/go-sip/internal/contract"
)
func TestSIPOptionalRevisionAndCaseInsensitiveSelectors(t *testing.T) {
raw, err := os.ReadFile("../../contracts/schema/examples/config-read-sip.json")
if err != nil {
t.Fatal(err)
}
var sip map[string]any
if err := json.Unmarshal(raw, &sip); err != nil {
t.Fatal(err)
}
delete(sip, "revision")
for _, x := range sip["trunks"].([]any) {
tr := x.(map[string]any)
tr["transport"] = "UdP"
tr["auth_mode"] = "IP"
}
body, _ := json.Marshal(sip)
if err := contract.ValidateCurrent("config-read", body); err != nil {
t.Fatalf("optional revision/case-insensitive SIP rejected: %v", err)
}
}
func TestTaskDiscoveryIgnoresOnlyNamedLegacyMetadata(t *testing.T) {
raw, err := os.ReadFile("../../contracts/schema/examples/task-discovery-page.json")
if err != nil {
t.Fatal(err)
}
var page map[string]any
if err := json.Unmarshal(raw, &page); err != nil {
t.Fatal(err)
}
page["schema_version"] = map[string]any{"ignored": true}
for _, x := range page["tasks"].([]any) {
x.(map[string]any)["control_seq"] = nil
}
body, _ := json.Marshal(page)
if err := contract.ValidateCurrent("task-discovery", body); err != nil {
t.Fatalf("named metadata must be ignored: %v", err)
}
page["unexpected_business_field"] = true
body, _ = json.Marshal(page)
if err := contract.ValidateCurrent("task-discovery", body); err == nil {
t.Fatal("unrelated unknown fields must still be rejected")
}
}