github.com/YousefHaggyHeroku/pack@v1.5.5/internal/dist/dist_test.go (about) 1 package dist_test 2 3 import ( 4 "testing" 5 6 "github.com/buildpacks/lifecycle/api" 7 "github.com/heroku/color" 8 "github.com/sclevine/spec" 9 "github.com/sclevine/spec/report" 10 11 "github.com/YousefHaggyHeroku/pack/internal/dist" 12 h "github.com/YousefHaggyHeroku/pack/testhelpers" 13 ) 14 15 func TestDist(t *testing.T) { 16 color.Disable(true) 17 defer color.Disable(false) 18 spec.Run(t, "testDist", testDist, spec.Parallel(), spec.Report(report.Terminal{})) 19 } 20 21 func testDist(t *testing.T, when spec.G, it spec.S) { 22 when("BuildpackLayers", func() { 23 when("Get", func() { 24 var ( 25 buildpackLayers dist.BuildpackLayers 26 apiVersion *api.Version 27 ) 28 it.Before(func() { 29 var err error 30 apiVersion, err = api.NewVersion("0.0") 31 h.AssertNil(t, err) 32 33 buildpackLayers = dist.BuildpackLayers{ 34 "buildpack": { 35 "version1": { 36 API: apiVersion, 37 LayerDiffID: "buildpack-v1-diff", 38 }, 39 }, 40 "other-buildpack": { 41 "version1": { 42 API: apiVersion, 43 LayerDiffID: "other-buildpack-v2-diff", 44 }, 45 "version2": { 46 API: apiVersion, 47 LayerDiffID: "other-buildpack-v2-diff", 48 }, 49 }, 50 } 51 }) 52 53 when("ID and Version are provided and present", func() { 54 it("succeeds", func() { 55 out, ok := buildpackLayers.Get("buildpack", "version1") 56 h.AssertEq(t, ok, true) 57 h.AssertEq(t, out, dist.BuildpackLayerInfo{ 58 API: apiVersion, 59 LayerDiffID: "buildpack-v1-diff", 60 }) 61 }) 62 }) 63 64 when("ID is present, Version is left empty, but can be inferred", func() { 65 it("succeeds", func() { 66 out, ok := buildpackLayers.Get("buildpack", "") 67 h.AssertEq(t, ok, true) 68 h.AssertEq(t, out, dist.BuildpackLayerInfo{ 69 API: apiVersion, 70 LayerDiffID: "buildpack-v1-diff", 71 }) 72 }) 73 }) 74 75 when("ID is present, Version is left empty and cannot be inferred", func() { 76 it("fails", func() { 77 _, ok := buildpackLayers.Get("other-buildpack", "") 78 h.AssertEq(t, ok, false) 79 }) 80 }) 81 82 when("ID is NOT provided", func() { 83 it("fails", func() { 84 _, ok := buildpackLayers.Get("missing-buildpack", "") 85 h.AssertEq(t, ok, false) 86 }) 87 }) 88 }) 89 }) 90 }