github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/api/pipelineserver/archive_test.go (about) 1 package pipelineserver_test 2 3 import ( 4 "errors" 5 "net/http" 6 "net/http/httptest" 7 8 "code.cloudfoundry.org/lager" 9 "code.cloudfoundry.org/lager/lagertest" 10 "github.com/pf-qiu/concourse/v6/atc/api/pipelineserver" 11 "github.com/pf-qiu/concourse/v6/atc/db/dbfakes" 12 . "github.com/onsi/ginkgo" 13 . "github.com/onsi/gomega" 14 "github.com/onsi/gomega/gstruct" 15 ) 16 17 //go:generate counterfeiter code.cloudfoundry.org/lager.Logger 18 19 var _ = Describe("Archive Handler", func() { 20 var ( 21 fakeLogger *lagertest.TestLogger 22 server *pipelineserver.Server 23 dbPipeline *dbfakes.FakePipeline 24 handler http.Handler 25 recorder *httptest.ResponseRecorder 26 request *http.Request 27 ) 28 29 BeforeEach(func() { 30 fakeLogger = lagertest.NewTestLogger("test") 31 server = pipelineserver.NewServer( 32 fakeLogger, 33 new(dbfakes.FakeTeamFactory), 34 new(dbfakes.FakePipelineFactory), 35 "", 36 ) 37 dbPipeline = new(dbfakes.FakePipeline) 38 handler = server.ArchivePipeline(dbPipeline) 39 recorder = httptest.NewRecorder() 40 request = httptest.NewRequest("PUT", "http://example.com", nil) 41 }) 42 43 It("logs database errors", func() { 44 expectedError := errors.New("db error") 45 dbPipeline.ArchiveReturns(expectedError) 46 47 handler.ServeHTTP(recorder, request) 48 49 Expect(fakeLogger.Logs()).To(ContainElement(gstruct.MatchFields(gstruct.IgnoreExtras, gstruct.Fields{ 50 "Message": Equal("test.archive-pipeline"), 51 "LogLevel": Equal(lager.ERROR), 52 }))) 53 }) 54 It("write a debug log on every request", func() { 55 handler.ServeHTTP(recorder, request) 56 57 Expect(fakeLogger.Logs()).To(ContainElement(gstruct.MatchFields(gstruct.IgnoreExtras, gstruct.Fields{ 58 "Message": Equal("test.archive-pipeline"), 59 "LogLevel": Equal(lager.DEBUG), 60 }))) 61 }) 62 63 It("logs no errors if everything works", func() { 64 dbPipeline.ArchiveReturns(nil) 65 66 handler.ServeHTTP(recorder, request) 67 68 Expect(fakeLogger.Logs()).ToNot(ContainElement(gstruct.MatchFields(gstruct.IgnoreExtras, gstruct.Fields{ 69 "Message": Equal("test.archive-pipeline"), 70 "LogLevel": Equal(lager.ERROR), 71 }))) 72 }) 73 })