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 }