code.cloudfoundry.org/cli@v7.1.0+incompatible/actor/pushaction/read_manifest_test.go (about)

     1  package pushaction_test
     2  
     3  import (
     4  	"io/ioutil"
     5  	"os"
     6  	"path/filepath"
     7  
     8  	. "code.cloudfoundry.org/cli/actor/pushaction"
     9  	"code.cloudfoundry.org/cli/types"
    10  	"code.cloudfoundry.org/cli/util/manifest"
    11  
    12  	"github.com/cloudfoundry/bosh-cli/director/template"
    13  	. "github.com/onsi/ginkgo"
    14  	. "github.com/onsi/gomega"
    15  )
    16  
    17  var _ = Describe("ReadManifest", func() {
    18  	var (
    19  		actor *Actor
    20  
    21  		tmpDir         string
    22  		manifestPath   string
    23  		varsFilesPaths []string
    24  		varsKV         []template.VarKV
    25  
    26  		apps       []manifest.Application
    27  		warnings   Warnings
    28  		executeErr error
    29  	)
    30  
    31  	BeforeEach(func() {
    32  		actor, _, _, _ = getTestPushActor()
    33  
    34  		var err error
    35  		tmpDir, err = ioutil.TempDir("", "read-manifest-test")
    36  		Expect(err).ToNot(HaveOccurred())
    37  		manifestPath = filepath.Join(tmpDir, "manifest.yml")
    38  
    39  		varsFilesPaths = nil
    40  		varsKV = nil
    41  	})
    42  
    43  	AfterEach(func() {
    44  		Expect(os.RemoveAll(tmpDir)).To(Succeed())
    45  	})
    46  
    47  	JustBeforeEach(func() {
    48  		apps, warnings, executeErr = actor.ReadManifest(manifestPath, varsFilesPaths, varsKV)
    49  	})
    50  
    51  	When("provided `buildpack`", func() {
    52  		BeforeEach(func() {
    53  			manifest := []byte(`
    54  ---
    55  applications:
    56    - name: some-app
    57      buildpack: some-buildpack
    58    - name: some-other-app
    59      buildpack: some-other-buildpack
    60  `)
    61  
    62  			Expect(ioutil.WriteFile(manifestPath, manifest, 0666)).To(Succeed())
    63  		})
    64  
    65  		It("sets the buildpack on the app and returns a deprecated field warning", func() {
    66  			Expect(executeErr).ToNot(HaveOccurred())
    67  
    68  			Expect(apps).To(ConsistOf(manifest.Application{
    69  				Name:      "some-app",
    70  				Buildpack: types.FilteredString{Value: "some-buildpack", IsSet: true},
    71  			}, manifest.Application{
    72  				Name:      "some-other-app",
    73  				Buildpack: types.FilteredString{Value: "some-other-buildpack", IsSet: true},
    74  			}))
    75  
    76  			Expect(warnings).To(ConsistOf(`Deprecation warning: Use of 'buildpack' attribute in manifest is deprecated in favor of 'buildpacks'. Please see https://docs.cloudfoundry.org/devguide/deploy-apps/manifest-attributes.html#deprecated for alternatives and other app manifest deprecations. This feature will be removed in the future.`))
    77  		})
    78  	})
    79  })