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 }