github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/integration/archiving_test.go (about) 1 package integration_test 2 3 import ( 4 "github.com/pf-qiu/concourse/v6/atc" 5 concourse "github.com/pf-qiu/concourse/v6/go-concourse/concourse" 6 . "github.com/onsi/ginkgo" 7 . "github.com/onsi/gomega" 8 ) 9 10 var basicPipelineConfig = []byte(` 11 --- 12 jobs: 13 - name: simple 14 `) 15 16 var _ = Describe("ATC Integration Test", func() { 17 var ( 18 client concourse.Client 19 pipelineRef = atc.PipelineRef{Name: "pipeline"} 20 ) 21 22 JustBeforeEach(func() { 23 client = login(atcURL, "test", "test") 24 }) 25 26 It("can archive pipelines", func() { 27 givenAPipeline(client, pipelineRef) 28 29 whenIArchiveIt(client, pipelineRef) 30 31 pipeline := getPipeline(client, pipelineRef) 32 Expect(pipeline.Archived).To(BeTrue(), "pipeline was not archived") 33 Expect(pipeline.Paused).To(BeTrue(), "pipeline was not paused") 34 }) 35 36 It("fails when unpausing an archived pipeline", func() { 37 givenAPipeline(client, pipelineRef) 38 whenIArchiveIt(client, pipelineRef) 39 40 _, err := client.Team("main").UnpausePipeline(pipelineRef) 41 42 Expect(err).To(HaveOccurred()) 43 Expect(err.Error()).To(ContainSubstring("action not allowed for an archived pipeline")) 44 }) 45 46 It("archived pipelines can have their name re-used", func() { 47 givenAPipeline(client, pipelineRef) 48 whenIArchiveIt(client, pipelineRef) 49 50 _, version, _, _ := client.Team("main").PipelineConfig(pipelineRef) 51 client.Team("main").CreateOrUpdatePipelineConfig(pipelineRef, version, basicPipelineConfig, false) 52 53 pipeline := getPipeline(client, pipelineRef) 54 Expect(pipeline.Archived).To(BeFalse(), "pipeline is still archived") 55 Expect(pipeline.Paused).To(BeTrue(), "pipeline was not paused") 56 }) 57 58 It("archiving a pipeline results in it being paused", func() { 59 givenAPipeline(client, pipelineRef) 60 whenIUnpauseIt(client, pipelineRef) 61 62 whenIArchiveIt(client, pipelineRef) 63 64 pipeline := getPipeline(client, pipelineRef) 65 Expect(pipeline.Paused).To(BeTrue(), "pipeline was not paused") 66 }) 67 68 It("archiving a pipeline purges its config", func() { 69 givenAPipeline(client, pipelineRef) 70 71 whenIArchiveIt(client, pipelineRef) 72 73 _, hasConfig := getPipelineConfig(client, pipelineRef) 74 Expect(hasConfig).To(BeFalse()) 75 }) 76 }) 77 78 func givenAPipeline(client concourse.Client, pipelineRef atc.PipelineRef) { 79 _, _, _, err := client.Team("main").CreateOrUpdatePipelineConfig(pipelineRef, "0", basicPipelineConfig, false) 80 Expect(err).NotTo(HaveOccurred()) 81 } 82 83 func whenIUnpauseIt(client concourse.Client, pipelineRef atc.PipelineRef) { 84 _, err := client.Team("main").UnpausePipeline(pipelineRef) 85 Expect(err).ToNot(HaveOccurred()) 86 } 87 88 func whenIArchiveIt(client concourse.Client, pipelineRef atc.PipelineRef) { 89 _, err := client.Team("main").ArchivePipeline(pipelineRef) 90 Expect(err).ToNot(HaveOccurred()) 91 } 92 93 func getPipeline(client concourse.Client, pipelineRef atc.PipelineRef) atc.Pipeline { 94 pipeline, _, err := client.Team("main").Pipeline(pipelineRef) 95 Expect(err).ToNot(HaveOccurred()) 96 return pipeline 97 } 98 99 func getPipelineConfig(client concourse.Client, pipelineRef atc.PipelineRef) (atc.Config, bool) { 100 config, _, ok, err := client.Team("main").PipelineConfig(pipelineRef) 101 Expect(err).ToNot(HaveOccurred()) 102 return config, ok 103 }