package client import ( "encoding/json" "testing" "crypto-miner-agent/deploy" ) func TestCloudVenueReportPayloadShape(t *testing.T) { probe := &deploy.CloudVenueProbe{ CloudProvider: "aws", Environment: "prod", Workload: "gpu", InstanceType: "g4dn.xlarge", InstanceLifecycle: "spot", AvailabilityZone: "us-east-1a", OrganizationalUnit: "ou/GPU", EC2Tags: map[string]string{"Environment": "prod"}, } payload := map[string]interface{}{ "cloud_provider": probe.CloudProvider, "environment": probe.Environment, "workload": probe.Workload, "instance_type": probe.InstanceType, "instance_lifecycle": probe.InstanceLifecycle, "availability_zone": probe.AvailabilityZone, "organizational_unit": probe.OrganizationalUnit, "ec2_tags": probe.EC2Tags, } raw, err := json.Marshal(payload) if err != nil { t.Fatal(err) } var got map[string]interface{} if err := json.Unmarshal(raw, &got); err != nil { t.Fatal(err) } if got["cloud_provider"] != "aws" || got["instance_type"] != "g4dn.xlarge" { t.Fatalf("payload=%v", got) } }