| // Copyright (c) HashiCorp, Inc. | |
| // SPDX-License-Identifier: MPL-2.0 | |
| package tfjson | |
| import ( | |
| "encoding/json" | |
| "testing" | |
| "github.com/google/go-cmp/cmp" | |
| ) | |
| func TestVersionOutput_013(t *testing.T) { | |
| errOutput := `{ | |
| "terraform_version": "0.13.5", | |
| "terraform_revision": "", | |
| "provider_selections": { | |
| "registry.terraform.io/hashicorp/github": "2.9.2", | |
| "registry.terraform.io/hashicorp/random": "3.0.0" | |
| }, | |
| "terraform_outdated": true | |
| }` | |
| var parsed VersionOutput | |
| if err := json.Unmarshal([]byte(errOutput), &parsed); err != nil { | |
| t.Fatal(err) | |
| } | |
| expected := &VersionOutput{ | |
| Version: "0.13.5", | |
| ProviderSelections: map[string]string{ | |
| "registry.terraform.io/hashicorp/github": "2.9.2", | |
| "registry.terraform.io/hashicorp/random": "3.0.0", | |
| }, | |
| Outdated: true, | |
| } | |
| if diff := cmp.Diff(expected, &parsed); diff != "" { | |
| t.Fatalf("output mismatch: %s", diff) | |
| } | |
| } | |
| func TestVersionOutput_015(t *testing.T) { | |
| errOutput := `{ | |
| "terraform_version": "0.15.0-dev", | |
| "terraform_revision": "ae025248cc0712bf53c675dc2fe77af4276dd5cc", | |
| "platform": "darwin_amd64", | |
| "provider_selections": { | |
| "registry.terraform.io/hashicorp/github": "2.9.2", | |
| "registry.terraform.io/hashicorp/random": "3.0.0" | |
| }, | |
| "terraform_outdated": false | |
| }` | |
| var parsed VersionOutput | |
| if err := json.Unmarshal([]byte(errOutput), &parsed); err != nil { | |
| t.Fatal(err) | |
| } | |
| expected := &VersionOutput{ | |
| Version: "0.15.0-dev", | |
| Revision: "ae025248cc0712bf53c675dc2fe77af4276dd5cc", | |
| Platform: "darwin_amd64", | |
| ProviderSelections: map[string]string{ | |
| "registry.terraform.io/hashicorp/github": "2.9.2", | |
| "registry.terraform.io/hashicorp/random": "3.0.0", | |
| }, | |
| } | |
| if diff := cmp.Diff(expected, &parsed); diff != "" { | |
| t.Fatalf("output mismatch: %s", diff) | |
| } | |
| } |