github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/db/pipeline_factory_test.go (about) 1 package db_test 2 3 import ( 4 "github.com/pf-qiu/concourse/v6/atc" 5 "github.com/pf-qiu/concourse/v6/atc/db" 6 . "github.com/onsi/ginkgo" 7 . "github.com/onsi/gomega" 8 ) 9 10 var _ = Describe("Pipeline Factory", func() { 11 var pipelineFactory db.PipelineFactory 12 13 BeforeEach(func() { 14 pipelineFactory = db.NewPipelineFactory(dbConn, lockFactory) 15 }) 16 17 Describe("VisiblePipelines", func() { 18 var ( 19 pipeline1 db.Pipeline 20 pipeline2 db.Pipeline 21 pipeline3 db.Pipeline 22 ) 23 24 BeforeEach(func() { 25 err := defaultPipeline.Destroy() 26 Expect(err).ToNot(HaveOccurred()) 27 28 team, err := teamFactory.CreateTeam(atc.Team{Name: "some-team"}) 29 Expect(err).ToNot(HaveOccurred()) 30 31 pipeline1, _, err = team.SavePipeline(atc.PipelineRef{Name: "fake-pipeline"}, atc.Config{ 32 Jobs: atc.JobConfigs{ 33 {Name: "job-name"}, 34 }, 35 }, db.ConfigVersion(1), false) 36 Expect(err).ToNot(HaveOccurred()) 37 Expect(pipeline1.Reload()).To(BeTrue()) 38 39 pipeline2, _, err = defaultTeam.SavePipeline(atc.PipelineRef{Name: "fake-pipeline-two"}, atc.Config{ 40 Jobs: atc.JobConfigs{ 41 {Name: "job-fake"}, 42 }, 43 }, db.ConfigVersion(1), false) 44 Expect(err).ToNot(HaveOccurred()) 45 Expect(pipeline2.Reload()).To(BeTrue()) 46 47 pipeline3, _, err = defaultTeam.SavePipeline(atc.PipelineRef{Name: "fake-pipeline-three"}, atc.Config{ 48 Jobs: atc.JobConfigs{ 49 {Name: "job-fake-two"}, 50 }, 51 }, db.ConfigVersion(1), false) 52 Expect(err).ToNot(HaveOccurred()) 53 Expect(pipeline3.Expose()).To(Succeed()) 54 Expect(pipeline3.Reload()).To(BeTrue()) 55 }) 56 57 It("returns all pipelines visible for the given teams", func() { 58 pipelines, err := pipelineFactory.VisiblePipelines([]string{"some-team"}) 59 Expect(err).ToNot(HaveOccurred()) 60 Expect(len(pipelines)).To(Equal(2)) 61 Expect(pipelines[0].Name()).To(Equal(pipeline1.Name())) 62 Expect(pipelines[1].Name()).To(Equal(pipeline3.Name())) 63 }) 64 65 It("returns all pipelines visible when empty team name provided", func() { 66 pipelines, err := pipelineFactory.VisiblePipelines([]string{""}) 67 Expect(err).ToNot(HaveOccurred()) 68 Expect(len(pipelines)).To(Equal(1)) 69 Expect(pipelines[0].Name()).To(Equal(pipeline3.Name())) 70 }) 71 72 It("returns all pipelines visible when empty teams provided", func() { 73 pipelines, err := pipelineFactory.VisiblePipelines([]string{}) 74 Expect(err).ToNot(HaveOccurred()) 75 Expect(len(pipelines)).To(Equal(1)) 76 Expect(pipelines[0].Name()).To(Equal(pipeline3.Name())) 77 }) 78 79 It("returns all pipelines visible when nil teams provided", func() { 80 pipelines, err := pipelineFactory.VisiblePipelines(nil) 81 Expect(err).ToNot(HaveOccurred()) 82 Expect(len(pipelines)).To(Equal(1)) 83 Expect(pipelines[0].Name()).To(Equal(pipeline3.Name())) 84 }) 85 }) 86 87 Describe("AllPipelines", func() { 88 var ( 89 pipeline1 db.Pipeline 90 pipeline2 db.Pipeline 91 pipeline3 db.Pipeline 92 ) 93 94 BeforeEach(func() { 95 err := defaultPipeline.Destroy() 96 Expect(err).ToNot(HaveOccurred()) 97 98 team, err := teamFactory.CreateTeam(atc.Team{Name: "some-team"}) 99 Expect(err).ToNot(HaveOccurred()) 100 101 pipeline2, _, err = team.SavePipeline(atc.PipelineRef{Name: "fake-pipeline-two"}, atc.Config{ 102 Jobs: atc.JobConfigs{ 103 {Name: "job-fake"}, 104 }, 105 }, db.ConfigVersion(1), false) 106 Expect(err).ToNot(HaveOccurred()) 107 Expect(pipeline2.Reload()).To(BeTrue()) 108 109 pipeline3, _, err = team.SavePipeline(atc.PipelineRef{Name: "fake-pipeline-three"}, atc.Config{ 110 Jobs: atc.JobConfigs{ 111 {Name: "job-fake-two"}, 112 }, 113 }, db.ConfigVersion(1), false) 114 Expect(err).ToNot(HaveOccurred()) 115 Expect(pipeline3.Expose()).To(Succeed()) 116 Expect(pipeline3.Reload()).To(BeTrue()) 117 118 pipeline1, _, err = defaultTeam.SavePipeline(atc.PipelineRef{Name: "fake-pipeline"}, atc.Config{ 119 Jobs: atc.JobConfigs{ 120 {Name: "job-name"}, 121 }, 122 }, db.ConfigVersion(1), false) 123 Expect(err).ToNot(HaveOccurred()) 124 Expect(pipeline1.Expose()).To(Succeed()) 125 Expect(pipeline1.Reload()).To(BeTrue()) 126 127 }) 128 129 It("returns all pipelines ordered by team id", func() { 130 pipelines, err := pipelineFactory.AllPipelines() 131 Expect(err).ToNot(HaveOccurred()) 132 Expect(len(pipelines)).To(Equal(3)) 133 Expect(pipelines[0].Name()).To(Equal(pipeline1.Name())) 134 Expect(pipelines[1].Name()).To(Equal(pipeline2.Name())) 135 Expect(pipelines[2].Name()).To(Equal(pipeline3.Name())) 136 }) 137 }) 138 })