@ -85,6 +85,29 @@ func TestVersion_flags(t *testing.T) {
}
}
func TestVersion_outdated ( t * testing . T ) {
ui := new ( cli . MockUi )
m := Meta {
Ui : ui ,
}
c := & VersionCommand {
Meta : m ,
Version : "4.5.6" ,
CheckFunc : mockVersionCheckFunc ( true , "4.5.7" ) ,
}
if code := c . Run ( [ ] string { } ) ; code != 0 {
t . Fatalf ( "bad: \n%s" , ui . ErrorWriter . String ( ) )
}
actual := strings . TrimSpace ( ui . OutputWriter . String ( ) )
expected := "Terraform v4.5.6\n\nYour version of Terraform is out of date! The latest version\nis 4.5.7. You can update by downloading from https://www.terraform.io/downloads.html"
if actual != expected {
t . Fatalf ( "wrong output\ngot: %#v\nwant: %#v" , actual , expected )
}
}
func TestVersion_json ( t * testing . T ) {
fixtureDir := "testdata/providers-schema/basic"
td := tempDir ( t )
@ -150,3 +173,36 @@ func TestVersion_json(t *testing.T) {
}
}
func TestVersion_jsonoutdated ( t * testing . T ) {
ui := new ( cli . MockUi )
m := Meta {
Ui : ui ,
}
c := & VersionCommand {
Meta : m ,
Version : "4.5.6" ,
CheckFunc : mockVersionCheckFunc ( true , "4.5.7" ) ,
}
if code := c . Run ( [ ] string { "-json" } ) ; code != 0 {
t . Fatalf ( "bad: \n%s" , ui . ErrorWriter . String ( ) )
}
actual := strings . TrimSpace ( ui . OutputWriter . String ( ) )
expected := "{\n \"terraform_version\": \"4.5.6\",\n \"terraform_revision\": \"\",\n \"provider_selections\": {},\n \"terraform_outdated\": true\n}"
if actual != expected {
t . Fatalf ( "wrong output\ngot: %#v\nwant: %#v" , actual , expected )
}
}
func mockVersionCheckFunc ( outdated bool , latest string ) VersionCheckFunc {
return func ( ) ( VersionCheckInfo , error ) {
return VersionCheckInfo {
Outdated : outdated ,
Latest : latest ,
// Alerts is not used by version command
} , nil
}
}