Initial commit
This commit is contained in:
49
selfcert_test.go
Normal file
49
selfcert_test.go
Normal file
@@ -0,0 +1,49 @@
|
||||
package selfcert_test
|
||||
|
||||
import (
|
||||
"context"
|
||||
"crypto/tls"
|
||||
"fmt"
|
||||
"net"
|
||||
"net/http"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/go-resty/resty/v2"
|
||||
"github.com/gopatchy/selfcert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestCert(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
conf, err := selfcert.NewTLSConfigFromHostPort("localhost:0")
|
||||
require.NoError(t, err)
|
||||
|
||||
listener, err := tls.Listen("tcp", "localhost:0", conf)
|
||||
require.NoError(t, err)
|
||||
|
||||
baseURL := fmt.Sprintf("https://localhost:%d/", listener.Addr().(*net.TCPAddr).Port)
|
||||
|
||||
srv := &http.Server{
|
||||
ReadHeaderTimeout: 1 * time.Second,
|
||||
}
|
||||
|
||||
go func() {
|
||||
_ = srv.Serve(listener)
|
||||
}()
|
||||
|
||||
cli := resty.New()
|
||||
cli.SetBaseURL(baseURL)
|
||||
cli.SetTLSClientConfig(&tls.Config{
|
||||
InsecureSkipVerify: true, //nolint:gosec
|
||||
})
|
||||
|
||||
resp, err := cli.R().Get("/")
|
||||
require.NoError(t, err)
|
||||
require.True(t, resp.IsError())
|
||||
require.Equal(t, resp.StatusCode(), 404)
|
||||
|
||||
err = srv.Shutdown(context.Background())
|
||||
require.NoError(t, err)
|
||||
}
|
||||
Reference in New Issue
Block a user