blob: 6b7bf962d7ac0c475ce13442f76282cd87312e8b [file]
// Copyright IBM Corp. 2014, 2026
// SPDX-License-Identifier: BUSL-1.1
package remote
import (
"testing"
"github.com/hashicorp/terraform/internal/policy"
)
func TestRemotePolicyEntitlement(t *testing.T) {
tests := []struct {
name string
b *Remote
want *policy.Entitlement
}{
{
name: "nil backend",
b: nil,
want: nil,
},
{
name: "complete triple",
b: &Remote{hostname: "app.terraform.io", organization: "hashicorp", resolvedToken: "secret"},
want: &policy.Entitlement{Host: "app.terraform.io", Token: "secret", Org: "hashicorp"},
},
{
name: "missing host",
b: &Remote{organization: "hashicorp", resolvedToken: "secret"},
want: nil,
},
{
name: "missing organization",
b: &Remote{hostname: "app.terraform.io", resolvedToken: "secret"},
want: nil,
},
{
name: "missing token",
b: &Remote{hostname: "app.terraform.io", organization: "hashicorp"},
want: nil,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := tt.b.PolicyEntitlement()
if tt.want == nil {
if got != nil {
t.Fatalf("expected nil entitlement, got %+v", got)
}
return
}
if got == nil {
t.Fatal("expected entitlement, got nil")
}
if *got != *tt.want {
t.Fatalf("unexpected entitlement: got %+v, want %+v", *got, *tt.want)
}
})
}
}