Skip to content

Commit 59048fd

Browse files
committed
fix port forward tests
1 parent 188103c commit 59048fd

File tree

2 files changed

+1
-42
lines changed

2 files changed

+1
-42
lines changed

cli/portforward_test.go

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import (
2121
"github.com/coder/coder/v2/coderd/coderdtest"
2222
"github.com/coder/coder/v2/coderd/database"
2323
"github.com/coder/coder/v2/coderd/database/dbfake"
24-
"github.com/coder/coder/v2/coderd/database/dbtime"
2524
"github.com/coder/coder/v2/codersdk"
2625
"github.com/coder/coder/v2/pty/ptytest"
2726
"github.com/coder/coder/v2/testutil"
@@ -97,12 +96,7 @@ func TestPortForward(t *testing.T) {
9796
// Setup agent once to be shared between test-cases (avoid expensive
9897
// non-parallel setup).
9998
var (
100-
wuTick = make(chan time.Time)
101-
wuFlush = make(chan int, 1)
102-
client, db = coderdtest.NewWithDatabase(t, &coderdtest.Options{
103-
WorkspaceUsageTrackerTick: wuTick,
104-
WorkspaceUsageTrackerFlush: wuFlush,
105-
})
99+
client, db = coderdtest.NewWithDatabase(t, nil)
106100
admin = coderdtest.CreateFirstUser(t, client)
107101
member, memberUser = coderdtest.CreateAnotherUser(t, client, admin.OrganizationID)
108102
workspace = runAgent(t, client, memberUser.ID, db)
@@ -155,9 +149,6 @@ func TestPortForward(t *testing.T) {
155149
err = <-errC
156150
require.ErrorIs(t, err, context.Canceled)
157151

158-
flushCtx := testutil.Context(t, testutil.WaitShort)
159-
testutil.RequireSendCtx(flushCtx, t, wuTick, dbtime.Now())
160-
_ = testutil.RequireRecvCtx(flushCtx, t, wuFlush)
161152
updated, err := client.Workspace(context.Background(), workspace.ID)
162153
require.NoError(t, err)
163154
require.Greater(t, updated.LastUsedAt, workspace.LastUsedAt)
@@ -210,9 +201,6 @@ func TestPortForward(t *testing.T) {
210201
err = <-errC
211202
require.ErrorIs(t, err, context.Canceled)
212203

213-
flushCtx := testutil.Context(t, testutil.WaitShort)
214-
testutil.RequireSendCtx(flushCtx, t, wuTick, dbtime.Now())
215-
_ = testutil.RequireRecvCtx(flushCtx, t, wuFlush)
216204
updated, err := client.Workspace(context.Background(), workspace.ID)
217205
require.NoError(t, err)
218206
require.Greater(t, updated.LastUsedAt, workspace.LastUsedAt)
@@ -278,9 +266,6 @@ func TestPortForward(t *testing.T) {
278266
err := <-errC
279267
require.ErrorIs(t, err, context.Canceled)
280268

281-
flushCtx := testutil.Context(t, testutil.WaitShort)
282-
testutil.RequireSendCtx(flushCtx, t, wuTick, dbtime.Now())
283-
_ = testutil.RequireRecvCtx(flushCtx, t, wuFlush)
284269
updated, err := client.Workspace(context.Background(), workspace.ID)
285270
require.NoError(t, err)
286271
require.Greater(t, updated.LastUsedAt, workspace.LastUsedAt)

coderd/coderdtest/coderdtest.go

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,6 @@ type Options struct {
146146
AllowWorkspaceRenames bool
147147
NewTicker func(duration time.Duration) (<-chan time.Time, func())
148148
DatabaseRolluper *dbrollup.Rolluper
149-
WorkspaceUsageTrackerFlush chan int
150-
WorkspaceUsageTrackerTick chan time.Time
151149
}
152150

153151
// New constructs a codersdk client connected to an in-memory API instance.
@@ -296,30 +294,6 @@ func NewOptions(t testing.TB, options *Options) (func(http.Handler), context.Can
296294
hangDetector.Start()
297295
t.Cleanup(hangDetector.Close)
298296

299-
// Did last_used_at not update? Scratching your noggin? Here's why.
300-
// Workspace usage tracking must be triggered manually in tests.
301-
// The vast majority of existing tests do not depend on last_used_at
302-
// and adding an extra time-based background goroutine to all existing
303-
// tests may lead to future flakes and goleak complaints.
304-
// Instead, pass in your own flush and ticker like so:
305-
//
306-
// tickCh = make(chan time.Time)
307-
// flushCh = make(chan int, 1)
308-
// client = coderdtest.New(t, &coderdtest.Options{
309-
// WorkspaceUsageTrackerFlush: flushCh,
310-
// WorkspaceUsageTrackerTick: tickCh
311-
// })
312-
//
313-
// Now to trigger a tick, just write to `tickCh`.
314-
// Reading from `flushCh` will ensure that workspaceusage.Tracker flushed.
315-
// See TestPortForward or TestTracker_MultipleInstances for how this works in practice.
316-
if options.WorkspaceUsageTrackerFlush == nil {
317-
options.WorkspaceUsageTrackerFlush = make(chan int, 1) // buffering just in case
318-
}
319-
if options.WorkspaceUsageTrackerTick == nil {
320-
options.WorkspaceUsageTrackerTick = make(chan time.Time, 1) // buffering just in case
321-
}
322-
323297
var mutex sync.RWMutex
324298
var handler http.Handler
325299
srv := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {

0 commit comments

Comments
 (0)