Hackaton: Add more unit tests, take 3 (#101525)

* serviceaccounts/secretscan: test Service more thoroughly

* middleware/cookies: add tests for CookieOptions

* anonymous/anonimpl: cover a couple more methods

* components/imguploader: Implement WebDAV integration tests

* components/apikeygen: also check IsValid method

* bus: cover invalid callback signature cases

* cloudmigration/objectstorage: add basic unit tests

* login/social/connectors: add test case for GitHub OAuth fetch emails+orgs

* expr/classic: cover more evaluator types in tests
This commit is contained in:
Matheus Macabu
2025-03-05 08:00:12 +01:00
committed by GitHub
parent dc2defd84f
commit 3539764008
9 changed files with 522 additions and 25 deletions
+37
View File
@@ -0,0 +1,37 @@
package cookies
import (
"net/http"
"net/http/httptest"
"testing"
"github.com/stretchr/testify/require"
)
func TestCookieOptions(t *testing.T) {
rr := httptest.NewRecorder()
expectedName := "cookie-name"
expectedValue := "cookie-value"
WriteCookie(rr, expectedName, expectedValue, 100, nil)
cookie, err := http.ParseSetCookie(rr.Header().Get("Set-Cookie"))
require.NoError(t, err)
require.NotNil(t, cookie)
require.Equal(t, expectedName, cookie.Name)
require.Equal(t, expectedValue, cookie.Value)
require.GreaterOrEqual(t, cookie.MaxAge, 0)
// Does not override but appends to the `Set-Cookie` header.
DeleteCookie(rr, expectedName, nil)
cookieHeader := rr.Header().Values("Set-Cookie")
require.Len(t, cookieHeader, 2)
cookie, err = http.ParseSetCookie(cookieHeader[1])
require.NoError(t, err)
require.NotNil(t, cookie)
require.NoError(t, cookie.Valid())
}