github.com/vseinstrumentiru/lego@v1.0.2/internal/lego/build/handler_test.go (about)

     1  package build
     2  
     3  import (
     4  	"encoding/json"
     5  	"net/http/httptest"
     6  	"runtime"
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/assert"
    10  )
    11  
    12  func TestHandler(t *testing.T) {
    13  	buildinfo := New("version", "commit", "date")
    14  
    15  	server := httptest.NewServer(Handler(buildinfo))
    16  	defer server.Close()
    17  
    18  	resp, err := server.Client().Get(server.URL)
    19  	if err != nil {
    20  		t.Fatal(err)
    21  	}
    22  	defer resp.Body.Close()
    23  
    24  	var actualFields map[string]interface{}
    25  
    26  	decoder := json.NewDecoder(resp.Body)
    27  
    28  	err = decoder.Decode(&actualFields)
    29  	if err != nil {
    30  		t.Fatal(err)
    31  	}
    32  
    33  	expectedFields := map[string]interface{}{
    34  		"version":     "version",
    35  		"commit_hash": "commit",
    36  		"build_date":  "date",
    37  		"go_version":  runtime.Version(),
    38  		"os":          runtime.GOOS,
    39  		"arch":        runtime.GOARCH,
    40  		"compiler":    runtime.Compiler,
    41  	}
    42  
    43  	assert.Equal(t, expectedFields, actualFields)
    44  }