diff options
| author | mo khan <mo@mokhan.ca> | 2025-05-07 09:06:48 -0700 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2025-05-07 09:06:48 -0700 |
| commit | ef050c428a0a893607314a4d5d8d441e445e630a (patch) | |
| tree | e6c7e651f1fa75225053bb3c0f28c29ff15f4306 /pkg/web/cookie_test.go | |
| parent | 16641c74b7247f5b5c059f5726fbc724fe3858e4 (diff) | |
refactor: move cookie to web package
Diffstat (limited to 'pkg/web/cookie_test.go')
| -rw-r--r-- | pkg/web/cookie_test.go | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/pkg/web/cookie_test.go b/pkg/web/cookie_test.go new file mode 100644 index 0000000..60cf7cf --- /dev/null +++ b/pkg/web/cookie_test.go @@ -0,0 +1,41 @@ +package web + +import ( + "net/http" + "net/http/httptest" + "testing" + "time" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "github.com/xlgmokha/x/pkg/env" +) + +func TestNewCookie(t *testing.T) { + env.With(env.Vars{"HOST": "sparkle.example.com"}, func() { + cookie := NewCookie("name", "value") + assert.Equal(t, "sparkle.example.com", cookie.Domain) + assert.True(t, cookie.HttpOnly) + assert.True(t, cookie.Secure) + assert.Equal(t, http.SameSiteDefaultMode, cookie.SameSite) + }) +} + +func TestExpireCookie(t *testing.T) { + env.With(env.Vars{"HOST": "sparkle.example.com"}, func() { + w := httptest.NewRecorder() + + ExpireCookie(w, "example") + + result, err := http.ParseSetCookie(w.Header().Get("Set-Cookie")) + require.NoError(t, err) + + assert.Empty(t, result.Value) + assert.Equal(t, "sparkle.example.com", result.Domain) + assert.Equal(t, -1, result.MaxAge) + assert.Equal(t, time.Unix(0, 0).Unix(), result.Expires.Unix()) + assert.True(t, result.HttpOnly) + assert.True(t, result.Secure) + assert.Zero(t, result.SameSite) + }) +} |
