package terraform import ( "context" "encoding/json" "os" "path/filepath" "testing" "github.com/databricks/cli/bundle" "github.com/databricks/cli/bundle/deploy" "github.com/databricks/cli/libs/filer" "github.com/stretchr/testify/require" ) // identityFiler returns a FilerFactory that returns the specified filer. func identityFiler(f filer.Filer) deploy.FilerFactory { return func(_ *bundle.Bundle) (filer.Filer, error) { return f, nil } } func localStateFile(t *testing.T, ctx context.Context, b *bundle.Bundle) string { dir, err := Dir(ctx, b) require.NoError(t, err) return filepath.Join(dir, TerraformStateFileName) } func readLocalState(t *testing.T, ctx context.Context, b *bundle.Bundle) map[string]any { f, err := os.Open(localStateFile(t, ctx, b)) require.NoError(t, err) defer f.Close() var contents map[string]any dec := json.NewDecoder(f) err = dec.Decode(&contents) require.NoError(t, err) return contents } func writeLocalState(t *testing.T, ctx context.Context, b *bundle.Bundle, contents map[string]any) { f, err := os.Create(localStateFile(t, ctx, b)) require.NoError(t, err) defer f.Close() enc := json.NewEncoder(f) err = enc.Encode(contents) require.NoError(t, err) }