Skip to content

Commit 855a9cc

Browse files
committed
resolve request with middleware
1 parent 0ea358a commit 855a9cc

File tree

1 file changed

+26
-18
lines changed

1 file changed

+26
-18
lines changed

coderd/workspaceapps/db_test.go

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"github.com/coder/coder/v2/coderd/coderdtest"
2323
"github.com/coder/coder/v2/coderd/httpmw"
2424
"github.com/coder/coder/v2/coderd/jwtutils"
25+
"github.com/coder/coder/v2/coderd/tracing"
2526
"github.com/coder/coder/v2/coderd/workspaceapps"
2627
"github.com/coder/coder/v2/coderd/workspaceapps/appurl"
2728
"github.com/coder/coder/v2/codersdk"
@@ -30,6 +31,13 @@ import (
3031
"github.com/coder/coder/v2/testutil"
3132
)
3233

34+
func resolveRequestWithStatusMW(w http.ResponseWriter, r *http.Request, opts workspaceapps.ResolveRequestOptions) (token *workspaceapps.SignedToken, ok bool) {
35+
tracing.StatusWriterMiddleware(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
36+
token, ok = workspaceapps.ResolveRequest(w, r, opts)
37+
})).ServeHTTP(w, r)
38+
return token, ok
39+
}
40+
3341
func Test_ResolveRequest(t *testing.T) {
3442
t.Parallel()
3543

@@ -259,7 +267,7 @@ func Test_ResolveRequest(t *testing.T) {
259267
r.Header.Set(codersdk.SessionTokenHeader, client.SessionToken())
260268

261269
// Try resolving the request without a token.
262-
token, ok := workspaceapps.ResolveRequest(rw, r, workspaceapps.ResolveRequestOptions{
270+
token, ok := resolveRequestWithStatusMW(rw, r, workspaceapps.ResolveRequestOptions{
263271
Logger: api.Logger,
264272
SignedTokenProvider: api.WorkspaceAppsProvider,
265273
DashboardURL: api.AccessURL,
@@ -308,7 +316,7 @@ func Test_ResolveRequest(t *testing.T) {
308316
r = httptest.NewRequest("GET", "/app", nil)
309317
r.AddCookie(cookie)
310318

311-
secondToken, ok := workspaceapps.ResolveRequest(rw, r, workspaceapps.ResolveRequestOptions{
319+
secondToken, ok := resolveRequestWithStatusMW(rw, r, workspaceapps.ResolveRequestOptions{
312320
Logger: api.Logger,
313321
SignedTokenProvider: api.WorkspaceAppsProvider,
314322
DashboardURL: api.AccessURL,
@@ -344,7 +352,7 @@ func Test_ResolveRequest(t *testing.T) {
344352
r := httptest.NewRequest("GET", "/app", nil)
345353
r.Header.Set(codersdk.SessionTokenHeader, secondUserClient.SessionToken())
346354

347-
token, ok := workspaceapps.ResolveRequest(rw, r, workspaceapps.ResolveRequestOptions{
355+
token, ok := resolveRequestWithStatusMW(rw, r, workspaceapps.ResolveRequestOptions{
348356
Logger: api.Logger,
349357
SignedTokenProvider: api.WorkspaceAppsProvider,
350358
DashboardURL: api.AccessURL,
@@ -383,7 +391,7 @@ func Test_ResolveRequest(t *testing.T) {
383391
t.Log("app", app)
384392
rw := httptest.NewRecorder()
385393
r := httptest.NewRequest("GET", "/app", nil)
386-
token, ok := workspaceapps.ResolveRequest(rw, r, workspaceapps.ResolveRequestOptions{
394+
token, ok := resolveRequestWithStatusMW(rw, r, workspaceapps.ResolveRequestOptions{
387395
Logger: api.Logger,
388396
SignedTokenProvider: api.WorkspaceAppsProvider,
389397
DashboardURL: api.AccessURL,
@@ -421,7 +429,7 @@ func Test_ResolveRequest(t *testing.T) {
421429
}).Normalize()
422430
rw := httptest.NewRecorder()
423431
r := httptest.NewRequest("GET", "/app", nil)
424-
token, ok := workspaceapps.ResolveRequest(rw, r, workspaceapps.ResolveRequestOptions{
432+
token, ok := resolveRequestWithStatusMW(rw, r, workspaceapps.ResolveRequestOptions{
425433
Logger: api.Logger,
426434
SignedTokenProvider: api.WorkspaceAppsProvider,
427435
DashboardURL: api.AccessURL,
@@ -502,7 +510,7 @@ func Test_ResolveRequest(t *testing.T) {
502510
r := httptest.NewRequest("GET", "/app", nil)
503511
r.Header.Set(codersdk.SessionTokenHeader, client.SessionToken())
504512

505-
token, ok := workspaceapps.ResolveRequest(rw, r, workspaceapps.ResolveRequestOptions{
513+
token, ok := resolveRequestWithStatusMW(rw, r, workspaceapps.ResolveRequestOptions{
506514
Logger: api.Logger,
507515
SignedTokenProvider: api.WorkspaceAppsProvider,
508516
DashboardURL: api.AccessURL,
@@ -576,7 +584,7 @@ func Test_ResolveRequest(t *testing.T) {
576584

577585
// Even though the token is invalid, we should still perform request
578586
// resolution without failure since we'll just ignore the bad token.
579-
token, ok := workspaceapps.ResolveRequest(rw, r, workspaceapps.ResolveRequestOptions{
587+
token, ok := resolveRequestWithStatusMW(rw, r, workspaceapps.ResolveRequestOptions{
580588
Logger: api.Logger,
581589
SignedTokenProvider: api.WorkspaceAppsProvider,
582590
DashboardURL: api.AccessURL,
@@ -618,7 +626,7 @@ func Test_ResolveRequest(t *testing.T) {
618626
r := httptest.NewRequest("GET", "/app", nil)
619627
r.Header.Set(codersdk.SessionTokenHeader, client.SessionToken())
620628

621-
token, ok := workspaceapps.ResolveRequest(rw, r, workspaceapps.ResolveRequestOptions{
629+
token, ok := resolveRequestWithStatusMW(rw, r, workspaceapps.ResolveRequestOptions{
622630
Logger: api.Logger,
623631
SignedTokenProvider: api.WorkspaceAppsProvider,
624632
DashboardURL: api.AccessURL,
@@ -646,7 +654,7 @@ func Test_ResolveRequest(t *testing.T) {
646654
r := httptest.NewRequest("GET", "/", nil)
647655
r.Header.Set(codersdk.SessionTokenHeader, client.SessionToken())
648656

649-
token, ok := workspaceapps.ResolveRequest(rw, r, workspaceapps.ResolveRequestOptions{
657+
token, ok := resolveRequestWithStatusMW(rw, r, workspaceapps.ResolveRequestOptions{
650658
Logger: api.Logger,
651659
SignedTokenProvider: api.WorkspaceAppsProvider,
652660
DashboardURL: api.AccessURL,
@@ -675,7 +683,7 @@ func Test_ResolveRequest(t *testing.T) {
675683
r := httptest.NewRequest("GET", "/", nil)
676684
r.Header.Set(codersdk.SessionTokenHeader, client.SessionToken())
677685

678-
_, ok := workspaceapps.ResolveRequest(rw, r, workspaceapps.ResolveRequestOptions{
686+
_, ok := resolveRequestWithStatusMW(rw, r, workspaceapps.ResolveRequestOptions{
679687
Logger: api.Logger,
680688
SignedTokenProvider: api.WorkspaceAppsProvider,
681689
DashboardURL: api.AccessURL,
@@ -708,7 +716,7 @@ func Test_ResolveRequest(t *testing.T) {
708716
r := httptest.NewRequest("GET", "/", nil)
709717
r.Header.Set(codersdk.SessionTokenHeader, client.SessionToken())
710718

711-
token, ok := workspaceapps.ResolveRequest(rw, r, workspaceapps.ResolveRequestOptions{
719+
token, ok := resolveRequestWithStatusMW(rw, r, workspaceapps.ResolveRequestOptions{
712720
Logger: api.Logger,
713721
SignedTokenProvider: api.WorkspaceAppsProvider,
714722
DashboardURL: api.AccessURL,
@@ -733,7 +741,7 @@ func Test_ResolveRequest(t *testing.T) {
733741
r := httptest.NewRequest("GET", "/app", nil)
734742
r.Header.Set(codersdk.SessionTokenHeader, client.SessionToken())
735743

736-
token, ok := workspaceapps.ResolveRequest(rw, r, workspaceapps.ResolveRequestOptions{
744+
token, ok := resolveRequestWithStatusMW(rw, r, workspaceapps.ResolveRequestOptions{
737745
Logger: api.Logger,
738746
SignedTokenProvider: api.WorkspaceAppsProvider,
739747
DashboardURL: api.AccessURL,
@@ -767,7 +775,7 @@ func Test_ResolveRequest(t *testing.T) {
767775
r := httptest.NewRequest("GET", "/app", nil)
768776
r.Header.Set(codersdk.SessionTokenHeader, secondUserClient.SessionToken())
769777

770-
token, ok := workspaceapps.ResolveRequest(rw, r, workspaceapps.ResolveRequestOptions{
778+
token, ok := resolveRequestWithStatusMW(rw, r, workspaceapps.ResolveRequestOptions{
771779
Logger: api.Logger,
772780
SignedTokenProvider: api.WorkspaceAppsProvider,
773781
DashboardURL: api.AccessURL,
@@ -794,7 +802,7 @@ func Test_ResolveRequest(t *testing.T) {
794802
r := httptest.NewRequest("GET", "/app", nil)
795803
r.Header.Set(codersdk.SessionTokenHeader, client.SessionToken())
796804

797-
token, ok := workspaceapps.ResolveRequest(rw, r, workspaceapps.ResolveRequestOptions{
805+
token, ok := resolveRequestWithStatusMW(rw, r, workspaceapps.ResolveRequestOptions{
798806
Logger: api.Logger,
799807
SignedTokenProvider: api.WorkspaceAppsProvider,
800808
DashboardURL: api.AccessURL,
@@ -823,7 +831,7 @@ func Test_ResolveRequest(t *testing.T) {
823831
// Should not be used as the hostname in the redirect URI.
824832
r.Host = "app.com"
825833

826-
token, ok := workspaceapps.ResolveRequest(rw, r, workspaceapps.ResolveRequestOptions{
834+
token, ok := resolveRequestWithStatusMW(rw, r, workspaceapps.ResolveRequestOptions{
827835
Logger: api.Logger,
828836
SignedTokenProvider: api.WorkspaceAppsProvider,
829837
DashboardURL: api.AccessURL,
@@ -880,7 +888,7 @@ func Test_ResolveRequest(t *testing.T) {
880888
r := httptest.NewRequest("GET", "/app", nil)
881889
r.Header.Set(codersdk.SessionTokenHeader, client.SessionToken())
882890

883-
token, ok := workspaceapps.ResolveRequest(rw, r, workspaceapps.ResolveRequestOptions{
891+
token, ok := resolveRequestWithStatusMW(rw, r, workspaceapps.ResolveRequestOptions{
884892
Logger: api.Logger,
885893
SignedTokenProvider: api.WorkspaceAppsProvider,
886894
DashboardURL: api.AccessURL,
@@ -937,7 +945,7 @@ func Test_ResolveRequest(t *testing.T) {
937945
r := httptest.NewRequest("GET", "/app", nil)
938946
r.Header.Set(codersdk.SessionTokenHeader, client.SessionToken())
939947

940-
token, ok := workspaceapps.ResolveRequest(rw, r, workspaceapps.ResolveRequestOptions{
948+
token, ok := resolveRequestWithStatusMW(rw, r, workspaceapps.ResolveRequestOptions{
941949
Logger: api.Logger,
942950
SignedTokenProvider: api.WorkspaceAppsProvider,
943951
DashboardURL: api.AccessURL,
@@ -989,7 +997,7 @@ func Test_ResolveRequest(t *testing.T) {
989997
r := httptest.NewRequest("GET", "/app", nil)
990998
r.Header.Set(codersdk.SessionTokenHeader, client.SessionToken())
991999

992-
token, ok := workspaceapps.ResolveRequest(rw, r, workspaceapps.ResolveRequestOptions{
1000+
token, ok := resolveRequestWithStatusMW(rw, r, workspaceapps.ResolveRequestOptions{
9931001
Logger: api.Logger,
9941002
SignedTokenProvider: api.WorkspaceAppsProvider,
9951003
DashboardURL: api.AccessURL,

0 commit comments

Comments
 (0)