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  }