github.com/fanux/shipyard@v0.0.0-20161009071005-6515ce223235/controller/api/webhookkeys_test.go (about)

     1  package api
     2  
     3  import (
     4  	"encoding/json"
     5  	"net/http"
     6  	"net/http/httptest"
     7  	"testing"
     8  
     9  	"github.com/shipyard/shipyard/dockerhub"
    10  	"github.com/stretchr/testify/assert"
    11  )
    12  
    13  func TestApiGetWebhookKeys(t *testing.T) {
    14  	api, err := getTestApi()
    15  	if err != nil {
    16  		t.Fatal(err)
    17  	}
    18  
    19  	ts := httptest.NewServer(http.HandlerFunc(api.webhookKeys))
    20  	defer ts.Close()
    21  
    22  	res, err := http.Get(ts.URL)
    23  	if err != nil {
    24  		t.Fatal(err)
    25  	}
    26  
    27  	assert.Equal(t, res.StatusCode, 200, "expected response code 200")
    28  	keys := []*dockerhub.WebhookKey{}
    29  
    30  	if err := json.NewDecoder(res.Body).Decode(&keys); err != nil {
    31  		t.Fatal(err)
    32  	}
    33  
    34  	assert.NotEqual(t, len(keys), 0, "expected keys; received none")
    35  
    36  	key := "abcdefg"
    37  
    38  	assert.Equal(t, keys[0].Key, key, "expected key %s; received %s", key, keys[0].Key)
    39  }