github.com/tilt-dev/tilt@v0.36.0/internal/tiltfile/cisettings/ci_settings_test.go (about)

     1  package cisettings
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	"github.com/stretchr/testify/require"
     8  
     9  	"github.com/tilt-dev/tilt/internal/tiltfile/starkit"
    10  	"github.com/tilt-dev/tilt/pkg/model"
    11  )
    12  
    13  func TestK8sGracePeriod(t *testing.T) {
    14  	f := newFixture(t)
    15  	f.File("Tiltfile", `
    16  ci_settings(k8s_grace_period='3m')
    17  `)
    18  
    19  	result, err := f.ExecFile("Tiltfile")
    20  	require.NoError(t, err)
    21  
    22  	ci, err := GetState(result)
    23  	require.NoError(t, err)
    24  	require.Equal(t, 3*time.Minute, ci.K8sGracePeriod.Duration)
    25  	require.Equal(t, model.CITimeoutDefault, ci.Timeout.Duration)
    26  }
    27  
    28  func TestK8sGracePeriodOverride(t *testing.T) {
    29  	f := newFixture(t)
    30  	f.File("Tiltfile", `
    31  ci_settings(k8s_grace_period='3m')
    32  ci_settings(k8s_grace_period='5s')
    33  `)
    34  
    35  	result, err := f.ExecFile("Tiltfile")
    36  	require.NoError(t, err)
    37  
    38  	ci, err := GetState(result)
    39  	require.NoError(t, err)
    40  	require.Equal(t, 5*time.Second, ci.K8sGracePeriod.Duration)
    41  }
    42  
    43  func TestK8sGracePeriodOverrideEmpty(t *testing.T) {
    44  	f := newFixture(t)
    45  	f.File("Tiltfile", `
    46  ci_settings(k8s_grace_period='3m')
    47  ci_settings()
    48  `)
    49  
    50  	result, err := f.ExecFile("Tiltfile")
    51  	require.NoError(t, err)
    52  
    53  	ci, err := GetState(result)
    54  	require.NoError(t, err)
    55  	require.Equal(t, 3*time.Minute, ci.K8sGracePeriod.Duration)
    56  }
    57  
    58  func TestTimeout(t *testing.T) {
    59  	f := newFixture(t)
    60  	f.File("Tiltfile", `
    61  ci_settings(timeout='3m')
    62  ci_settings()
    63  `)
    64  
    65  	result, err := f.ExecFile("Tiltfile")
    66  	require.NoError(t, err)
    67  
    68  	ci, err := GetState(result)
    69  	require.NoError(t, err)
    70  	require.Equal(t, 3*time.Minute, ci.Timeout.Duration)
    71  }
    72  
    73  func TestReadinessTimeout(t *testing.T) {
    74  	f := newFixture(t)
    75  	f.File("Tiltfile", `
    76  ci_settings(readiness_timeout='2m')
    77  ci_settings()
    78  `)
    79  
    80  	result, err := f.ExecFile("Tiltfile")
    81  	require.NoError(t, err)
    82  
    83  	ci, err := GetState(result)
    84  	require.NoError(t, err)
    85  	require.Equal(t, 2*time.Minute, ci.ReadinessTimeout.Duration)
    86  }
    87  
    88  func newFixture(t testing.TB) *starkit.Fixture {
    89  	return starkit.NewFixture(t, NewPlugin(model.CITimeoutFlag(model.CITimeoutDefault)))
    90  }