terraform-provider-envbuilder/testutil/registrytest/registrytest.go
Cian Johnston c9e7cb8178
implement first pass at cached image data source ()
implements envbuilder_cached_image data source
2024-08-01 21:26:44 +01:00

24 lines
674 B
Go

package registrytest
import (
"fmt"
"net/http/httptest"
"net/url"
"testing"
"github.com/google/go-containerregistry/pkg/registry"
"github.com/stretchr/testify/require"
)
// New starts a new Docker registry listening on localhost.
// It will automatically shut down when the test finishes.
// It will store data in dir.
func New(t testing.TB, dir string) string {
t.Helper()
regHandler := registry.New(registry.WithBlobHandler(registry.NewDiskBlobHandler(dir)))
regSrv := httptest.NewServer(regHandler)
t.Cleanup(func() { regSrv.Close() })
regSrvURL, err := url.Parse(regSrv.URL)
require.NoError(t, err)
return fmt.Sprintf("localhost:%s", regSrvURL.Port())
}