github.com/smartcontractkit/chainlink-testing-framework/libs@v0.0.0-20240227141906-ec710b4eb1a3/docker/test_env/mockserver_test.go (about)

     1  package test_env
     2  
     3  import (
     4  	"bytes"
     5  	"fmt"
     6  	"net/http"
     7  	"testing"
     8  	"time"
     9  
    10  	"github.com/stretchr/testify/require"
    11  
    12  	"github.com/smartcontractkit/chainlink-testing-framework/libs/docker"
    13  	"github.com/smartcontractkit/chainlink-testing-framework/libs/logging"
    14  )
    15  
    16  func TestMockServerSetStringValue(t *testing.T) {
    17  	l := logging.GetTestLogger(t)
    18  	network, err := docker.CreateNetwork(l)
    19  	require.NoError(t, err)
    20  
    21  	m := NewMockServer([]string{network.Name}).
    22  		WithTestInstance(t)
    23  	err = m.StartContainer()
    24  	require.NoError(t, err)
    25  
    26  	expected := "bar"
    27  	path := "/foo"
    28  	err = m.Client.SetStringValuePath(path, expected)
    29  	require.NoError(t, err)
    30  
    31  	url := fmt.Sprintf("%s%s", m.Client.LocalURL(), path)
    32  	client := &http.Client{
    33  		Timeout: 10 * time.Second,
    34  	}
    35  
    36  	resp, err := client.Get(url)
    37  	require.NoError(t, err)
    38  	defer resp.Body.Close()
    39  	require.Equal(t, http.StatusOK, resp.StatusCode)
    40  
    41  	buf := new(bytes.Buffer)
    42  	_, err = buf.ReadFrom(resp.Body)
    43  	require.NoError(t, err)
    44  
    45  	responseString := buf.String()
    46  	require.Equal(t, expected, responseString)
    47  }