Properly reset global state in auth tests

This commit is contained in:
sirkrypt0
2021-05-05 11:33:44 +02:00
parent 9efd08a4c0
commit e230ea854c
2 changed files with 24 additions and 2 deletions

View File

@@ -14,6 +14,7 @@ func mockHTTPHandler(writer http.ResponseWriter, _ *http.Request) {
} }
func TestNewRouterV1WithAuthenticationDisabled(t *testing.T) { func TestNewRouterV1WithAuthenticationDisabled(t *testing.T) {
config.Config.Server.Token = ""
router := mux.NewRouter() router := mux.NewRouter()
v1 := newRouterV1(router) v1 := newRouterV1(router)
@@ -64,4 +65,5 @@ func TestNewRouterV1WithAuthenticationEnabled(t *testing.T) {
router.ServeHTTP(recorder, request) router.ServeHTTP(recorder, request)
assert.Equal(t, http.StatusUnauthorized, recorder.Code) assert.Equal(t, http.StatusUnauthorized, recorder.Code)
}) })
config.Config.Server.Token = ""
} }

View File

@@ -21,8 +21,7 @@ type AuthenticationMiddlewareTestSuite struct {
} }
func (suite *AuthenticationMiddlewareTestSuite) SetupTest() { func (suite *AuthenticationMiddlewareTestSuite) SetupTest() {
config.Config.Server.Token = testToken correctAuthenticationToken = []byte(testToken)
InitializeAuthentication()
suite.recorder = httptest.NewRecorder() suite.recorder = httptest.NewRecorder()
request, err := http.NewRequest(http.MethodGet, "/api/v1/test", nil) request, err := http.NewRequest(http.MethodGet, "/api/v1/test", nil)
if err != nil { if err != nil {
@@ -35,6 +34,10 @@ func (suite *AuthenticationMiddlewareTestSuite) SetupTest() {
})) }))
} }
func (suite *AuthenticationMiddlewareTestSuite) TearDownTest() {
correctAuthenticationToken = []byte(nil)
}
func (suite *AuthenticationMiddlewareTestSuite) TestReturns401WhenHeaderUnset() { func (suite *AuthenticationMiddlewareTestSuite) TestReturns401WhenHeaderUnset() {
suite.httpAuthenticationMiddleware.ServeHTTP(suite.recorder, suite.request) suite.httpAuthenticationMiddleware.ServeHTTP(suite.recorder, suite.request)
assert.Equal(suite.T(), http.StatusUnauthorized, suite.recorder.Code) assert.Equal(suite.T(), http.StatusUnauthorized, suite.recorder.Code)
@@ -69,3 +72,20 @@ func (suite *AuthenticationMiddlewareTestSuite) TestPassesWhenTokenCorrect() {
func TestHTTPAuthenticationMiddleware(t *testing.T) { func TestHTTPAuthenticationMiddleware(t *testing.T) {
suite.Run(t, new(AuthenticationMiddlewareTestSuite)) suite.Run(t, new(AuthenticationMiddlewareTestSuite))
} }
func TestInitializeAuthentication(t *testing.T) {
t.Run("if token unset", func(t *testing.T) {
config.Config.Server.Token = ""
initialized := InitializeAuthentication()
assert.Equal(t, false, initialized)
assert.Equal(t, []byte(nil), correctAuthenticationToken, "it should not set correctAuthenticationToken")
})
t.Run("if token set", func(t *testing.T) {
config.Config.Server.Token = testToken
initialized := InitializeAuthentication()
assert.Equal(t, true, initialized)
assert.Equal(t, []byte(testToken), correctAuthenticationToken, "it should set correctAuthenticationToken")
config.Config.Server.Token = ""
correctAuthenticationToken = []byte(nil)
})
}