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

     1  //go:build integration
     2  // +build integration
     3  
     4  package integration
     5  
     6  import (
     7  	"context"
     8  	"testing"
     9  	"time"
    10  
    11  	"github.com/stretchr/testify/assert"
    12  	"github.com/stretchr/testify/require"
    13  )
    14  
    15  // Ensures live-update works on tilt-handled image builds in dockercompose
    16  func TestDockerComposeImageBuild(t *testing.T) {
    17  	f := newDCFixture(t, "dcbuild")
    18  
    19  	f.dockerKillAll("tilt")
    20  	f.TiltUp()
    21  
    22  	ctx, cancel := context.WithTimeout(f.ctx, time.Minute)
    23  	defer cancel()
    24  
    25  	f.WaitUntil(ctx, "dcbuild up", func() (string, error) {
    26  		return f.dockerCmdOutput([]string{
    27  			"ps", "-f", "name=dcbuild", "--format", "{{.Image}}",
    28  		})
    29  	}, "gcr.io/windmill-test-containers/dcbuild")
    30  
    31  	f.CurlUntil(ctx, "dcbuild", "localhost:8000/index.html", "🍄 One-Up! 🍄")
    32  
    33  	cID1, err := f.dockerContainerID("dcbuild")
    34  	require.NoError(t, err)
    35  
    36  	f.ReplaceContents("compile.sh", "One-Up", "Two-Up")
    37  
    38  	ctx, cancel = context.WithTimeout(f.ctx, time.Minute)
    39  	defer cancel()
    40  	f.CurlUntil(ctx, "dcbuild", "localhost:8000/index.html", "🍄 Two-Up! 🍄")
    41  
    42  	cID2, err := f.dockerContainerID("dcbuild")
    43  	require.NoError(t, err)
    44  
    45  	// Make sure the container was updated in-place
    46  	assert.Equal(t, cID1, cID2)
    47  }