// Copyright IBM Corp. 2014, 2026 // SPDX-License-Identifier: BUSL-1.1 package convert import ( "fmt" "testing" "github.com/hashicorp/terraform/internal/providers" proto "github.com/hashicorp/terraform/internal/tfplugin6" ) func TestProtoDeferred(t *testing.T) { testCases := []struct { reason proto.Deferred_Reason expected providers.DeferredReason }{ { reason: proto.Deferred_UNKNOWN, expected: providers.DeferredReasonInvalid, }, { reason: proto.Deferred_RESOURCE_CONFIG_UNKNOWN, expected: providers.DeferredReasonResourceConfigUnknown, }, { reason: proto.Deferred_PROVIDER_CONFIG_UNKNOWN, expected: providers.DeferredReasonProviderConfigUnknown, }, { reason: proto.Deferred_ABSENT_PREREQ, expected: providers.DeferredReasonAbsentPrereq, }, } for _, tc := range testCases { t.Run(fmt.Sprintf("deferred reason %q", tc.reason.String()), func(t *testing.T) { d := &proto.Deferred{ Reason: tc.reason, } deferred := ProtoToDeferred(d) if deferred.Reason != providers.DeferredReason(tc.expected) { t.Fatalf("expected %q, got %q", tc.expected, deferred.Reason) } }) } } func TestProtoDeferred_Nil(t *testing.T) { deferred := ProtoToDeferred(nil) if deferred != nil { t.Fatalf("expected nil, got %v", deferred) } }