github.com/argoproj/argo-cd/v3@v3.2.1/test/e2e/fixture/project/consequences.go (about) 1 package project 2 3 import ( 4 "context" 5 "time" 6 7 "github.com/argoproj/argo-cd/v3/pkg/apiclient/project" 8 9 "github.com/argoproj/argo-cd/v3/test/e2e/fixture" 10 ) 11 12 // this implements the "then" part of given/when/then 13 type Consequences struct { 14 context *Context 15 actions *Actions 16 } 17 18 func (c *Consequences) Expect() *Consequences { 19 return c 20 } 21 22 func (c *Consequences) And(block func(app *project.DetailedProjectsResponse, err error)) *Consequences { 23 c.context.t.Helper() 24 block(c.detailedProject()) 25 return c 26 } 27 28 func (c *Consequences) detailedProject() (*project.DetailedProjectsResponse, error) { 29 prj, err := c.get() 30 return prj, err 31 } 32 33 func (c *Consequences) get() (*project.DetailedProjectsResponse, error) { 34 _, projectClient, _ := fixture.ArgoCDClientset.NewProjectClient() 35 prj, err := projectClient.GetDetailedProject(context.Background(), &project.ProjectQuery{ 36 Name: c.context.name, 37 }) 38 39 return prj, err 40 } 41 42 func (c *Consequences) Given() *Context { 43 return c.context 44 } 45 46 func (c *Consequences) When() *Actions { 47 time.Sleep(fixture.WhenThenSleepInterval) 48 return c.actions 49 }