secondBuildLink := ".table-row:nth-of-type(2) a" homeLink := ".js-groups li:nth-of-type(2) a" Context("with a one off build", func() { var oneOffBuild db.Build var build db.Build BeforeEach(func() { location := event.OriginLocation{ID: 1, ParentID: 0, ParallelGroup: 0} // job build data _, err := sqlDB.SaveConfig(atc.DefaultPipelineName, atc.Config{ Jobs: []atc.JobConfig{ {Name: "job-name"}, }, }, db.ConfigVersion(1), db.PipelineUnpaused) Expect(err).NotTo(HaveOccurred()) pipelineDB, err = pipelineDBFactory.BuildWithName(atc.DefaultPipelineName) Expect(err).NotTo(HaveOccurred()) build, err = pipelineDB.CreateJobBuild("job-name") Expect(err).NotTo(HaveOccurred()) _, err = sqlDB.StartBuild(build.ID, "", "") Expect(err).NotTo(HaveOccurred()) sqlDB.SaveBuildEvent(build.ID, event.Log{ Origin: event.Origin{ Name: "origin-name", Type: event.OriginTypeTask,
"github.com/concourse/atc/web/group" . "github.com/concourse/atc/web/getjob" "github.com/concourse/atc/web/getjob/fakes" ) var _ = Describe("FetchTemplateData", func() { var fakeDB *fakes.FakeJobDB BeforeEach(func() { fakeDB = new(fakes.FakeJobDB) }) Context("when the config database returns an error", func() { BeforeEach(func() { fakeDB.GetConfigReturns(atc.Config{}, db.ConfigVersion(1), errors.New("disaster")) }) It("returns an error if the config could not be loaded", func() { _, err := FetchTemplateData(fakeDB, "job-name") Ω(err).Should(HaveOccurred()) }) }) Context("when the config database returns a config", func() { var job atc.JobConfig BeforeEach(func() { job = atc.JobConfig{ Name: "job-name", }
Expect(err).NotTo(HaveOccurred()) request.Body = gbytes.BufferWithBytes(payload) }) It("returns 204", func() { Expect(response.StatusCode).To(Equal(http.StatusNoContent)) }) It("saves it", func() { Expect(configDB.SaveConfigCallCount()).To(Equal(1)) name, savedConfig, id, pipelineState := configDB.SaveConfigArgsForCall(0) Expect(name).To(Equal("a-pipeline")) Expect(savedConfig).To(Equal(config)) Expect(id).To(Equal(db.ConfigVersion(42))) Expect(pipelineState).To(Equal(db.PipelineNoChange)) }) Context("and saving it fails", func() { BeforeEach(func() { configDB.SaveConfigReturns(false, errors.New("oh no!")) }) It("returns 500", func() { Expect(response.StatusCode).To(Equal(http.StatusInternalServerError)) }) It("returns the error in the response body", func() { Expect(ioutil.ReadAll(response.Body)).To(Equal([]byte("failed to save config: oh no!"))) })
) var _ = Describe("Auth", func() { var atcProcess ifrit.Process var dbListener *pq.Listener var atcPort uint16 BeforeEach(func() { logger := lagertest.NewTestLogger("test") postgresRunner.CreateTestDB() dbConn = postgresRunner.Open() dbListener = pq.NewListener(postgresRunner.DataSourceName(), time.Second, time.Minute, nil) bus := db.NewNotificationsBus(dbListener) sqlDB = db.NewSQL(logger, dbConn, bus) _, err := sqlDB.SaveConfig(atc.DefaultPipelineName, atc.Config{}, db.ConfigVersion(1), db.PipelineUnpaused) Ω(err).ShouldNot(HaveOccurred()) atcBin, err := gexec.Build("github.com/concourse/atc/cmd/atc") Ω(err).ShouldNot(HaveOccurred()) atcPort = 5697 + uint16(GinkgoParallelNode()) debugPort := 6697 + uint16(GinkgoParallelNode()) atcCommand := exec.Command( atcBin, "-webListenPort", fmt.Sprintf("%d", atcPort), "-debugListenPort", fmt.Sprintf("%d", debugPort), "-httpUsername", "admin", "-httpPassword", "password", "-templates", filepath.Join("..", "web", "templates"),
Ω(err).ShouldNot(HaveOccurred()) request.Body = gbytes.BufferWithBytes(payload) }) It("returns 200", func() { Ω(response.StatusCode).Should(Equal(http.StatusOK)) }) It("saves it", func() { Ω(configDB.SaveConfigCallCount()).Should(Equal(1)) name, config, id, pipelineState := configDB.SaveConfigArgsForCall(0) Ω(name).Should(Equal("a-pipeline")) Ω(config).Should(Equal(config)) Ω(id).Should(Equal(db.ConfigVersion(42))) Ω(pipelineState).Should(Equal(db.PipelineNoChange)) }) Context("and saving it fails", func() { BeforeEach(func() { configDB.SaveConfigReturns(false, errors.New("oh no!")) }) It("returns 500", func() { Ω(response.StatusCode).Should(Equal(http.StatusInternalServerError)) }) It("returns the error in the response body", func() { Ω(ioutil.ReadAll(response.Body)).Should(Equal([]byte("failed to save config: oh no!"))) })
var dbSharedBehaviorInput = dbSharedBehaviorInput{} BeforeEach(func() { var err error postgresRunner.Truncate() dbConn = postgresRunner.Open() listener = pq.NewListener(postgresRunner.DataSourceName(), time.Second, time.Minute, nil) Eventually(listener.Ping, 5*time.Second).ShouldNot(HaveOccurred()) bus := db.NewNotificationsBus(listener, dbConn) sqlDB = db.NewSQL(lagertest.NewTestLogger("test"), dbConn, bus) sqlDB.SaveConfig("some-pipeline", atc.Config{}, db.ConfigVersion(1), db.PipelineUnpaused) pipelineDBFactory = db.NewPipelineDBFactory(lagertest.NewTestLogger("test"), dbConn, bus, sqlDB) pipelineDB, err = pipelineDBFactory.BuildWithName("some-pipeline") Expect(err).NotTo(HaveOccurred()) dbSharedBehaviorInput.DB = sqlDB dbSharedBehaviorInput.PipelineDB = pipelineDB }) AfterEach(func() { err := dbConn.Close() Expect(err).NotTo(HaveOccurred()) err = listener.Close() Expect(err).NotTo(HaveOccurred())
bus := db.NewNotificationsBus(listener, dbConn) sqlDB := db.NewSQL(lagertest.NewTestLogger("test"), dbConn, bus) database = sqlDB pipelineDBFactory := db.NewPipelineDBFactory(lagertest.NewTestLogger("test"), dbConn, bus, sqlDB) _, err := database.SaveTeam(db.Team{Name: "some-team"}) Expect(err).NotTo(HaveOccurred()) config := atc.Config{ Jobs: atc.JobConfigs{ { Name: "some-job", }, }, } sqlDB.SaveConfig("some-team", "some-pipeline", config, db.ConfigVersion(1), db.PipelineUnpaused) pipelineDB, err = pipelineDBFactory.BuildWithTeamNameAndName("some-team", "some-pipeline") Expect(err).NotTo(HaveOccurred()) }) AfterEach(func() { err := dbConn.Close() Expect(err).NotTo(HaveOccurred()) err = listener.Close() Expect(err).NotTo(HaveOccurred()) }) Context("volume data", func() { var ( volumeToInsert db.Volume
var pipelineDB db.PipelineDB var pipelineDBFactory db.PipelineDBFactory var dbSharedBehaviorInput = dbSharedBehaviorInput{} BeforeEach(func() { var err error postgresRunner.CreateTestDB() dbConn = postgresRunner.Open() listener = pq.NewListener(postgresRunner.DataSourceName(), time.Second, time.Minute, nil) Eventually(listener.Ping, 5*time.Second).ShouldNot(HaveOccurred()) bus := db.NewNotificationsBus(listener) sqlDB = db.NewSQL(lagertest.NewTestLogger("test"), dbConn, bus) sqlDB.SaveConfig("some-pipeline", atc.Config{}, db.ConfigVersion(1), db.PipelineUnpaused) pipelineDBFactory = db.NewPipelineDBFactory(lagertest.NewTestLogger("test"), dbConn, bus, sqlDB) pipelineDB, err = pipelineDBFactory.BuildWithName("some-pipeline") Ω(err).ShouldNot(HaveOccurred()) dbSharedBehaviorInput.DB = sqlDB dbSharedBehaviorInput.PipelineDB = pipelineDB }) AfterEach(func() { err := dbConn.Close() Ω(err).ShouldNot(HaveOccurred()) err = listener.Close() Ω(err).ShouldNot(HaveOccurred())
pipeline, err := database.GetPipelineByTeamNameAndName(team.Name, pipelineName) Expect(err).NotTo(HaveOccurred()) Expect(pipeline.Name).To(Equal(pipelineName)) Expect(pipeline.Config).To(Equal(config)) Expect(pipeline.ID).NotTo(Equal(0)) otherPipeline, err := database.GetPipelineByTeamNameAndName(team.Name, otherPipelineName) Expect(err).NotTo(HaveOccurred()) Expect(otherPipeline.Name).To(Equal(otherPipelineName)) Expect(otherPipeline.Config).To(Equal(otherConfig)) Expect(otherPipeline.ID).NotTo(Equal(0)) }) It("can order pipelines", func() { _, _, err := database.SaveConfig(team.Name, "some-pipeline", atc.Config{}, db.ConfigVersion(1), db.PipelineUnpaused) Expect(err).NotTo(HaveOccurred()) _, _, err = database.SaveConfig(team.Name, "pipeline-1", config, 0, db.PipelineUnpaused) Expect(err).NotTo(HaveOccurred()) _, _, err = database.SaveConfig(team.Name, "pipeline-2", config, 0, db.PipelineUnpaused) Expect(err).NotTo(HaveOccurred()) _, _, err = database.SaveConfig(team.Name, "pipeline-3", config, 0, db.PipelineUnpaused) Expect(err).NotTo(HaveOccurred()) _, _, err = database.SaveConfig(team.Name, "pipeline-4", config, 0, db.PipelineUnpaused) Expect(err).NotTo(HaveOccurred()) _, _, err = database.SaveConfig(team.Name, "pipeline-5", config, 0, db.PipelineUnpaused)