github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/db/team_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("Team Factory", func() {
    11  	var (
    12  		atcTeam atc.Team
    13  	)
    14  
    15  	BeforeEach(func() {
    16  		atcTeam = atc.Team{
    17  			Name: "some-team",
    18  			Auth: atc.TeamAuth{
    19  				"owner": {"users": []string{"local:username"}},
    20  			},
    21  		}
    22  	})
    23  
    24  	Describe("CreateTeam", func() {
    25  		var team db.Team
    26  		BeforeEach(func() {
    27  			var err error
    28  			team, err = teamFactory.CreateTeam(atcTeam)
    29  			Expect(err).ToNot(HaveOccurred())
    30  		})
    31  
    32  		It("creates the correct team", func() {
    33  			Expect(team.Name()).To(Equal(atcTeam.Name))
    34  			Expect(team.Auth()).To(Equal(atcTeam.Auth))
    35  
    36  			t, found, err := teamFactory.FindTeam(atcTeam.Name)
    37  			Expect(err).NotTo(HaveOccurred())
    38  			Expect(found).To(BeTrue())
    39  			Expect(t.ID()).To(Equal(team.ID()))
    40  		})
    41  	})
    42  
    43  	Describe("FindTeam", func() {
    44  		var (
    45  			team  db.Team
    46  			found bool
    47  		)
    48  
    49  		JustBeforeEach(func() {
    50  			var err error
    51  			team, found, err = teamFactory.FindTeam("some-team")
    52  			Expect(err).ToNot(HaveOccurred())
    53  		})
    54  
    55  		Context("when the team exists", func() {
    56  			BeforeEach(func() {
    57  				var err error
    58  				_, err = teamFactory.CreateTeam(atcTeam)
    59  				Expect(err).ToNot(HaveOccurred())
    60  			})
    61  
    62  			It("finds the correct team", func() {
    63  				Expect(team.Name()).To(Equal(atcTeam.Name))
    64  				Expect(team.Auth()).To(Equal(atcTeam.Auth))
    65  			})
    66  		})
    67  
    68  		Context("when the team does not exist", func() {
    69  			It("returns not found", func() {
    70  				Expect(team).To(BeNil())
    71  				Expect(found).To(BeFalse())
    72  			})
    73  		})
    74  	})
    75  
    76  	Describe("CreateDefaultTeamIfNotExists", func() {
    77  		It("creates the default team", func() {
    78  			t, found, err := teamFactory.FindTeam(atc.DefaultTeamName)
    79  			Expect(err).NotTo(HaveOccurred())
    80  			if found {
    81  				Expect(t.Admin()).To(BeFalse())
    82  			}
    83  
    84  			team, err := teamFactory.CreateDefaultTeamIfNotExists()
    85  			Expect(err).NotTo(HaveOccurred())
    86  			Expect(team.Admin()).To(BeTrue())
    87  
    88  			t, found, err = teamFactory.FindTeam(atc.DefaultTeamName)
    89  			Expect(err).NotTo(HaveOccurred())
    90  			Expect(found).To(BeTrue())
    91  			Expect(t.ID()).To(Equal(team.ID()))
    92  		})
    93  
    94  		Context("when the default team already exists", func() {
    95  			It("does not duplicate the default team", func() {
    96  				team, err := teamFactory.CreateDefaultTeamIfNotExists()
    97  				Expect(err).NotTo(HaveOccurred())
    98  
    99  				team2, err := teamFactory.CreateDefaultTeamIfNotExists()
   100  				Expect(err).NotTo(HaveOccurred())
   101  
   102  				Expect(team.ID()).To(Equal(team2.ID()))
   103  			})
   104  		})
   105  	})
   106  
   107  	Describe("GetTeams", func() {
   108  		var (
   109  			teams []db.Team
   110  		)
   111  
   112  		BeforeEach(func() {
   113  			err := defaultTeam.Delete()
   114  			Expect(err).ToNot(HaveOccurred())
   115  		})
   116  
   117  		JustBeforeEach(func() {
   118  			var err error
   119  			teams, err = teamFactory.GetTeams()
   120  			Expect(err).ToNot(HaveOccurred())
   121  		})
   122  
   123  		Context("when there is one team", func() {
   124  			BeforeEach(func() {
   125  				var err error
   126  				_, err = teamFactory.CreateTeam(atcTeam)
   127  				Expect(err).ToNot(HaveOccurred())
   128  			})
   129  
   130  			It("returns the team", func() {
   131  				Expect(teams).To(HaveLen(1))
   132  
   133  				Expect(teams[0].Name()).To(Equal(atcTeam.Name))
   134  				Expect(teams[0].Auth()).To(Equal(atcTeam.Auth))
   135  			})
   136  		})
   137  
   138  		Context("when there is more than one team", func() {
   139  			BeforeEach(func() {
   140  				var err error
   141  				_, err = teamFactory.CreateTeam(atcTeam)
   142  				Expect(err).ToNot(HaveOccurred())
   143  				_, err = teamFactory.CreateTeam(atc.Team{
   144  					Name: "some-other-team",
   145  				})
   146  				Expect(err).ToNot(HaveOccurred())
   147  			})
   148  
   149  			It("returns both teams", func() {
   150  				Expect(teams).To(HaveLen(2))
   151  
   152  				Expect(teams[0].Name()).To(Equal("some-other-team"))
   153  
   154  				Expect(teams[1].Name()).To(Equal(atcTeam.Name))
   155  				Expect(teams[1].Auth()).To(Equal(atcTeam.Auth))
   156  			})
   157  		})
   158  	})
   159  })