github.com/buildpacks/pack@v0.33.3-0.20240516162812-884dd1837311/pkg/dist/buildmodule_test.go (about) 1 package dist_test 2 3 import ( 4 "testing" 5 6 "github.com/buildpacks/pack/pkg/dist" 7 h "github.com/buildpacks/pack/testhelpers" 8 9 "github.com/heroku/color" 10 11 "github.com/sclevine/spec" 12 "github.com/sclevine/spec/report" 13 ) 14 15 func TestBuildModule(t *testing.T) { 16 color.Disable(true) 17 defer color.Disable(false) 18 spec.Run(t, "testBuildModule", testBuildModule, spec.Parallel(), spec.Report(report.Terminal{})) 19 } 20 21 func testBuildModule(t *testing.T, when spec.G, it spec.S) { 22 var info dist.ModuleInfo 23 24 it.Before(func() { 25 info = dist.ModuleInfo{ 26 ID: "some-id", 27 Name: "some-name", 28 Version: "some-version", 29 } 30 }) 31 32 when("#FullName", func() { 33 when("version", func() { 34 when("blank", func() { 35 it.Before(func() { 36 info.Version = "" 37 }) 38 39 it("prints ID", func() { 40 h.AssertEq(t, info.FullName(), "some-id") 41 }) 42 }) 43 44 when("not blank", func() { 45 it("prints ID and version", func() { 46 h.AssertEq(t, info.FullName(), "some-id@some-version") 47 }) 48 }) 49 }) 50 }) 51 52 when("#FullNameWithVersion", func() { 53 when("version", func() { 54 when("blank", func() { 55 it.Before(func() { 56 info.Version = "" 57 }) 58 59 it("errors", func() { 60 _, err := info.FullNameWithVersion() 61 h.AssertNotNil(t, err) 62 }) 63 }) 64 65 when("not blank", func() { 66 it("prints ID and version", func() { 67 actual, err := info.FullNameWithVersion() 68 h.AssertNil(t, err) 69 h.AssertEq(t, actual, "some-id@some-version") 70 }) 71 }) 72 }) 73 }) 74 75 when("#String", func() { 76 it("returns #FullName", func() { 77 info.Version = "" 78 h.AssertEq(t, info.String(), info.FullName()) 79 }) 80 }) 81 82 when("#Match", func() { 83 when("IDs and versions match", func() { 84 it("returns true", func() { 85 other := dist.ModuleInfo{ 86 ID: "some-id", 87 Version: "some-version", 88 } 89 h.AssertEq(t, info.Match(other), true) 90 }) 91 }) 92 93 when("only IDs match", func() { 94 it("returns false", func() { 95 other := dist.ModuleInfo{ 96 ID: "some-id", 97 Version: "some-other-version", 98 } 99 h.AssertEq(t, info.Match(other), false) 100 }) 101 }) 102 }) 103 }