kubeform.dev/terraform-backend-sdk@v0.0.0-20220310143633-45f07fe731c5/backend/remote/backend_state_test.go (about)

     1  package remote
     2  
     3  import (
     4  	"bytes"
     5  	"os"
     6  	"testing"
     7  
     8  	"kubeform.dev/terraform-backend-sdk/backend"
     9  	"kubeform.dev/terraform-backend-sdk/states"
    10  	"kubeform.dev/terraform-backend-sdk/states/remote"
    11  	"kubeform.dev/terraform-backend-sdk/states/statefile"
    12  )
    13  
    14  func TestRemoteClient_impl(t *testing.T) {
    15  	var _ remote.Client = new(remoteClient)
    16  }
    17  
    18  func TestRemoteClient(t *testing.T) {
    19  	client := testRemoteClient(t)
    20  	remote.TestClient(t, client)
    21  }
    22  
    23  func TestRemoteClient_stateLock(t *testing.T) {
    24  	b, bCleanup := testBackendDefault(t)
    25  	defer bCleanup()
    26  
    27  	s1, err := b.StateMgr(backend.DefaultStateName)
    28  	if err != nil {
    29  		t.Fatalf("expected no error, got %v", err)
    30  	}
    31  
    32  	s2, err := b.StateMgr(backend.DefaultStateName)
    33  	if err != nil {
    34  		t.Fatalf("expected no error, got %v", err)
    35  	}
    36  
    37  	remote.TestRemoteLocks(t, s1.(*remote.State).Client, s2.(*remote.State).Client)
    38  }
    39  
    40  func TestRemoteClient_withRunID(t *testing.T) {
    41  	// Set the TFE_RUN_ID environment variable before creating the client!
    42  	if err := os.Setenv("TFE_RUN_ID", generateID("run-")); err != nil {
    43  		t.Fatalf("error setting env var TFE_RUN_ID: %v", err)
    44  	}
    45  
    46  	// Create a new test client.
    47  	client := testRemoteClient(t)
    48  
    49  	// Create a new empty state.
    50  	sf := statefile.New(states.NewState(), "", 0)
    51  	var buf bytes.Buffer
    52  	statefile.Write(sf, &buf)
    53  
    54  	// Store the new state to verify (this will be done
    55  	// by the mock that is used) that the run ID is set.
    56  	if err := client.Put(buf.Bytes()); err != nil {
    57  		t.Fatalf("expected no error, got %v", err)
    58  	}
    59  }