diff options
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) + }) +} |
