package app

import "testing"

func TestServiceInstallationIsBuiltin(t *testing.T) {
	t.Parallel()

	tests := []struct {
		name     string
		metadata string
		want     bool
	}{
		{name: "trusted builtin marker", metadata: `{"builtin":true,"identity":"agentteam.approval"}`, want: true},
		{name: "string true is not a trusted marker", metadata: `{"builtin":"true"}`, want: false},
		{name: "user installed app", metadata: `{"builtin":false}`, want: false},
		{name: "missing marker", metadata: `{"identity":"customer.app"}`, want: false},
		{name: "invalid metadata", metadata: `{`, want: false},
		{name: "empty metadata", metadata: "", want: false},
	}

	for _, test := range tests {
		t.Run(test.name, func(t *testing.T) {
			t.Parallel()
			if got := serviceInstallationIsBuiltin([]byte(test.metadata)); got != test.want {
				t.Fatalf("serviceInstallationIsBuiltin(%q) = %v, want %v", test.metadata, got, test.want)
			}
		})
	}
}
