Files
opentf/internal/command/state_test.go
Andrei Ciobanu 8689efa1f1 Add backend view and migrate outputs (#3949)
Signed-off-by: Andrei Ciobanu <andrei.ciobanu@opentofu.org>
2026-03-30 15:35:09 +03:00

59 lines
1.5 KiB
Go

// Copyright (c) The OpenTofu Authors
// SPDX-License-Identifier: MPL-2.0
// Copyright (c) 2023 HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
package command
import (
"path/filepath"
"regexp"
"sort"
"testing"
"github.com/opentofu/opentofu/internal/command/arguments"
"github.com/opentofu/opentofu/internal/command/views"
"github.com/opentofu/opentofu/internal/command/workdir"
"github.com/opentofu/opentofu/internal/encryption"
"github.com/opentofu/opentofu/internal/states/statemgr"
)
// testStateBackups returns the list of backups in order of creation
// (oldest first) in the given directory.
func testStateBackups(t *testing.T, dir string) []string {
// Find all the backups
list, err := filepath.Glob(filepath.Join(dir, "*"+DefaultBackupExtension))
if err != nil {
t.Fatalf("err: %s", err)
}
// Sort them which will put them naturally in the right order
sort.Strings(list)
return list
}
func TestStateDefaultBackupExtension(t *testing.T) {
testCwdTemp(t)
view, done := testView(t)
defer done(t)
sm := &StateMeta{
Meta{
WorkingDir: workdir.NewDir("."),
View: view,
},
}
viewOptions := arguments.ViewOptions{ViewType: arguments.ViewHuman}
s, err := sm.State(t.Context(), encryption.Disabled(), views.NewState(viewOptions, view))
if err != nil {
t.Fatal(err)
}
backupPath := s.(*statemgr.Filesystem).BackupPath()
match := regexp.MustCompile(`terraform\.tfstate\.\d+\.backup$`).MatchString
if !match(backupPath) {
t.Fatal("Bad backup path:", backupPath)
}
}