package exec

import (
	"encoding/json"
	"testing"
)

func TestSkillRepositoriesKeepsFrozenWireKey(t *testing.T) {
	input := `{"canonical":{"name":"a.sk","repoFullName":"usr/a.sk"}}`
	var repos skillRepositories
	if err := json.Unmarshal([]byte(input), &repos); err != nil {
		t.Fatal(err)
	}
	if repos.Primary == nil || repos.Primary.RepoFullName != "usr/a.sk" {
		t.Fatalf("canonical payload must populate the primary field: %+v", repos)
	}
	out, err := json.Marshal(repos)
	if err != nil {
		t.Fatal(err)
	}
	var round map[string]any
	if err := json.Unmarshal(out, &round); err != nil {
		t.Fatal(err)
	}
	if round["canonical"] == nil {
		t.Fatalf("frozen canonical key missing: %v", round)
	}
	if _, ok := round["primary"]; ok {
		t.Fatalf("unexpected primary protocol key: %v", round)
	}
}
