Files
cloud-services/pkg/httphandlers/swagger_docs_handler_test.go

67 lines
1.7 KiB
Go

package httphandlers
import (
"net/http"
"testing"
"fiskerinc.com/modules/testhelper"
)
const expectedRedirectURL = "/docs/index.html"
const expectedNoRedirectURL = ""
func TestSwaggerDocsRedirect(t *testing.T) {
type test struct {
name string
request *http.Request
expectedRedirect string
}
tests := []test{
{
name: "Redirect to index.html",
request: makeRequest("http://test.com/docs"),
expectedRedirect: expectedRedirectURL,
},
{
name: "/ Redirect to index.html",
request: makeRequest("http://test.com/docs/"),
expectedRedirect: expectedRedirectURL,
},
{
name: "Requests index.html, no redirect",
request: makeRequest("http://test.com/docs/index.html"),
expectedRedirect: expectedNoRedirectURL,
},
{
name: "Requests .js, no redirect",
request: makeRequest("http://test.com/docs/index.js"),
expectedRedirect: expectedNoRedirectURL,
},
{
name: "Requests .css, no redirect",
request: makeRequest("http://test.com/docs/index.css"),
expectedRedirect: expectedNoRedirectURL,
},
{
name: "Requests .json, no redirect",
request: makeRequest("http://test.com/docs/index.json"),
expectedRedirect: expectedNoRedirectURL,
},
}
for _, item := range tests {
path := shouldRedirect(item.request)
if path != item.expectedRedirect {
t.Errorf(testhelper.TestErrorTemplate, item.name, item.expectedRedirect, path)
}
}
}
func makeRequest(url string) *http.Request {
request, _ := http.NewRequest(http.MethodGet, url, nil)
request.RequestURI = url
return request
}