github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/internal/testutils/uiresourcebuilder/uiresourcebuilder.go (about)

     1  package uiresourcebuilder
     2  
     3  import (
     4  	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
     5  
     6  	"github.com/tilt-dev/tilt/pkg/apis/core/v1alpha1"
     7  )
     8  
     9  type UIResourceBuilder struct {
    10  	name          string
    11  	disabledCount int
    12  	disableSource *v1alpha1.DisableSource
    13  	labels        map[string]string
    14  }
    15  
    16  func New(name string) *UIResourceBuilder {
    17  	return &UIResourceBuilder{
    18  		name:   name,
    19  		labels: make(map[string]string),
    20  	}
    21  }
    22  
    23  func (u *UIResourceBuilder) WithDisabledCount(i int) *UIResourceBuilder {
    24  	u.disabledCount = i
    25  	return u
    26  }
    27  
    28  func (u *UIResourceBuilder) WithDisableSource(s v1alpha1.DisableSource) *UIResourceBuilder {
    29  	u.disableSource = &s
    30  	return u
    31  }
    32  
    33  func (u *UIResourceBuilder) WithLabel(l string) *UIResourceBuilder {
    34  	u.labels[l] = l
    35  	return u
    36  }
    37  
    38  func (u *UIResourceBuilder) Build() *v1alpha1.UIResource {
    39  	result := &v1alpha1.UIResource{
    40  		ObjectMeta: metav1.ObjectMeta{
    41  			Name:   u.name,
    42  			Labels: u.labels,
    43  		},
    44  		Status: v1alpha1.UIResourceStatus{
    45  			DisableStatus: v1alpha1.DisableResourceStatus{
    46  				DisabledCount: int32(u.disabledCount),
    47  			},
    48  		},
    49  	}
    50  	if u.disableSource != nil {
    51  		result.Status.DisableStatus.Sources = append(result.Status.DisableStatus.Sources, *u.disableSource)
    52  	}
    53  
    54  	return result
    55  }