/
githubmirror
/
terraform
Обзор
Документация
Войти
/
githubmirror
/
terraform
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
internal/command/autocomplete_test.go
123 строки
4 KB
Sarah French
refactor: Replace remaining use of `cli.NewMockUi()` or `new(cli.MockUi)` in tests in the command package
16 июл 2026, 00:45
16 июл 2026, 00:45
91f04bd
Код
Авторство
О чём код?
// Copyright IBM Corp. 2014, 2026 // SPDX-License-Identifier: BUSL-1.1 package command import ( "reflect" "testing" "github.com/hashicorp/terraform/internal/addrs" "github.com/hashicorp/terraform/internal/command/workdir" "github.com/hashicorp/terraform/internal/providers" pTesting "github.com/hashicorp/terraform/internal/providers/testing" "github.com/posener/complete" ) func TestMetaCompletePredictWorkspaceName(t *testing.T) { t.Run("test autocompletion using the local backend", func(t *testing.T) { // Create a temporary working directory that is empty td := t.TempDir() t.Chdir(td) ui := testUiWrapped(t) meta := &Meta{Ui: ui} predictor := meta.completePredictWorkspaceName() got := predictor.Predict(complete.Args{ Last: "", }) want := []string{"default"} if !reflect.DeepEqual(got, want) { t.Errorf("wrong result\ngot: %#v\nwant: %#v", got, want) } }) t.Run("test autocompletion using a state store", func(t *testing.T) { // Create a temporary working directory with state_store config td := t.TempDir() testCopyDir(t, testFixturePath("state-store-unchanged/provider-managed-by-terraform"), td) t.Chdir(td) // Set up pluggable state store provider mock mockProvider := mockPluggableStateStorageProvider(mockSingleStateStoreSchema("test_store")) // Mock the existence of workspaces mockProvider.MockStates = pTesting.NewMockStateBytesWithStateIds("test_store", []string{ "default", "foobar", }) mockProviderAddress := addrs.NewDefaultProvider("test") providerSource := newMockProviderSource(t, map[string][]string{ "hashicorp/test": {"1.0.0"}, }) ui := testUiWrapped(t) view, _ := testView(t) wd := workdir.NewDir(".") wd.OverrideOriginalWorkingDir(td) meta := Meta{ WorkingDir: wd, // Use the test's temp dir Ui: ui, View: view, AllowExperimentalFeatures: true, testingOverrides: &testingOverrides{ Providers: map[addrs.Provider]providers.Factory{ mockProviderAddress: providers.FactoryFixed(mockProvider), }, }, ProviderSource: providerSource, } predictor := meta.completePredictWorkspaceName() got := predictor.Predict(complete.Args{ Last: "", }) want := []string{"default", "foobar"} if !reflect.DeepEqual(got, want) { t.Errorf("wrong result\ngot: %#v\nwant: %#v", got, want) } }) t.Run("test autocompletion using a state store containing no workspaces", func(t *testing.T) { // Create a temporary working directory with state_store config td := t.TempDir() testCopyDir(t, testFixturePath("state-store-unchanged/provider-managed-by-terraform"), td) t.Chdir(td) // Set up pluggable state store provider mock mockProvider := mockPluggableStateStorageProvider(mockSingleStateStoreSchema("test_store")) mockProviderAddress := addrs.NewDefaultProvider("test") providerSource := newMockProviderSource(t, map[string][]string{ "hashicorp/test": {"1.0.0"}, }) ui := testUiWrapped(t) view, _ := testView(t) wd := workdir.NewDir(".") wd.OverrideOriginalWorkingDir(td) meta := Meta{ WorkingDir: wd, // Use the test's temp dir Ui: ui, View: view, AllowExperimentalFeatures: true, testingOverrides: &testingOverrides{ Providers: map[addrs.Provider]providers.Factory{ mockProviderAddress: providers.FactoryFixed(mockProvider), }, }, ProviderSource: providerSource, } predictor := meta.completePredictWorkspaceName() got := predictor.Predict(complete.Args{ Last: "", }) if got != nil { t.Errorf("wrong result\ngot: %#v\nwant: %#v", got, nil) } }) }