package main import ( "context" "testing" "testing/synctest" "github.com/stretchr/testify/require" ) func TestRunWaitsForSignalContext(t *testing.T) { synctest.Test(t, func(t *testing.T) { ctx, cancel := context.WithCancel(t.Context()) defer cancel() finished := make(chan error, 1) go func() { finished <- run(ctx) }() synctest.Wait() require.Empty(t, finished) cancel() require.NoError(t, <-finished) }) }