github.com/timsutton/packer@v1.3.2/command/validate_test.go (about)

     1  package command
     2  
     3  import (
     4  	"path/filepath"
     5  	"testing"
     6  )
     7  
     8  func TestValidateCommandOKVersion(t *testing.T) {
     9  	c := &ValidateCommand{
    10  		Meta: testMetaFile(t),
    11  	}
    12  	args := []string{
    13  		filepath.Join(testFixture("validate"), "template.json"),
    14  	}
    15  
    16  	// This should pass with a valid configuration version
    17  	c.CoreConfig.Version = "102.0.0"
    18  	if code := c.Run(args); code != 0 {
    19  		fatalCommand(t, c.Meta)
    20  	}
    21  }
    22  
    23  func TestValidateCommandBadVersion(t *testing.T) {
    24  	c := &ValidateCommand{
    25  		Meta: testMetaFile(t),
    26  	}
    27  	args := []string{
    28  		filepath.Join(testFixture("validate"), "template.json"),
    29  	}
    30  
    31  	// This should fail with an invalid configuration version
    32  	c.CoreConfig.Version = "100.0.0"
    33  	if code := c.Run(args); code != 1 {
    34  		t.Errorf("Expected exit code 1")
    35  	}
    36  
    37  	stdout, stderr := outputCommand(t, c.Meta)
    38  	expected := `Error initializing core: This template requires Packer version 101.0.0 or higher; using 100.0.0
    39  `
    40  	if stderr != expected {
    41  		t.Fatalf("Expected:\n%s\nFound:\n%s\n", expected, stderr)
    42  	}
    43  	t.Log(stdout)
    44  }