package services

import (
	"testing"

	"github.com/nexuscrm/shared/pkg/models"
)

func TestApprovalRecordFromModelStripsInternalMetadata(t *testing.T) {
	record := models.SObject{
		"Id":                           "approval-1",
		models.ExactDecimalMetadataKey: map[string]string{"Amount": "12.5000"},
		"attributes":                   map[string]interface{}{"type": "Approval"},
	}
	models.StampObjectType(record, "Approval")

	got := approvalRecordFromModel(record)
	if got["Id"] != "approval-1" {
		t.Fatalf("Id = %#v", got["Id"])
	}
	if _, ok := got[models.ExactDecimalMetadataKey]; ok {
		t.Fatalf("exact decimal metadata leaked: %#v", got)
	}
	if _, ok := got["attributes"]; ok {
		t.Fatalf("wire attributes leaked: %#v", got)
	}
	if got[models.ObjectTypeMetadataKey] != "Approval" {
		t.Fatalf("object type = %#v", got[models.ObjectTypeMetadataKey])
	}
}
