github.com/kubeshop/testkube@v1.17.23/pkg/repository/testresult/interface.go (about) 1 package testresult 2 3 import ( 4 "context" 5 "time" 6 7 "github.com/kubeshop/testkube/pkg/api/v1/testkube" 8 ) 9 10 const PageDefaultLimit int = 100 11 12 type Filter interface { 13 Name() string 14 NameDefined() bool 15 LastNDays() int 16 LastNDaysDefined() bool 17 StartDate() time.Time 18 StartDateDefined() bool 19 EndDate() time.Time 20 EndDateDefined() bool 21 Statuses() testkube.TestSuiteExecutionStatuses 22 StatusesDefined() bool 23 Page() int 24 PageSize() int 25 TextSearchDefined() bool 26 TextSearch() string 27 Selector() string 28 } 29 30 //go:generate mockgen -destination=./mock_repository.go -package=testresult "github.com/kubeshop/testkube/pkg/repository/testresult" Repository 31 type Repository interface { 32 // Get gets execution result by id or name 33 Get(ctx context.Context, id string) (testkube.TestSuiteExecution, error) 34 // GetByNameAndTestSuite gets execution result by name 35 GetByNameAndTestSuite(ctx context.Context, name, testSuiteName string) (testkube.TestSuiteExecution, error) 36 // GetLatestByTestSuite gets latest execution result by test suite 37 GetLatestByTestSuite(ctx context.Context, testSuiteName string) (*testkube.TestSuiteExecution, error) 38 // GetLatestByTestSuites gets latest execution results by test suite names 39 GetLatestByTestSuites(ctx context.Context, testSuiteNames []string) (executions []testkube.TestSuiteExecution, err error) 40 // GetExecutionsTotals gets executions total stats using a filter, use filter with no data for all 41 GetExecutionsTotals(ctx context.Context, filter ...Filter) (totals testkube.ExecutionsTotals, err error) 42 // GetExecutions gets executions using a filter, use filter with no data for all 43 GetExecutions(ctx context.Context, filter Filter) ([]testkube.TestSuiteExecution, error) 44 // Insert inserts new execution result 45 Insert(ctx context.Context, result testkube.TestSuiteExecution) error 46 // Update updates execution result 47 Update(ctx context.Context, result testkube.TestSuiteExecution) error 48 // StartExecution updates execution start time 49 StartExecution(ctx context.Context, id string, startTime time.Time) error 50 // EndExecution updates execution end time 51 EndExecution(ctx context.Context, execution testkube.TestSuiteExecution) error 52 // DeleteByTestSuite deletes execution results by test suite 53 DeleteByTestSuite(ctx context.Context, testSuiteName string) error 54 // DeleteAll deletes all execution results 55 DeleteAll(ctx context.Context) error 56 // DeleteByTestSuites deletes execution results by test suites 57 DeleteByTestSuites(ctx context.Context, testSuiteNames []string) (err error) 58 // GetTestSuiteMetrics returns metrics for test suite 59 GetTestSuiteMetrics(ctx context.Context, name string, limit, last int) (metrics testkube.ExecutionsMetrics, err error) 60 // Count returns executions count 61 Count(ctx context.Context, filter Filter) (int64, error) 62 }