github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/skymarshal/skyserver/skyserver_suite_test.go (about)

     1  package skyserver_test
     2  
     3  import (
     4  	"crypto/rand"
     5  	"crypto/rsa"
     6  	"net/http/httptest"
     7  	"testing"
     8  
     9  	. "github.com/onsi/ginkgo"
    10  	. "github.com/onsi/gomega"
    11  
    12  	"code.cloudfoundry.org/lager/lagertest"
    13  	"github.com/pf-qiu/concourse/v6/skymarshal/skyserver"
    14  	"github.com/pf-qiu/concourse/v6/skymarshal/token/tokenfakes"
    15  	"github.com/onsi/gomega/ghttp"
    16  	"golang.org/x/oauth2"
    17  )
    18  
    19  var (
    20  	fakeTokenMiddleware *tokenfakes.FakeMiddleware
    21  	fakeTokenParser     *tokenfakes.FakeParser
    22  	skyServer           *httptest.Server
    23  	dexServer           *ghttp.Server
    24  	signingKey          *rsa.PrivateKey
    25  	config              *skyserver.SkyConfig
    26  )
    27  
    28  func TestSkyServer(t *testing.T) {
    29  	RegisterFailHandler(Fail)
    30  	RunSpecs(t, "Sky Server Suite")
    31  }
    32  
    33  var _ = BeforeEach(func() {
    34  	var err error
    35  
    36  	fakeTokenMiddleware = new(tokenfakes.FakeMiddleware)
    37  	fakeTokenParser = new(tokenfakes.FakeParser)
    38  
    39  	dexServer = ghttp.NewTLSServer()
    40  
    41  	signingKey, err = rsa.GenerateKey(rand.Reader, 2048)
    42  	Expect(err).NotTo(HaveOccurred())
    43  
    44  	endpoint := oauth2.Endpoint{
    45  		AuthURL:   dexServer.URL() + "/auth",
    46  		TokenURL:  dexServer.URL() + "/token",
    47  		AuthStyle: oauth2.AuthStyleInHeader,
    48  	}
    49  
    50  	oauthConfig := &oauth2.Config{
    51  		Endpoint:     endpoint,
    52  		ClientID:     "dex-client-id",
    53  		ClientSecret: "dex-client-secret",
    54  		Scopes:       []string{"some-scope"},
    55  	}
    56  
    57  	config = &skyserver.SkyConfig{
    58  		Logger:          lagertest.NewTestLogger("sky"),
    59  		TokenMiddleware: fakeTokenMiddleware,
    60  		TokenParser:     fakeTokenParser,
    61  		OAuthConfig:     oauthConfig,
    62  		HTTPClient:      dexServer.HTTPTestServer.Client(),
    63  	}
    64  
    65  	server, err := skyserver.NewSkyServer(config)
    66  	Expect(err).NotTo(HaveOccurred())
    67  
    68  	skyServer = httptest.NewUnstartedServer(skyserver.NewSkyHandler(server))
    69  })
    70  
    71  var _ = AfterEach(func() {
    72  	skyServer.Close()
    73  	dexServer.Close()
    74  })