77 wtTypes "github.com/containrrr/watchtower/pkg/types"
88 . "github.com/onsi/ginkgo"
99 . "github.com/onsi/gomega"
10+ "github.com/onsi/gomega/ghttp"
11+ "net/http"
1012 "os"
1113 "testing"
1214 "time"
@@ -18,14 +20,16 @@ func TestDigest(t *testing.T) {
1820 RunSpecs (GinkgoT (), "Digest Suite" )
1921}
2022
21- var DockerHubCredentials = & wtTypes.RegistryCredentials {
22- Username : os .Getenv ("CI_INTEGRATION_TEST_REGISTRY_DH_USERNAME" ),
23- Password : os .Getenv ("CI_INTEGRATION_TEST_REGISTRY_DH_PASSWORD" ),
24- }
25- var GHCRCredentials = & wtTypes.RegistryCredentials {
26- Username : os .Getenv ("CI_INTEGRATION_TEST_REGISTRY_GH_USERNAME" ),
27- Password : os .Getenv ("CI_INTEGRATION_TEST_REGISTRY_GH_PASSWORD" ),
28- }
23+ var (
24+ DockerHubCredentials = & wtTypes.RegistryCredentials {
25+ Username : os .Getenv ("CI_INTEGRATION_TEST_REGISTRY_DH_USERNAME" ),
26+ Password : os .Getenv ("CI_INTEGRATION_TEST_REGISTRY_DH_PASSWORD" ),
27+ }
28+ GHCRCredentials = & wtTypes.RegistryCredentials {
29+ Username : os .Getenv ("CI_INTEGRATION_TEST_REGISTRY_GH_USERNAME" ),
30+ Password : os .Getenv ("CI_INTEGRATION_TEST_REGISTRY_GH_PASSWORD" ),
31+ }
32+ )
2933
3034func SkipIfCredentialsEmpty (credentials * wtTypes.RegistryCredentials , fn func ()) func () {
3135 if credentials .Username == "" {
@@ -84,4 +88,32 @@ var _ = Describe("Digests", func() {
8488 }),
8589 )
8690 })
91+ When ("sending a HEAD request" , func () {
92+ var server * ghttp.Server
93+ BeforeEach (func () {
94+ server = ghttp .NewServer ()
95+ })
96+ AfterEach (func () {
97+ server .Close ()
98+ })
99+ It ("should use a custom user-agent" , func () {
100+ server .AppendHandlers (
101+ ghttp .CombineHandlers (
102+ ghttp .VerifyHeader (http.Header {
103+ "User-Agent" : []string {"Watchtower/v0.0.0-unknown" },
104+ }),
105+ ghttp .RespondWith (http .StatusOK , "" , http.Header {
106+ digest .ContentDigestHeader : []string {
107+ mockDigest ,
108+ },
109+ }),
110+ ),
111+ )
112+ dig , err := digest .GetDigest (server .URL (), "token" )
113+ println (dig )
114+ Expect (server .ReceivedRequests ()).Should (HaveLen (1 ))
115+ Expect (err ).NotTo (HaveOccurred ())
116+ Expect (dig ).To (Equal (mockDigest ))
117+ })
118+ })
87119})
0 commit comments