github.com/buildpacks/pack@v0.33.3-0.20240516162812-884dd1837311/pkg/image/pull_policy_test.go (about)

     1  package image_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/sclevine/spec"
     7  	"github.com/sclevine/spec/report"
     8  
     9  	"github.com/buildpacks/pack/pkg/image"
    10  	h "github.com/buildpacks/pack/testhelpers"
    11  )
    12  
    13  func TestPullPolicy(t *testing.T) {
    14  	spec.Run(t, "PullPolicy", testPullPolicy, spec.Report(report.Terminal{}))
    15  }
    16  
    17  func testPullPolicy(t *testing.T, when spec.G, it spec.S) {
    18  	when("#ParsePullPolicy", func() {
    19  		it("returns PullNever for never", func() {
    20  			policy, err := image.ParsePullPolicy("never")
    21  			h.AssertNil(t, err)
    22  			h.AssertEq(t, policy, image.PullNever)
    23  		})
    24  
    25  		it("returns PullAlways for always", func() {
    26  			policy, err := image.ParsePullPolicy("always")
    27  			h.AssertNil(t, err)
    28  			h.AssertEq(t, policy, image.PullAlways)
    29  		})
    30  
    31  		it("returns PullIfNotPresent for if-not-present", func() {
    32  			policy, err := image.ParsePullPolicy("if-not-present")
    33  			h.AssertNil(t, err)
    34  			h.AssertEq(t, policy, image.PullIfNotPresent)
    35  		})
    36  
    37  		it("defaults to PullAlways, if empty string", func() {
    38  			policy, err := image.ParsePullPolicy("")
    39  			h.AssertNil(t, err)
    40  			h.AssertEq(t, policy, image.PullAlways)
    41  		})
    42  
    43  		it("returns error for unknown string", func() {
    44  			_, err := image.ParsePullPolicy("fake-policy-here")
    45  			h.AssertError(t, err, "invalid pull policy")
    46  		})
    47  	})
    48  
    49  	when("#String", func() {
    50  		it("returns the right String value", func() {
    51  			h.AssertEq(t, image.PullAlways.String(), "always")
    52  			h.AssertEq(t, image.PullNever.String(), "never")
    53  			h.AssertEq(t, image.PullIfNotPresent.String(), "if-not-present")
    54  		})
    55  	})
    56  }