73 lines
1.7 KiB
Go
73 lines
1.7 KiB
Go
package platform_test
|
|
|
|
import (
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"github.com/sclevine/spec"
|
|
"github.com/sclevine/spec/report"
|
|
|
|
"github.com/buildpacks/lifecycle/buildpack"
|
|
"github.com/buildpacks/lifecycle/platform"
|
|
h "github.com/buildpacks/lifecycle/testhelpers"
|
|
)
|
|
|
|
func TestDirStore(t *testing.T) {
|
|
spec.Run(t, "DirStore", testDirStore, spec.Report(report.Terminal{}))
|
|
}
|
|
|
|
func testDirStore(t *testing.T, when spec.G, it spec.S) {
|
|
var dirStore *platform.DirStore
|
|
|
|
it.Before(func() {
|
|
var err error
|
|
dirStore = platform.NewDirStore(
|
|
filepath.Join("testdata", "cnb", "buildpacks"),
|
|
filepath.Join("testdata", "cnb", "extensions"),
|
|
)
|
|
h.AssertNil(t, err)
|
|
})
|
|
|
|
when(".Lookup", func() {
|
|
when("kind is buildpack", func() {
|
|
it("returns descriptor from buildpack.toml", func() {
|
|
bp, err := dirStore.Lookup(buildpack.KindBuildpack, "A", "v1")
|
|
h.AssertNil(t, err)
|
|
|
|
h.AssertEq(t, bp.API(), "0.7")
|
|
h.AssertEq(t, bp.Homepage(), "Buildpack A Homepage")
|
|
})
|
|
})
|
|
|
|
when("kind is extension", func() {
|
|
it("returns descriptor from extension.toml", func() {
|
|
ext, err := dirStore.Lookup(buildpack.KindExtension, "A", "v1")
|
|
h.AssertNil(t, err)
|
|
|
|
h.AssertEq(t, ext.API(), "0.9")
|
|
h.AssertEq(t, ext.Homepage(), "Extension A Homepage")
|
|
})
|
|
})
|
|
})
|
|
|
|
when(".LookupBp", func() {
|
|
it("returns buildpack from buildpack.toml", func() {
|
|
bp, err := dirStore.LookupBp("A", "v1")
|
|
h.AssertNil(t, err)
|
|
|
|
h.AssertEq(t, bp.Buildpack.ID, "A")
|
|
h.AssertEq(t, bp.Buildpack.Version, "v1")
|
|
})
|
|
})
|
|
|
|
when(".LookupExt", func() {
|
|
it("returns extension from extension.toml", func() {
|
|
ext, err := dirStore.LookupExt("A", "v1")
|
|
h.AssertNil(t, err)
|
|
|
|
h.AssertEq(t, ext.Extension.ID, "A")
|
|
h.AssertEq(t, ext.Extension.Version, "v1")
|
|
})
|
|
})
|
|
}
|