mirror of
https://github.com/opentofu/opentofu.git
synced 2024-12-29 10:21:01 -06:00
add equivalent tests to meta_backend_test
This commit is contained in:
parent
c891ab50b7
commit
7d23e1ef20
@ -3217,6 +3217,110 @@ func TestMetaBackend_planLegacy(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
// init a backend using -backend-config options multiple times
|
||||
func TestMetaBackend_configureWithExtra(t *testing.T) {
|
||||
// Create a temporary working directory that is empty
|
||||
td := tempDir(t)
|
||||
copy.CopyDir(testFixturePath("init-backend-empty"), td)
|
||||
defer os.RemoveAll(td)
|
||||
defer testChdir(t, td)()
|
||||
|
||||
extras := map[string]interface{}{"path": "hello"}
|
||||
m := testMetaBackend(t, nil)
|
||||
opts := &BackendOpts{
|
||||
ConfigExtra: extras,
|
||||
Init: true,
|
||||
}
|
||||
|
||||
backendCfg, err := m.backendConfig(opts)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
// init the backend
|
||||
_, err = m.Backend(&BackendOpts{
|
||||
ConfigExtra: extras,
|
||||
Init: true,
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("bad: %s", err)
|
||||
}
|
||||
|
||||
// Check the state
|
||||
s := testStateRead(t, filepath.Join(DefaultDataDir, backendlocal.DefaultStateFilename))
|
||||
if s.Backend.Hash != backendCfg.Hash {
|
||||
t.Fatal("mismatched state and config backend hashes")
|
||||
}
|
||||
if s.Backend.Rehash() == s.Backend.Hash {
|
||||
t.Fatal("saved hash should not match actual hash")
|
||||
}
|
||||
if s.Backend.Rehash() != backendCfg.Rehash() {
|
||||
t.Fatal("mismatched state and config re-hashes")
|
||||
}
|
||||
|
||||
// init the backend again with the same options
|
||||
m = testMetaBackend(t, nil)
|
||||
_, err = m.Backend(&BackendOpts{
|
||||
ConfigExtra: extras,
|
||||
Init: true,
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("bad: %s", err)
|
||||
}
|
||||
|
||||
// Check the state
|
||||
s = testStateRead(t, filepath.Join(DefaultDataDir, backendlocal.DefaultStateFilename))
|
||||
if s.Backend.Hash != backendCfg.Hash {
|
||||
t.Fatal("mismatched state and config backend hashes")
|
||||
}
|
||||
}
|
||||
|
||||
// move options from config to -backend-config
|
||||
func TestMetaBackend_configToExtra(t *testing.T) {
|
||||
// Create a temporary working directory that is empty
|
||||
td := tempDir(t)
|
||||
copy.CopyDir(testFixturePath("init-backend"), td)
|
||||
defer os.RemoveAll(td)
|
||||
defer testChdir(t, td)()
|
||||
|
||||
// init the backend
|
||||
m := testMetaBackend(t, nil)
|
||||
_, err := m.Backend(&BackendOpts{
|
||||
Init: true,
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("bad: %s", err)
|
||||
}
|
||||
|
||||
// Check the state
|
||||
s := testStateRead(t, filepath.Join(DefaultDataDir, backendlocal.DefaultStateFilename))
|
||||
backendHash := s.Backend.Hash
|
||||
|
||||
// init again but remove the path option from the config
|
||||
cfg := "terraform {\n backend \"local\" {}\n}\n"
|
||||
if err := ioutil.WriteFile("main.tf", []byte(cfg), 0644); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
// init the backend again with the options
|
||||
extras := map[string]interface{}{"path": "hello"}
|
||||
m = testMetaBackend(t, nil)
|
||||
m.forceInitCopy = true
|
||||
_, err = m.Backend(&BackendOpts{
|
||||
ConfigExtra: extras,
|
||||
Init: true,
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("bad: %s", err)
|
||||
}
|
||||
|
||||
s = testStateRead(t, filepath.Join(DefaultDataDir, backendlocal.DefaultStateFilename))
|
||||
|
||||
if s.Backend.Hash == backendHash {
|
||||
t.Fatal("state.Backend.Hash was not updated")
|
||||
}
|
||||
}
|
||||
|
||||
func testMetaBackend(t *testing.T, args []string) *Meta {
|
||||
var m Meta
|
||||
m.Ui = new(cli.MockUi)
|
||||
|
Loading…
Reference in New Issue
Block a user