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  }