/
githubmirror
/
terraform
Обзор
Документация
Войти
/
githubmirror
/
terraform
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
internal/command/metadata_functions_test.go
74 строки
2 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 ( "encoding/json" "testing" ) func TestMetadataFunctions_error(t *testing.T) { t.Parallel() ui := testUiWrapped(t) c := &MetadataFunctionsCommand{ Meta: Meta{ Ui: ui, }, } // This test will always error because it's missing the -json flag if code := c.Run(nil); code != 1 { t.Fatalf("expected error, got:\n%s", ui.OutputWriter.String()) } } func TestMetadataFunctions_output(t *testing.T) { t.Parallel() ui := testUiWrapped(t) m := Meta{Ui: ui} c := &MetadataFunctionsCommand{Meta: m} if code := c.Run([]string{"-json"}); code != 0 { t.Fatalf("wrong exit status %d; want 0\nstderr: %s", code, ui.ErrorWriter.String()) } var got functions gotString := ui.OutputWriter.String() err := json.Unmarshal([]byte(gotString), &got) if err != nil { t.Fatal(err) } if len(got.Signatures) < 100 { t.Fatalf("expected at least 100 function signatures, got %d", len(got.Signatures)) } // check if one particular stable function is correct gotMax, ok := got.Signatures["max"] wantMax := "{\"description\":\"`max` takes one or more numbers and returns the greatest number from the set.\",\"return_type\":\"number\",\"variadic_parameter\":{\"name\":\"numbers\",\"type\":\"number\"}}" if !ok { t.Fatal(`missing function signature for "max"`) } if string(gotMax) != wantMax { t.Fatalf("wrong function signature for \"max\":\ngot: %q\nwant: %q", gotMax, wantMax) } stderr := ui.ErrorWriter.String() if stderr != "" { t.Fatalf("expected empty stderr, got:\n%s", stderr) } // test that ignored functions are not part of the json for _, v := range ignoredFunctions { _, ok := got.Signatures[v] if ok { t.Fatalf("found ignored function %q inside output", v) } } } type functions struct { FormatVersion string `json:"format_version"` Signatures map[string]json.RawMessage `json:"function_signatures,omitempty"` }