// Copyright IBM Corp. 2014, 2026 // SPDX-License-Identifier: BUSL-1.1 package json import ( "strings" "github.com/hashicorp/terraform/internal/moduletest" ) type TestSuiteAbstract map[string][]string type TestStatus string type TestProgress string type TestFileStatus struct { Path string `json:"path"` Progress TestProgress `json:"progress"` Status TestStatus `json:"status,omitempty"` } type TestRunStatus struct { Path string `json:"path"` Run string `json:"run"` Progress TestProgress `json:"progress"` Elapsed *int64 `json:"elapsed,omitempty"` Status TestStatus `json:"status,omitempty"` } type TestSuiteSummary struct { Status TestStatus `json:"status"` Passed int `json:"passed"` Failed int `json:"failed"` Errored int `json:"errored"` Skipped int `json:"skipped"` } type TestFileCleanup struct { FailedResources []TestFailedResource `json:"failed_resources"` } type TestFailedResource struct { Instance string `json:"instance"` DeposedKey string `json:"deposed_key,omitempty"` } type TestFatalInterrupt struct { State []TestFailedResource `json:"state,omitempty"` States map[string][]TestFailedResource `json:"states,omitempty"` Planned []string `json:"planned,omitempty"` } type TestStatusUpdate struct { Status string `json:"status"` Duration float64 `json:"duration"` } func ToTestStatus(status moduletest.Status) TestStatus { return TestStatus(strings.ToLower(status.String())) } func ToTestProgress(progress moduletest.Progress) TestProgress { return TestProgress(strings.ToLower(progress.String())) }