blob: 18e18fd436f5c827cc40ef83b998e0d3e89cc02a [file] [edit]
// Copyright IBM Corp. 2014, 2026
// SPDX-License-Identifier: BUSL-1.1
package command
import (
"strings"
"testing"
)
func TestInit_stateStoreBlockIsExperimental(t *testing.T) {
t.Run("init command", func(t *testing.T) {
// Create a temporary working directory with state_store in use
td := t.TempDir()
testCopyDir(t, testFixturePath("init-with-state-store"), td)
t.Chdir(td)
ui := testUiWrapped(t)
view, done := testView(t)
c := &InitCommand{
Meta: Meta{
Ui: ui,
View: view,
AllowExperimentalFeatures: false,
},
}
args := []string{}
code := c.Run(args)
testOutput := done(t)
if code != 1 {
t.Fatalf("unexpected output: \n%s", testOutput.All())
}
// Check output
output := testOutput.Stderr()
if !strings.Contains(output, `Blocks of type "state_store" are not expected here`) {
t.Fatalf("doesn't look like experiment is blocking access': %s", output)
}
})
t.Run("non-init command: plan", func(t *testing.T) {
// Create a temporary working directory with state_store in use
td := t.TempDir()
testCopyDir(t, testFixturePath("init-with-state-store"), td)
t.Chdir(td)
ui := testUiWrapped(t)
view, done := testView(t)
c := &PlanCommand{
Meta: Meta{
Ui: ui,
View: view,
AllowExperimentalFeatures: false,
},
}
args := []string{}
code := c.Run(args)
testOutput := done(t)
if code != 1 {
t.Fatalf("unexpected output: \n%s", testOutput.All())
}
// Check output
output := testOutput.Stderr()
if !strings.Contains(output, `Blocks of type "state_store" are not expected here`) {
t.Fatalf("doesn't look like experiment is blocking access': %s", output)
}
})
t.Run("non-init command: state list", func(t *testing.T) {
// Create a temporary working directory with state_store in use
td := t.TempDir()
testCopyDir(t, testFixturePath("init-with-state-store"), td)
t.Chdir(td)
ui := testUiWrapped(t)
view, done := testView(t)
c := &StateListCommand{
Meta: Meta{
Ui: ui,
View: view,
AllowExperimentalFeatures: false,
},
}
args := []string{}
code := c.Run(args)
testOutput := done(t)
if code != 1 {
t.Fatalf("unexpected output: \n%s", testOutput.All())
}
// Check output
output := ui.ErrorWriter.String()
if !strings.Contains(output, `Blocks of type "state_store" are not expected here`) {
t.Fatalf("doesn't look like experiment is blocking access': %s", output)
}
})
}