github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/tsa/deleter_test.go (about) 1 package tsa_test 2 3 import ( 4 "context" 5 6 "github.com/pf-qiu/concourse/v6/tsa" 7 8 "code.cloudfoundry.org/lager/lagerctx" 9 "code.cloudfoundry.org/lager/lagertest" 10 "github.com/pf-qiu/concourse/v6/atc" 11 . "github.com/onsi/ginkgo" 12 . "github.com/onsi/gomega" 13 "github.com/onsi/gomega/ghttp" 14 "github.com/tedsuo/rata" 15 "golang.org/x/oauth2" 16 ) 17 18 var _ = Describe("Deleter", func() { 19 var ( 20 deleter *tsa.Deleter 21 22 ctx context.Context 23 worker atc.Worker 24 fakeATC *ghttp.Server 25 ) 26 27 BeforeEach(func() { 28 ctx = lagerctx.NewContext(context.Background(), lagertest.NewTestLogger("test")) 29 30 worker = atc.Worker{ 31 Name: "some-worker", 32 } 33 34 fakeATC = ghttp.NewServer() 35 36 atcEndpoint := rata.NewRequestGenerator(fakeATC.URL(), atc.Routes) 37 38 token := &oauth2.Token{TokenType: "Bearer", AccessToken: "yo"} 39 httpClient := oauth2.NewClient(oauth2.NoContext, oauth2.StaticTokenSource(token)) 40 41 deleter = &tsa.Deleter{ 42 ATCEndpoint: atcEndpoint, 43 HTTPClient: httpClient, 44 } 45 }) 46 47 AfterEach(func() { 48 fakeATC.Close() 49 }) 50 51 It("tells the ATC to retire the worker", func() { 52 fakeATC.AppendHandlers(ghttp.CombineHandlers( 53 ghttp.VerifyRequest("DELETE", "/api/v1/workers/some-worker"), 54 ghttp.VerifyHeaderKV("Authorization", "Bearer yo"), 55 ghttp.RespondWith(200, nil, nil), 56 )) 57 58 err := deleter.Delete(ctx, worker) 59 Expect(err).NotTo(HaveOccurred()) 60 61 Expect(fakeATC.ReceivedRequests()).To(HaveLen(1)) 62 }) 63 64 Context("when the ATC does not respond to retire the worker", func() { 65 BeforeEach(func() { 66 fakeATC.AppendHandlers(ghttp.CombineHandlers( 67 ghttp.VerifyRequest("DELETE", "/api/v1/workers/some-worker"), 68 ghttp.RespondWith(500, nil, nil), 69 )) 70 }) 71 72 It("errors", func() { 73 err := deleter.Delete(ctx, worker) 74 Expect(err).To(HaveOccurred()) 75 76 Expect(err).To(MatchError(ContainSubstring("500"))) 77 Expect(fakeATC.ReceivedRequests()).To(HaveLen(1)) 78 }) 79 }) 80 })