Skip to content

Commit 52d0136

Browse files
committed
Add Logout test
1 parent af001cb commit 52d0136

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

coderd/users_test.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@ package coderd_test
22

33
import (
44
"context"
5+
"net/http"
56
"testing"
67

78
"github.com/stretchr/testify/require"
89

910
"github.com/coder/coder/coderd"
1011
"github.com/coder/coder/coderd/coderdtest"
12+
"github.com/coder/coder/httpmw"
1113
)
1214

1315
func TestUsers(t *testing.T) {
@@ -74,3 +76,30 @@ func TestUsers(t *testing.T) {
7476
require.Len(t, orgs, 1)
7577
})
7678
}
79+
80+
func TestLogout(t *testing.T) {
81+
t.Parallel()
82+
83+
t.Run("LogoutShouldClearCookie", func(t *testing.T) {
84+
t.Parallel()
85+
86+
server := coderdtest.New(t)
87+
fullURL, err := server.URL.Parse("/api/v2/logout")
88+
require.NoError(t, err, "Server URL should parse successfully")
89+
90+
req, err := http.NewRequestWithContext(context.Background(), http.MethodPost, fullURL.String(), nil)
91+
require.NoError(t, err, "/logout request construction should succeed")
92+
93+
httpClient := &http.Client{}
94+
95+
response, err := httpClient.Do(req)
96+
require.NoError(t, err, "/logout request should succeed")
97+
response.Body.Close()
98+
99+
cookies := response.Cookies()
100+
require.Len(t, cookies, 1, "Exactly one cookie should be returned")
101+
102+
require.Equal(t, cookies[0].Name, httpmw.AuthCookie, "Cookie should be the auth cookie")
103+
require.Equal(t, cookies[0].MaxAge, -1, "Cookie should be set to delete")
104+
})
105+
}

0 commit comments

Comments
 (0)