github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/api/pipelineserver/unpause_test.go (about)

     1  package pipelineserver_test
     2  
     3  import (
     4  	"errors"
     5  	"net/http"
     6  	"net/http/httptest"
     7  
     8  	"github.com/pf-qiu/concourse/v6/atc/api/pipelineserver"
     9  	"github.com/pf-qiu/concourse/v6/atc/api/pipelineserver/pipelineserverfakes"
    10  	"github.com/pf-qiu/concourse/v6/atc/db/dbfakes"
    11  	. "github.com/onsi/ginkgo"
    12  	. "github.com/onsi/gomega"
    13  )
    14  
    15  var _ = Describe("Unpause Handler", func() {
    16  	var (
    17  		fakeLogger *pipelineserverfakes.FakeLogger
    18  		server     *pipelineserver.Server
    19  		dbPipeline *dbfakes.FakePipeline
    20  		handler    http.Handler
    21  		recorder   *httptest.ResponseRecorder
    22  		request    *http.Request
    23  	)
    24  
    25  	BeforeEach(func() {
    26  		fakeLogger = new(pipelineserverfakes.FakeLogger)
    27  		fakeLogger.SessionReturns(fakeLogger)
    28  		server = pipelineserver.NewServer(
    29  			fakeLogger,
    30  			new(dbfakes.FakeTeamFactory),
    31  			new(dbfakes.FakePipelineFactory),
    32  			"",
    33  		)
    34  		dbPipeline = new(dbfakes.FakePipeline)
    35  		handler = server.UnpausePipeline(dbPipeline)
    36  		recorder = httptest.NewRecorder()
    37  		request = httptest.NewRequest("PUT", "http://example.com", nil)
    38  	})
    39  
    40  	Context("when there is a database error", func() {
    41  		var expectedError error
    42  
    43  		BeforeEach(func() {
    44  			expectedError = errors.New("db error")
    45  			dbPipeline.UnpauseReturns(expectedError)
    46  		})
    47  
    48  		It("logs the error", func() {
    49  			handler.ServeHTTP(recorder, request)
    50  
    51  			Expect(fakeLogger.ErrorCallCount()).To(Equal(1))
    52  			action, actualError, _ := fakeLogger.ErrorArgsForCall(0)
    53  			Expect(action).To(Equal("failed-to-unpause-pipeline"), "wrong action name")
    54  			Expect(actualError).To(Equal(expectedError))
    55  		})
    56  
    57  		It("returns a 500 status code", func() {
    58  			handler.ServeHTTP(recorder, request)
    59  
    60  			Expect(recorder.Code).To(Equal(http.StatusInternalServerError))
    61  		})
    62  	})
    63  })