mirror of
https://github.com/opentofu/opentofu.git
synced 2024-12-26 17:01:04 -06:00
471dd479e8
These changes include additions to fulfill the interface for the client mock, plus moving all that logic (which needn't be duplicated across both the remote and cloud packages) over to the cloud package under a dedicated mock client file.
61 lines
1.5 KiB
Go
61 lines
1.5 KiB
Go
package remote
|
|
|
|
import (
|
|
"bytes"
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/hashicorp/terraform/internal/backend"
|
|
"github.com/hashicorp/terraform/internal/cloud"
|
|
"github.com/hashicorp/terraform/internal/states"
|
|
"github.com/hashicorp/terraform/internal/states/remote"
|
|
"github.com/hashicorp/terraform/internal/states/statefile"
|
|
)
|
|
|
|
func TestRemoteClient_impl(t *testing.T) {
|
|
var _ remote.Client = new(remoteClient)
|
|
}
|
|
|
|
func TestRemoteClient(t *testing.T) {
|
|
client := testRemoteClient(t)
|
|
remote.TestClient(t, client)
|
|
}
|
|
|
|
func TestRemoteClient_stateLock(t *testing.T) {
|
|
b, bCleanup := testBackendDefault(t)
|
|
defer bCleanup()
|
|
|
|
s1, err := b.StateMgr(backend.DefaultStateName)
|
|
if err != nil {
|
|
t.Fatalf("expected no error, got %v", err)
|
|
}
|
|
|
|
s2, err := b.StateMgr(backend.DefaultStateName)
|
|
if err != nil {
|
|
t.Fatalf("expected no error, got %v", err)
|
|
}
|
|
|
|
remote.TestRemoteLocks(t, s1.(*remote.State).Client, s2.(*remote.State).Client)
|
|
}
|
|
|
|
func TestRemoteClient_withRunID(t *testing.T) {
|
|
// Set the TFE_RUN_ID environment variable before creating the client!
|
|
if err := os.Setenv("TFE_RUN_ID", cloud.GenerateID("run-")); err != nil {
|
|
t.Fatalf("error setting env var TFE_RUN_ID: %v", err)
|
|
}
|
|
|
|
// Create a new test client.
|
|
client := testRemoteClient(t)
|
|
|
|
// Create a new empty state.
|
|
sf := statefile.New(states.NewState(), "", 0)
|
|
var buf bytes.Buffer
|
|
statefile.Write(sf, &buf)
|
|
|
|
// Store the new state to verify (this will be done
|
|
// by the mock that is used) that the run ID is set.
|
|
if err := client.Put(buf.Bytes()); err != nil {
|
|
t.Fatalf("expected no error, got %v", err)
|
|
}
|
|
}
|