github.com/supabase/cli@v1.168.1/internal/testing/fstest/stdin.go (about)

     1  package fstest
     2  
     3  import (
     4  	"os"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/require"
     8  )
     9  
    10  func MockStdin(t *testing.T, input string) func() {
    11  	// Setup stdin
    12  	r, w, err := os.Pipe()
    13  	require.NoError(t, err)
    14  	_, err = w.WriteString(input)
    15  	require.NoError(t, err)
    16  	require.NoError(t, w.Close())
    17  	// Replace stdin
    18  	oldStdin := os.Stdin
    19  	teardown := func() {
    20  		os.Stdin = oldStdin
    21  	}
    22  	os.Stdin = r
    23  	return teardown
    24  }