Skip to content

xplorfin/netutils

Repository files navigation

Coverage Status Renovate enabled Build status Build status Go Report Card

Netutils

This is a series of networking utilities and test wrappers by entropy for building robust networked services in golang. See the godoc for details

What can I do with this?

The godoc should cover most of it. I've highlighted a few things below and will add more examples as time goes on. Examples are also present in the godoc

Mocking:

One thing peculiarity of the httmock library is you can't actually pass it a handler. WrapHandler let's you do so:

Handler Mocking:

(see mock_test for a more detailed example)

   package main
   import (
   	"github.com/jarcoal/httpmock"
   )

       func main(){
       httpmock.Activate()
       defer httpmock.Deactivate()
       ctx := context.Background()
       requestCount := 0
       testServer := http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
           rw.WriteHeader(200)
       })
   
       httpmock.RegisterResponder("POST", "https://api.github.com/graphql", testutils.WrapHandler(testServer))
}   

There's also a fasthttp module for mocking fasthttp servers/clients with http mock (see tests)