github.com/tilt-dev/tilt@v0.36.0/integration/docker_prune_test.go (about)

     1  //go:build integration
     2  // +build integration
     3  
     4  package integration
     5  
     6  import (
     7  	"io"
     8  	"os"
     9  	"strings"
    10  	"testing"
    11  
    12  	"github.com/stretchr/testify/assert"
    13  	"github.com/stretchr/testify/require"
    14  )
    15  
    16  func TestCLI_DockerPrune(t *testing.T) {
    17  	f := newK8sFixture(t, "docker_prune")
    18  	f.SetRestrictedCredentials()
    19  
    20  	t.Log("Running `tilt ci` to trigger a build")
    21  	f.TiltCI()
    22  	t.Log("Running `tilt down` to stop running Pod so it can be pruned")
    23  	var outBuf strings.Builder
    24  	require.NoErrorf(t, f.tilt.Down(f.ctx, &outBuf),
    25  		"Error running `tilt down`. Output:\n%s\n", &outBuf)
    26  
    27  	outBuf.Reset()
    28  	c := f.tilt.cmd(f.ctx, []string{"docker-prune", "--debug"}, io.MultiWriter(&outBuf, os.Stdout))
    29  	t.Logf("Running command: %s", c.String())
    30  	err := c.Run()
    31  	require.NoError(t, err, "Error while running command")
    32  	// use assert.True (instead of assert.Contains) - the cmd output is already
    33  	// output for debugging purposes and assert.Contains produces duplicative
    34  	// output (but hard to read due to embedded newlines)
    35  	out := outBuf.String()
    36  	assert.True(t,
    37  		strings.Contains(out, "- untagged:"),
    38  		"Image was not untagged")
    39  	assert.True(t,
    40  		strings.Contains(out, "- deleted: sha256:"),
    41  		"Image was not deleted")
    42  }