github.com/YousefHaggyHeroku/pack@v1.5.5/internal/registry/buildpack_test.go (about)

     1  package registry_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/sclevine/spec"
     7  	"github.com/sclevine/spec/report"
     8  
     9  	"github.com/YousefHaggyHeroku/pack/internal/registry"
    10  	h "github.com/YousefHaggyHeroku/pack/testhelpers"
    11  )
    12  
    13  func TestRegistryBuildpack(t *testing.T) {
    14  	spec.Run(t, "Buildpack", testRegistryBuildpack, spec.Parallel(), spec.Report(report.Terminal{}))
    15  }
    16  
    17  func testRegistryBuildpack(t *testing.T, when spec.G, it spec.S) {
    18  	when("#Validate", func() {
    19  		it("errors when address is missing", func() {
    20  			b := registry.Buildpack{
    21  				Address: "",
    22  			}
    23  
    24  			h.AssertNotNil(t, registry.Validate(b))
    25  		})
    26  
    27  		it("errors when not a digest", func() {
    28  			b := registry.Buildpack{
    29  				Address: "example.com/some/package:18",
    30  			}
    31  
    32  			h.AssertNotNil(t, registry.Validate(b))
    33  		})
    34  
    35  		it("succeeds when address is a digest", func() {
    36  			b := registry.Buildpack{
    37  				Address: "example.com/some/package@sha256:8c27fe111c11b722081701dfed3bd55e039b9ce92865473cf4cdfa918071c566",
    38  			}
    39  
    40  			h.AssertNil(t, registry.Validate(b))
    41  		})
    42  	})
    43  
    44  	when("#ParseNamespaceName", func() {
    45  		it("should parse buildpack id into namespace and name", func() {
    46  			const id = "heroku/rust@1.2.3"
    47  			namespace, name, err := registry.ParseNamespaceName(id)
    48  
    49  			h.AssertNil(t, err)
    50  			h.AssertEq(t, namespace, "heroku")
    51  			h.AssertEq(t, name, "rust@1.2.3")
    52  		})
    53  
    54  		it("should provide an error for invalid id", func() {
    55  			const id = "bad id"
    56  			_, _, err := registry.ParseNamespaceName(id)
    57  
    58  			h.AssertNotNil(t, err)
    59  		})
    60  	})
    61  }