| // Copyright (c) HashiCorp, Inc. |
| // SPDX-License-Identifier: MPL-2.0 |
| |
| package jsonformat |
| |
| import ( |
| "testing" |
| |
| "github.com/hashicorp/terraform/internal/command/jsonplan" |
| "github.com/hashicorp/terraform/internal/command/jsonprovider" |
| "github.com/hashicorp/terraform/internal/command/jsonstate" |
| ) |
| |
| func TestIncompatibleVersions(t *testing.T) { |
| tcs := map[string]struct { |
| local string |
| remote string |
| expected bool |
| }{ |
| "matching": { |
| local: "1.1", |
| remote: "1.1", |
| expected: false, |
| }, |
| "local_latest": { |
| local: "1.2", |
| remote: "1.1", |
| expected: false, |
| }, |
| "local_earliest": { |
| local: "1.1", |
| remote: "1.2", |
| expected: true, |
| }, |
| "parses_state_version": { |
| local: jsonstate.FormatVersion, |
| remote: jsonstate.FormatVersion, |
| expected: false, |
| }, |
| "parses_provider_version": { |
| local: jsonprovider.FormatVersion, |
| remote: jsonprovider.FormatVersion, |
| expected: false, |
| }, |
| "parses_plan_version": { |
| local: jsonplan.FormatVersion, |
| remote: jsonplan.FormatVersion, |
| expected: false, |
| }, |
| } |
| |
| for name, tc := range tcs { |
| t.Run(name, func(t *testing.T) { |
| actual := incompatibleVersions(tc.local, tc.remote) |
| if actual != tc.expected { |
| t.Errorf("expected %t but found %t", tc.expected, actual) |
| } |
| }) |
| } |
| } |